To Flutter or not to Flutter?

Flutter vs. React Native

Do you want to create your app with React Native or do you go for the newer and flashier Flutter? Both seem to have pro’s and con’s attached to them, so which one do you have to choose? Below we compare these 2 different frameworks in detail to determine which one the winner is for us. 

What are they?

React Native and Flutter are two of the most popular frameworks to create mobile apps that work across multiple platforms.

While React Native has been the most popular framework for cross platform mobile development, Flutter has been catching up since it's invention in 2017.  Flutter is now one of the main competitors of React Native, and is predicted to grow even more in the future.

React Native

Let’s start with the good ol’ faithful. What is React Native? Well, let us have a look at how Google describes it:

React Native is an open-source mobile application framework created by Facebook. It is used to develop applications for Android, iOS, Web and UWP by enabling developers to use React along with native platform capabilities.

As the name suggests, React Native uses React. Front-end developers are usually already familiar with React or at the very least, know a bit of Javascript. This makes React Native a tool that is a lot easier to learn and master, as it shares many features with React and uses a lot of Javascript principles.

After digging a little deeper into React Native, this is what we conclude:

Advantages of React Native:

  • It is similar to React. 
  • Widely used in the programming world.
  • A lot of documentation available.
  • Uses Javascript, so no need to learn new language.
  • A lot of 3rd party component libraries.

Disadvantages of React Native:

  • Javascript Bridge.
  • Not a lot of built-in components.
  • Slower development time.
  • No Hot-Reload.

Flutter

If you have been following Native Development trends the last few years, you have probably heard of the new kid on the block. Flutter is Google’s response to React Native and it promises to bear fruit. 

Flutter is an open-source UI software development kit created by Google. It is used to develop applications for Android, iOS, Windows, Mac, Linux, Google Fuchsia and the web. The first version of Flutter was known as codename “Sky” and ran on the Android operating system.

Flutter uses a programming language called Dart. This is a language that looks like a mix of Java and C#. Even though it is not widely used outside of Google, the developer community that has been working with it has been saying all good things about it.

Advantages of Flutter:

  • Dart Bridge.
  • Easy project configuration.
  • Better Native component support.
  • Hot Reload.
  • Great build automation tooling.
  • Great performance.
  • Same App Ui on older devices.

Disadvantages of Flutter:

  • Dart programming language*
  • Less third party components.
  • Apps cannot be smaller than 4MB.

The battle

1. Ease of learning

As mentioned above React Native uses JavaScript, which currently ranks among the top used programming languages. Flutter however uses Dart, a newer programming language.

While JavaScript has become widely accepted and adopted after years of use, Dart is extremely easy to write code in and thus comes with a low learning curve.

Verdict: React Native is the winner here as it has a way higher adoption rate.

2. Performance

React Native uses Javascript to connect to native components via a bridge. This greatly inpacts development time and performance.

Flutter avoids needing a bridge and as it is compiled into ARM code, performance is the one issue that it will never face.

Verdict: Flutter is a clear winner here, with better development times and app performance.

3. Native components

React Native gives you the choice of external UI kits, like the React Native Material Kit. It also supports iOS-style components. This means that the end user has a very Native like look and feel inside of the app.

Flutter uses its own platform, and interactive widgets. These widgets are built-in UI components that replace native components. This ensures that both Android and Iphone users have the exact same UI, which can give a more custom feel.

Verdict: Draw. Both platforms have their pro's and con's. React Native will give you a more Native like feeling, while Flutter gives you more flexibility.

4.Hot reloading

Hot reloading is used to keep an app running while you make changes to it. This ensures a swift development time, without the need to deploy your app every time.

While React Native has lately also adopted hot reloading (this was not the case in the past), it is still not as fast as Flutter's, which is almost instantaneous.

Verdict: Flutter is the winner here as it has faster hot reloading.

Conclusion

React Native and Flutter both have their pro’s and con’s as we stated above. But Flutter does come out as the winner for us in this match, even though there might be a learning curve to it. Not only does it have a lot of advantages, but some of the industry experts have already predicted that Flutter is the future of mobile app development. Considering the comparison above, it’s clear that Flutter has entered the cross-platform mobile development race very strongly. Let’s not predict the future but wait and watch!