Flutter vs React Native — War of Tech Giants

Image for post
Image for post
Google Flutter vs React Native

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.

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?

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 C/C++, which will probably lead to better communication speed and therefore better performance.

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 C/C++ 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.

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.

We Are A Self-Organized Squad of IT Experts

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store