React NativeVS Flutter

Alexander Globenko
Fusion Tech
Published in
4 min readMay 8, 2020

The popularity of hybrid or cross-platform development (read more about that here) is growing every day, and the performance of applications written using this approach is almost as good as native development. There are already a huge number of frameworks for mobile applications that are not based on native components, but which one should we choose? Let’s compare the two most popular 2020 frameworks for cross-platform development to better understand their advantages and disadvantages.

React Native

In an attempt to make a cross-platform app as productive as a native app, Facebook released the React Native framework. Something turned out, something did not, but the community and the number of applications built on it are growing rapidly.

Programming language

JavaScript + React library, you can add modules using Java for Android and Objective-C or Swift for iOS

Example of use

React Native is popular and is already used by tech giants. Instagram Facebook, Walmart, Tesla, Pinterest, UberEats and others are among them.

IDE and code writing

React Native supports almost all IDE’s, and learning to write in it is quite easy thanks to the use of JavaScript. And if you have already used to React on the web, it becomes even easier to switch to the cross-platform.

Architecture

“Learn once, write anywhere” is the main principle of React Native. There is a Hot Reloading function here to add code and make edits at runtime — this is very useful if you are configuring the interface. The environment comes with a set of ready-made components, but they do not always adapt to the platform, which requires adjustments in the code, but there is a rich selection of third-party libraries.

Performance

Since React Native is aimed at performance comparable to native development, this framework is often preferred in the pursuit of results. Native allows developers to use custom modules in Java, Objective-C, or Swift, but they will have to be written separately for each platform.

Flutter

Flutter is the brainchild of the Google team, which has already gained an excellent reputation in cross-platform development. Its main principle is to create applications with a single code base for mobile platforms, the web, and the desktop.

Programming language

Dart is an object-oriented language developed by Google; Java, Objective-C is for native modules. It is worth noting that Flutter can create modules that fit into the native code without problems (in React Native, you can do exactly the opposite — add native modules to the React Native app).

Example of use

Flutter appeared on the market recently and its popularity has grown very quickly. Application it is possible to see from Hamilton Musical, Google Ads, Yandex.Taxi.

IDE and code writing

Flutter is supported by IDE’s such as Android Studio/IntelliJ and Visual Studio Code. As for writing code in Dart — if you know languages such as C++ or Java, you will not find it difficult to master Dart, but the threshold for entering it is much higher than that of React Native.

Architecture

Flutter uses the same code for all platforms. For Windows, macOS, and Linux, use the semi-official Flutter Desktop Embedding.

With it, you can easily create beautiful user interfaces. But if you need to create different styles for different OSS, you will have to work a little, because automatic adaptation is not aimed at this. This is because Flutter uses its own graphics engine instead of native components. The engine is written primarily in C++, it supports low-level rendering using the Google Skia graphics library, and can also interact with platform-dependent SDKs for Android and iOS.

It keeps up with React Native and also offers a Hot Reloading feature and a large set of ready-made widgets. With Flutter, you can release apps for different versions of Android and iOS without any additional gestures: programs can run smoothly even on older versions such as Android Jelly Bean and iOS 8.

Performance

We can say that Flutter is in many ways superior to its competitors and demonstrates high performance thanks to the use of the modern Dart language and its own graphics engine. But still, it can’t be called the best at this stage of development yet.

React Native VS Flutter

It is difficult to say which framework is better than another, but it is safe to say that it is easier to solve problems on React Native due to the community and the use of web technologies. The flutter community is still young and the technology has recently entered the world of cross-platform development, so some atypical tasks may take much longer. However, due to the gradual increase in the popularity of this framework and the increase in the number of developers who use it, the knowledge base is growing and it is developing at an incredible speed. That is why we decided to study it now and contribute to its development.

--

--

Alexander Globenko
Fusion Tech

Hey guys! I’m a Mobile App Dev at Fusion Team. Will be glad to be useful for you with my articles and cases.