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.
With Flutter got its first stable release on December 4th 2018, and 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
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!
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.
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 C/C++ as we mentioned earlier.
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.
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.
Originally published at www.bridge-global.com.