comparative

I have provided as much data as possible in this comparison review, not to prove how bad the Flutter is compared to the original, but to show you how many times your App package will increase if you choose The Flutter, and how many seconds it will affect the startup speed of your App, so that you can try to have a better idea when you decide on the technology stack.

Of course, some netizens suggested that React Native should be compared to React Native, after all, both focus on cross-platform development. In fact, I have long wanted to do a similar comparative evaluation. Due to changes in the company some time ago, I made a Demo of React Native version on the weekend and finally got today’s evaluation report.

Aireport (iOS native)

Aireport Flutter(Flutter版)

RN version is still under review, you can download it to experience.

1. Installation package size

The Flutter applies in the installation package and post installation capacity

  • Based on the UI framework that comes with iOS rather than a framework like Flutter (the Flutter SDK is about 30MB)
  • RN eventually converted the code to OC while the native app was written in Swift. (This prediction was a big failure, Swift5 was not released with WWDC and therefore was not integrated into iOS12….)

React Native’s smaller installation package offers the advantage of lower download barriers, reduced disk usage, and less stress for mixed development. Imagine a native App that uses the Flutter on several pages and then adds 30MB to a single line of code without writing the installation package. This is not what developers want.

2. Start speed

3. Memory usage

4. Fluency

The React Native frame rate

When you look at the time and curve of the animation, you can see that the native jump animation takes longer, but it also accelerates the best. The jump animations on the other two platforms are slightly stiff.

And then finally, if you look at the CPU usage separately, RN does a pretty good job, especially when the TableView is scrolling, for the simple reason that it’s not using the reuse pool, so you don’t have to modify the existing cells as often as you want, but the disadvantage is that as you increase the number of cells, Memory pressure will also increase.

5. IOS feature support

Since the final implementation will be in native language, RN can inherently obtain some of the features of iOS. And compared to the Flutter, online hot updates are the real killer. The Flutter is theoretically feasible, but there are still a lot of problems to be solved when it is deployed. In addition, both RN and Flutter support blending, which solves almost all implementation problems. The only question is how much functionality and features will need to be implemented native, and how expensive to maintain.

Finally, the Flutter is still in beta and is not recommended for use in a production environment, so this comparison is not indicative of the final level of the Flutter. However, it can be predicted that Flutter will not be able to leverage RN’s position in cross-platform development in the short term, and RN is still the optimal solution for cross-platform development at present. There is no denying that Flutter did Write Once,Run Anywhere, but at least until Fuchsia comes out, we won’t be able to fully assess its true value.

GitHub address:

Aireport (iOS native)

Aireport(Flutter版)

Aireport (React Native version)