Flutter vs React Native – War of Tech Giants
Developing and maintaining an application for both iOS and Android was a pain a while back. You had to handle two code base, two teams, two pipelines etc.
The Entry of React Native and Flutter
Once Facebook realized this pain, they introduced React Native in 2015. It got a sweeping response from the app developers. The apps we use in our day to day life like Facebook, Instagram, Uber Eats, Discord, Walmart, Tesla etc. are developed using React Native. This shows how much this Framework is accepted over the past couple of years.
In 2017, Google also decided to join the cross-platform development party and hence Flutter was announced. Flutter comes with some really cool and handy features like fastest hot-reload and a handful of reusable widgets (every UI component is a widget in Flutter). Flutter also offers maximum native performance when compared to its competitor. It is incorporated with all critical platform differences such as scrolling, navigation, icons and fonts to provide full native performance on both iOS and Android.
Flutter is probably going to get its first stable release on December 4th 2018. After watching Flutter development in the past six months and playing around with it, I am trying to find out an answer for the most asked question: Flutter vs React Native?
Flutter vs React Native: A Broad Comparison
Speaking of under-the-hood activities of both SDKs, React Native uses the most popular programming language, i.e., Javascript. On the other hand, Flutter uses Dart, which is also developed by Google seven years ago. Flutter is a framework developed in Dart and if you are wondering why on earth Google opted Dart for Flutter, we will speak about that in a little bit.
Javascript was never developed for what React Native is doing right now. In other words, Javascript was developed for web essentially. Javascript in React Native is not fully compiled to native code but the UI elements are compiled to native code. However, in my experience, I have to say that Javascript turns out to be working very well regardless of the occasional issues that need some workarounds to achieve the desired result.
Coming on to Dart, it is probably an Alien language for the mainstream development community. But Dart isn’t that hard to learn. It is a mixture of Javascript and JAVA and it is a strongly typed language which is great.
Dart was also not developed for mobile apps. But it got a clear advantage of being developed by the same company, which owns the operating system that powers 84% of smartphones in the world. Yes, Google and Android!
Google knows what exactly they are doing with Flutter. With my personal experience, I can say that it does the job really well, even better than Javascript on React Native. This advantage comes because Dart is being compiled directly to ARM, which will probably lead to better communication speed and therefore better performance.
Who Will Be The Winner?
Predicting which technology will emerge as the champion is a tough task. In order to make the process easy, I would like to sum up the comparison to the following points:
1. Development Time
The biggest selling point of both React Native and Flutter is “write once use it everywhere”. Is this really true? Well, not really. Let me explain it in simple terms.
Imagine a line which has one end saying “write it once” and the other end saying “write it twice”. The place of Flutter stays close (but not too close) to “write it once” and React Native stays around 60% away from “write it once” or 40% near to “write it twice”. In other words, React Native needs more lines of code to accommodate different platform-specific features while Flutter has more reusable code.
The second most important element, which is directly involved in development time is, “learn once write everywhere”. Both React Native and Flutter stay at the same point here, i.e., ‘learn once and write everywhere’ despite the platform your code is going to run on. Speaking of learning, documentation plays the biggest key role. Even though React Native and Flutter are documented very well, Flutter’s official documentation stands out because of its code samples, detailing and animated examples.
Since the learning curve for Dart is more than Javascript, React Native is the winner here, at least for now. In addition, React Native has huge community support thanks to its presence here for four years compared to the two-year-old Flutter. It also reflects when it comes to third-party library support.
2. Performance
Performance of both frameworks can’t be compared with the performance of actual native code. However, React Native and Flutter really stand out when comparing with old school Ionic or Cordova. Because the code we write is actually getting compiled to native code. Between React Native and Flutter, honestly, it is hard to benchmark between the two because it depends on so many factors including target device specifications and the features you want to include in your app. Even though Flutter has a small advantage over React Native since the Dart code is compiled to ARM as we mentioned earlier.
3. Clientele
The popularity of React Native does not need any business mention these days. React Native has enough components to carry out the development of an application on both iOS and Android on any scale. Besides that, React Native has proven coverage and many leading apps like Skype, Facebook, Tesla, Instagram are already using React Native.
Flutter is new. Flutter is still at beta. Google is using Flutter for some of its apps, but not as much as Facebook uses React Native in their own products (Google always does this, for example, Angular vs React).
Flutter is still trying to make its presence. As a framework, it is still making its base, it will take some time to gather the momentum. Adaptation rate and acceptance for Flutter in the developer community is really promising. For example, it was trending all over Twitter on the launch day and rate of increase in the number of stars to the git repository is also a good indicator that Flutter is in business. Also, Flutter takes care of IDE integration a step ahead compared to React Native. I guess this also has made developers to give it a shot and it definitely added more to the prominence of the framework.
Conclusion
Now we have seen a basic comparison between Flutter and React Native, it is clear that both have their own pros and cons. However, it is difficult to decide who is the winner. Flutter being new framework would take time to get stable and would travel miles to compete successfully with React Native. Looking at last two years of the growth cycle of Flutter, no doubt that Flutter is here to stay. It is capable to develop beautiful mobile apps in a small time frame which can help start-ups to earn well in less time.
Correction: In Flutter, Dart is compiled to actual ARM native machine code.
Thank you Leler for pointing out that. We’ve corrected it in the blog. Thanks a lot for commenting.
Informative article Jithesh. Thanks.
Thank yоu for every other maցnificent article. The place else may anyone get that type of info in such a
perfect manner off wrіting? I’ve a presentation next week, and I am օn thhe looқ for such information.
Thank you Reta. We are happy that you found it useful.
Thank You for providing this perfect and a fair comparison between React Native and Flutter.
We are glad that you enjoyed our blog. Thanks for reading.
Thanks for sharing a detailed comparison between flutter and react native. If u ask me to choose between these two platforms I prefer flutter over react native. Because flutter is faster, open source and a perfect platform to develop MVP.
Thank you Jack Miler for reading our blog. We are happy that you enjoyed it.
Thank you for sharing such a good piece of knowledge with us.
Glad that it was worthwhile for you.
Extremely an interesting blog I have experienced. There are phenomenal information you posted here. At some point it isn’t so natural to plan and build up a flutter app without custom learning; here you need legitimate advancement ability and experience. However the information you notice here would be especially useful for the beginner.
Thank you, Camila.
hi, thanks for sharing this informative post. keep updating these types of posts.