Aireport (iOS native)
Aireport Flutter(Flutter版)
Aireport was originally used by me, but after learning About Flutter I decided to use It to mimic the original iOS app as much as possible to assess the ability of Flutter to be authentic. In our last article, we looked at possible problems with Flutter development, and in this article we will focus on the difference between the actual user experience of the two.
1. Installation package size
The size of the install package determines the amount of time a user spends waiting for a download and the amount of traffic they may consume. Even as we enter the 5G era, we still need to optimize the size of the install as much as possible.
The Flutter applies in the installation package and post installation capacity
2. Start speed
The above application capacity affects not only the disk usage, but also the startup speed. In my tests on the iPhone X, the cold startup speed of the iOS native app was around 0.4 seconds, while the cold startup speed of the Flutter was around 1.5 seconds.
3. Memory usage
Memory footprint has always been an optimization focus in mobile development. However, the Release version of the Flutter does not have any advantage in terms of memory usage. The SDK is a drag on one hand, and the memory usage per page is twice that of the original version.
Memory usage not only affects application performance, battery loss, and program stability, but most importantly, the greater the memory usage, the more likely the system will kill the background. In my own experience, the iOS native Aireport is basically dormant most of the time, while the Flutter is killed by the system shortly after it is shut down.
4. Fluency
From the first frame,60FPS seems to have been used throughout the introduction and analysis of the major Flutter, which makes us very excited about the fluidity of the Flutter. However:
This framerate gap is also reflected in actual use. From page switching to ListView scrolling, the Flutter is only fairly smooth, but certainly not as smooth as the silky 60 frames of iOS. Of course, the Flutter is still in Beta, and I personally think that runtime fluency is much easier to optimize than package size and startup speed. I believe that the fluidity of Flutter will be further optimized in future versions to match that of the original.
5. IOS feature support
IOS App development benefits from the powerful iOS system and rich ecosystem, and is inherently equipped with a large number of practical and irreplaceable features, such as Bitcode, which can automatically optimize our App’s code in the cloud, and native apps support incremental updates and background App refresh by default.
My current assessment of the Flutter, based on my current experience in development and comparison with native applications, is: Wait.
Flutter does offer a different approach to current cross-platform development frameworks and may well be the benchmark for future cross-platform development. If you are a personal developer, I recommend learning Flutter. Its Dart language, Wigetization, data binding, unidirectional data flow and other modern features are worth learning about. The Flutter is also a cheaper way for people who don’t have access to multiple mobile development platforms at once. But for the company, the Flutter is not ready for full production, and the initial development cost of the Flutter will not necessarily be lower than the original platform.
The development schedule of Fuchsia is unknown, and the Flutter is still in Beta3. Fuchsia’s official release will be the test of the Flutter’s strength.