“This is the 16th day of my participation in the Gwen Challenge in November. Check out the details: The Last Gwen Challenge in 2021.”

preface

Flutter and React Native, two of the hottest technologies on mobile platforms, are very popular. Which of these two skills should we enter? Let’s compare and analyze the data to see how we can choose. (Only newbies do multiple choice questions.

Round 1: Who is endorsing

Both technologies are backed by giants, Google, whose parent company is more recently named, and Facebook, which has just changed its name to Meta. The two giants in the Internet industry is the role of “scenery stop, altitude stop”. Flutter, Google’s own son, started life in 2017 as a mobile SDK that exploded into the cross-platform development world with its declarative component configuration and stunningly smooth UI differential rendering engine, Skia. The latest 2.0 is even more aggressive, announcing its forays directly into the Web, desktop clients (Windows, Mac OS and Linux) and mobile. The Dart language that Flutter uses is also a compiled, object-oriented high-level language, so it can execute faster. Here are some advantages of Flutter:

  • Free and open source, and the community is already rich in open source plug-ins.
  • Architecture based on responsive programming makes code more maintainable.
  • The widget-based rendering framework design enables Flutter applications to develop a beautiful UI and provide an excellent user experience.

React Native is also a cross-platform App development platform that was introduced by Facebook in 2015. React Native is developed using JavaScript. It is also a set of code that can be compiled into applications on different platforms. Here are some of React Native’s features:

  • Support hot overloading, which can speed up the development and debugging process.
  • Using the currently very popular JavaScript language for development, there are many developers who use JavaScript.
  • The React component is a secondary wrapper over the native and can interact with the native via React’s declarative UI and JavaScript. This greatly improves the efficiency of development.

Based on the first round, Flutter and React Native are both top 1 companies endorsing and tied.

Round 2: Market share

Statistics from Statista show that the 2021 Flutter is on par with React Native among cross-platform development frameworks. In 2020-2021, 42% of developers developed with React Native, with no growth in a year; For Flutter, the figure rose to 42% from 39% in 2020.

In addition, based on statistics from major dating sites for programmers, Flutter seems to be gaining more popularity abroad. Here are the numbers.

Flutter is the better team in this round, the score is 2-1.

Round 3: Dart and JavaScript

In terms of popularity, JavaScript is definitely on top. The latest edition of JavaScript is currently # 7 on TIOBE, up 0.63 percent from last month, while Dart is currently # 31 at 0.42 percent, making it a niche language. While Dart is a compiled language that executes faster than interpreted JS in terms of language performance, companies would certainly prefer to use JS with more options (back-up) when it comes to hiring popularity. React Native won this round, and both sides are back at the same starting line again. The score is 2-2!

Round 4: Technical Architecture

Technically, the Rendering framework of Flutter has a layered design architecture thanks to its own rendering engine. React Native builds responsive components based on other software and uses JS Bridges to interact with Native components. Bridging affects performance to the extent that the Flutter can interact on the interface without bridging. In this sense, Flutter’s technical architecture is superior. This can also be seen from GitHub’s source code statistics. The React Native JS code accounts for 46.7%, while the Flutter repository Dart code accounts for 99.2%. Flutter wins the game 3-2.

Round 5: Performance

Based on the performance comparisons given, the Flutter appears to be superior. This is also due to the ability of Flutter to compile into platform native code. React Native uses the JS engine to interpret and execute JS code, which will definitely reduce efficiency. The Flutter is next and the score is 4:2 — there is not much time left for React Native!

Round 6: Community support

If you want to build enterprise-level applications, community support is a must. GitHub, for example, currently has 2257 contributors, 99.3K stars and 21.4K forks. Flutter has 937 contributors, Star is 132K, Fork is 19.5K. The JS developer count advantage was evident in this round as React Native came back to score 4 to 3.

Round 7: UI components and personalization

Because Flutter draws its own UI components and React uses native components, there is little platform difference in the components that Flutter draws. At this point, React Native obviously needs to put more work into tweaking UI components if the UI of the two platforms is to remain the same. Of course, React Native currently has a number of third-party component libraries to implement personalized UI components. In this round, Flutter came out on top and again opened up a 5-3 lead.

Round 8: Code maintainability

React Native is hardly comparable to Flutter in terms of smoothness, consistency, and debugging. This makes sense because Flutter basically does everything using Dart language. React Native, on the other hand, requires a trio of web developers (essentially JS, JSX, and CSS). The more things there are, the more complex maintenance must be. The score is 6:3, and Flutter feels victory is in sight!

Round 9: Developer costs

There are so many JS developers that the cost of Flutter is lower than that of Flutter developers. Here are the salary statistics for Flutter developers abroad (I only see the high hourly salary in developed countries).

In this round, React Native won from the perspective of enterprises, with the score fixed at 6:4.

Afterword.

This comparison is only for reference. In fact, the trend of Flutter in foreign countries is obviously much better than that in China. China is basically tepid, from Baidu’s search index can also reflect it.

Distribution areas are also in large cities.

The overall heat of the Flutter is higher than React Native, but if React is taken into account, the Flutter is much less hot than React.

Moreover, there are all sorts of small applications in the country, which Flutter is currently unable to handle. In fact, many domestic enterprises choose UNI-APP to handle APP, H5 plus small programs. As a result, Flutter is still a little far from being able to truly complete the platform in China. Of course, from the perspective of job hunting, with the increase of the popularity of Flutter and the expansion of the application of Flutter in large factories, I believe that many companies will be more willing to hire Flutter developers from the perspective of cost.

Which do you choose, a Flutter or a React Native? Welcome to the comments section.

I am dao Code Farmer with the same name as my wechat official account. This is a column about the introduction and practice of Flutter, providing systematic learning articles about Flutter. See the corresponding source code here: The source code of Flutter Introduction and Practical column. If you have any questions, please add me to the wechat account: island-coder.

👍🏻 : feel the harvest please point a praise to encourage!

🌟 : Collect articles, easy to look back!

💬 : Comment exchange, mutual progress!