Flutter vs React Native: Which one is better in 2019?

Kamil Regulski
15 January 2019
7 min read

Does the comparison Flutter vs. React Native ring a bell? Don't know about Flutter yet? But for sure you know about React Native, right? Launched in 2017, Flutter is quite a new cross-platform development application that might win your heart, or not. While some developers have already risked to try it, others remain hesitant. Let's see the pros and cons of Flutter over the already well established React Native, in this never-ending war between Facebook and Google.

Flutter vs. React Native: a popularity race

It is not difficult to know how trends change, and Google offers us a useful tool to measure the number of searches for each term. React Native has maintained a high volume of search during the year, though with a small stagnation during the last months. On the other hand, Flutter has become a booming trend since the beginning of the year. Let's say that it has taken just a few months for people to start trusting it.

It is fair to say that blogs have started discussions about it, and Flutter is awakening programmers' curiosity. Moreover, this war comes hand-in-hand with the technologies' developers. React Native was launched by Facebook in 2015, while Flutter was the competitive answer of Google in 2017.

React Native vs. Flutter: which one wins on productivity?

Productivity can take the cake in a programmers' day. It can easily simplify the work or turn it into a nightmare. In this case, we may analyze five points to give it a pass or a fail.

Hot Reload

First of all, the Hot Reload should ease a non-manual app recompilation and preserve the last state of the app. Though it is available in both frameworks, Flutter performs better in Hot Reload. Following the app structure, we can find all the necessary tools together in Flutter, which makes the work easier. React Native instead keeps data, styles, and templates separately.

 

Example: “Hello World”

new Center(child:

new Column(children: [

new Text('Hello, World!'),

new Icon(Icons.star, color: Colors.green),

])

)

Setup

About the installation and setup, it is more useful to use Flutter. It offers a tool called "Flutter Doctor" so that we can inspect errors that arose during the process. So sorry, React Native, it is time to give a point to Flutter.

An integrated development environment is also necessary for software development. In this case, React Native has a wide range of them, while Flutter only allows working with Android Studio, VS Code, and IntelliJ IDEA.

Finally, the API remains more robust on the old side. React Native offers Wi-Fi, geolocation, NFC payments, Bluetooth, and biometrics. But, and it's a pity, Flutter still lacks Bluetooth and NFC and keeps the rest in a development stage.

Stability: which one is the winner?

Time to relate terms. Is maturity a synonym of stability? It is, at least in this case. React Native wins with fewer open issues and is better tested. Additionally, in the three years it has been running, React Native has gained important clients that make it look even more stable. Who wouldn't trust software that is used by Facebook?

And finally, the time dedicated to developing is crucial. React Native has already ready-to-use elements that come hand-by-hand with the stability. So based on the function of both developers, React Native takes less time.

Let's talk about performance

So, you might be thinking about performance. Let's say that Flutter is far more advanced than React Native. The fact that it uses Dart language is the reason for that, as it does not need a "bridge" for conversion. It allows us to build fast-performing and native-looking apps. Besides, it can run animations at 60 fps, while React Native needs additional libraries. But wait, its advantage is even more noticeable when we are trying to build a hybrid app.

 

On the contrary, React Native is divided into a two-part architecture: JavaScript language and native components. The first one interacts with the native components through a "bridge" that turns JS variables into native code. So what's the result of this conversion? Exactly, it slows down React Native. Finally, they both have a similar memory usage, though Flutter has a lower CPU use.

The battle of the tools

When we talk about the basis of tooling, both make a tie. However, with documentation, Flutter is way more accessible and allows us to use the same elements to smooth the cycle.

React Native vs. Flutter: a look at the user interface

Another important point when planning the development of an application is the user interface. That leads us to think about OS, and Flutter lacks elements suitable for it but instead uses its own. It is also important to mention that Flutter has its own adaptable widgets as well as its individual UI components, which makes the process more fluent and easier to customize. This time React Native offers a better user experience, as it includes more UI libraries. So it wins as it smoothes the process.

What about the developers’ market?

If we investigate directly in the developers' markets, we can see that JavaScript is the most popular language on Github. It is the default language for developers, and React Native allows it for mobile development in the frontend and backend.

Nevertheless, Flutter uses Dart, which is quite new and still considered a niche-language. Its popularity is rising as a result of positive reviews, its statistical allowance, and its similarity to Java, C#, and Kotlin, for example.

Choose React Native or Flutter depending on your project size

Depending on your project size, we can choose between React Native or Flutter. If the project is small, we should choose based on our preferences,  though it is an excellent opportunity to try new tools like Flutter: we like new toys, yes. So this might be the right moment to test it, especially during the early stages so that we will reduce the risk and come back to our default stack if necessary.

For big projects, we would recommend a mature and stable battle-proven set of tools. This kind of project usually needs experienced developers to work on it, and as we said, React Native is an old friend.

Which companies or projects use those two tools?

In terms of usage, it is fair to say that time has made React Native more stable, with shark clients like Skype or Instagram. But do not rush to conclusions because, in a few years, Flutter may become the leader and get some important clients.  It might be the next winner-horse for hybrid mobile app development bets. But let the future come and see how developers and large brands will act. After all, we are not fortune-tellers.

 Any comments you want to share with us? Drop us a line: hello@start-up.house.

You may also like...

Development

How can a monorepo help you build a scalable project more efficiently?

There are a few ways to handle multiple packages used to create one project. The multirepo model assumes that the packages are located in different code repositories. Monorepo is a singl...

Aleksandra Borowska
02 March 2021
4 min read
Startups

How to use Early Adopters to create a better product?

It’s no surprise that the number one reason for startups failing is not solving an existing market problem. Identifying real users’ pains is crucial when creating a new produ...

Marta Przyłęcka
23 February 2021
3 min read