React Native vs. Flutter !

Nureddin Hasan Bikeç
6 min readOct 15, 2020

When you want to enter the mobile application world, three things greet you: Hybrid App Development, Native App Development, Cross-Platform App Development.

These are different ways of developing mobile apps. Cross-Platform App Development is the path that includes React Native and Flutter, which we will review today.

You will find answers to these questions in this article:

What is React Native / Flutter?

What are the main differences between Javascript and Dart?

React Native / Flutter advantages and disadvantages?

Which one should I choose?

What is React-Native ?

React Native is a JavaScript framework for writing real, natively rendering mobile applications for iOS and Android. It’s based on React, Facebook’s JavaScript library for building user interfaces, but instead of targeting the browser, it targets mobile platforms.

React Native was first released by Facebook as an open-source project in 2015. In just a couple of years, it became one of the top solutions used for mobile development.

React Native offers a way to build mobile applications using React and JavaScript.Instead of the span primitive, which we have on the web, React Native offers the Text primitive. If we are building an iOS app, React Native will make sure that the Text results with a native iOS UIView containing the text. If we are building an Android application, it will result with a native TextView.

Popular Apps Developed In React Native: Facebook, Instagram, Airbnb, Discord, Skype, Bloomberg, Wix, Walmart, Tesla, Adidas Glitch

What is Flutter?

Flutter is a free and open-source mobile UI framework created by Google and released in May 2017. In a few words, it allows you to create a native mobile application with only one codebase. This means that you can use one programming language and one codebase to create two different apps (for iOS and Android). Just like React Native.

Flutter also provides developers with reactive-style views. To avoid performance issues deriving from using a compiled programming language to serve as the JavaScript bridge, Flutter uses Dart. It compiles Dart ahead of time (AOT) into the native code for multiple platforms.

Popular Apps Developed In Flutter: Dream 11, AliBaba, TopLine, Google Ad App, FlyDirekt, Birch Finance

In conclusion, one of the main differences between React Native and Flutter is the difference between Dart and Javascript.

So what are the main differences between Javascript and Dart?

Javascript emerged as the language for rendering web pages along with HTML and CSS technologies.

JavaScript has been here industry for the last 24 years, so it’s a mature and stable programming language. At the moment, JavaScript is everywhere. There is no device in the world that doesn’t run JavaScript. What is it mean? It means, you can find every solution about Javascript when you face to face an any problem.

Versatility…There are many ways to use JavaScript through Node.js servers. If you were to bootstrap Node.js with Express, use a document database like MongoDB, and use JavaScript on the frontend for clients, it is possible to develop an entire JavaScript app from front to back using only JavaScript.

Javascript also allows you to create rich interfaces.

What about is Dart Programming?

Dart is an open-source, general-purpose, object-oriented programming language with C-style syntax developed by Google in 2011. The purpose of Dart programming is to create a frontend user interfaces for the web and mobile app.

Dart has a strong support base with many libraries and tools, which enable very large applications.

One of the major objectives of Dart is to simplify programming tasks. It is designed to make common programming tasks simpler.

Dart is very stable and it can be used to build production quality real-time applications. It is an object-oriented programming language with support for inheritance, interfaces and optional typing features.

………………………………………………………………

Let’s go back to main issue. As a result, what are the advantages and disadvantages of React Native and Flutter?

React Native :

Undeniably, React Native is a real asset when it comes to improving the performances through native control and modules.

The React Native gets connected to the native components for both the Operating Systems and generates a code to the native APIs upfront and freely.

Also you integrate 90% of the native framework for reusing the codes for both the OS.

The React Native also renders its support for the third-party plugins offering a couple of options that include native modules and JavaScript modules. This is because it does not have some components in the main framework.

For instance, if you are implementing any Map in your app, React Native lets you do so by connecting the plugin with a native or third-party module.

Flutter :

Flutter apps are compiled into machine code using the graphics and visualization engine built into C/C++, so applications are very fast and high-performance. They are capable of stably delivering 60 frames per second on most devices and up to 120 frames per second on devices supporting Flutter.

One of the biggest advantages of Flutter is the ability to customize anything you see on the screen, regardless of how complex it may be. While it’s usually possible to do a very custom UI on the native platforms as well, the amount of effort required differs by the order magnitude.

Flutter makes the process more flexible and versatile without adding to the workload. Shared element transitions, shape/color/shadow manipulations, clipping, transformations — Flutter allows you to perform all of these effortlessly.

Compared to its counterparts like React Native, Swift and Java, Flutter is much easier to learn and use.

Flutter uses ‘widgets’ which makes the UI easy to use. All features that you would need to build an app are provided as building blocks, or widgets. This gives developers complete control over app development while making the process of development easy.

Developers looking to access the source code will need to learn the basics of Dart, which is easy to learn if you have used any OOP language (Java, JS, c#, etc).

So, Which one should I choose?

There is no simple answer to this question.

There are two different structures supported by Facebook and Google.

My advice is, You should ask yourself ‘What is the level of my software background?’.

If you have been interested in OOP (Object Oriented Programming) in the past, you can choose Flutter. But if you have been interested in Javascript in the past, you should definitely choose React Native.

Except for two cases, if your software background is beginner level. I suggest you choose React Native.

Because when you learn React Native, you can also find opportunities in many areas related to Front-End Developers.

Thank you for reading, see you next time …

--

--