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

Kamil Regulski
15 January 2019

Does the comparison Flutter vs React Native ring your bell? Don’t know about Flutter yet? But for sure you know about React Native, right? We are in front of a quite new cross-platform development application launched in 2017 that might change your mind, or not. While some developers have already risked to try it, others remain hesitant.

Let’s see what are the pros and cons about that one on the already established React Native in a non-end war between Facebook and Google.

Popularity: the race Flutter vs React Native

It is not difficult to know how trends change, 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 it might be to the fact that it took some 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.

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 analyse five points to give it a pass or a fail.

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 with 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 separate.

Example: “Hello World”

new Center(child:

new Column(children: [

new Text('Hello, World!'),

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

])

)

 

About the installation and setup, it is more useful to use Flutter. In fact, it offers a tool called “Flutter Doctor”, so that we can inspect errors that arose during the process. So sorry RN, it is time to give a point to Flutter.

An Integrated development environment should also be a necessary support in 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 stronger in the old side. RN offers Wi-Fi, geolocation, NFC payments, Bluetooth and biometrics. But pity, Flutter still lacks Bluetooth and NFC, and keeps the rest in a development stage.

Stability

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 3 years it has been running, RN has gained important clients that make it look even more stable; who wouldn’t trust a 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.

Accomplishment

So, you might be thinking about the performance. Let’s say that Flutter is far more advanced than RN, and 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. Moreover, it is able to run animations at 60 fps, while RN 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 RN.

Finally, they both have a similar memory usage, though Flutter has a lower CPU use.

Tools

When we talk about the basis of tooling, both make a tie. Even though with documentation, Flutter is way easier, and allows to use the same elements to smooth the cycle.

User interface

Another important point when developing 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 adaptable own widgets as well as its own UI components, which makes the process more fluent and easier to customize.

This time RN offers a better user experience, as it includes more UI libraries. So it wins as it smoothes the process.

Developers market

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

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

Project size

Depending on the project size, we can choose RN or Flutter. If the project is small we should choose based on our preferences,  though it is a great 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 projects usually need experienced developers to work on it, and as we said RN is an old friend.

Companies / popular projects?

In terms of usage, it is fair to say that time has made React Native more stable and with shark clients like Skype or Instagram. But do not precipitate because, in a question of 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 act. After all, we are not diviners, right?

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

Read more...

You may also like...

Startups

How to do user testing in 3 simple steps

User testing is one of the most critical parts of the IT development process. During this phase, you have a small, yet representative group of your target customers test your pr...

Startup Development House
12 November 2019
About us

5 ½ Recruitment Tips

We all know recruitment processes can be... tricky, to say the least. Even for some of you ‘Coding Ninjas’, ‘Rockstar Developers’ and other ‘magical creatur...

Sandra Morgan
23 September 2019