React Native vs Flutter for app development

When considering what to use for your next mobile application, you’ll have to do some research about which frameworks can provide you with the tools you’ll need. React Native is a top dog of the industry, while Flutter is a rising star. If you’re not sure which one to choose, this post will help you decide which one is best for your needs.

To learn more about both technologies, I’ve developed Dwipper: a social network app (similar to Twitter) that one can use to post shower-thoughts (Dwipps).

Hybrid vs Native

What is React Native?

What is Flutter?

While Flutter comes with its material design guidelines, one may be inclined to use it. However, there’s no inherent problem with not using it, as Flutter was created with a custom brand design in mind. It just happens to have some material design as a bonus.

Which one is more popular: React Native or Flutter?

As we can see, Flutter rapidly gained traction, especially since 2018, in a way that since the end of 2019, StackOverflow has had more questions asked about Flutter than React Native. Flutter became slightly more popular as Google has been investing a lot of time into it.

Is React Native easy to learn?

Is Flutter easy to learn?

How does React Native work?

  1. The main thread runs a standard native app, handling the display of elements and processing user gestures.
  2. The other executes all the JavaScript code in a separate engine, either JavaScriptCore or V8, which deals with the business logic of the application. It also defines the functionality and structure of the user interface.

These threads never communicate directly or block each other.

How does Flutter work?

About the project: Dwipper

The app had the following screens:

  • Basic login, registration and forgot password
  • All Dwipps, to see everyone’s Dwipps
  • My Dwipps, where you can see all Dwipps you posted
  • New Dwipp, to write and post a Dwipp
  • Change password, where the user can change their password
  • Logout, where the user can logout

To me, this was a great learning experience. Flutter felt more intuitive, like how you work with widgets felt simpler than components in React Native. The only real issue we initially had was communicating with the app’s backend. It wasn’t something directly related to the framework itself, only a matter of figuring out what and how to send.

React Native, on the other hand, was slightly more troublesome, perhaps because I had no prior experience with JavaScript. The most frustrating part was working out how to set up the navigation between the login part and the “real” part of the app. Having to install a new component each time we needed something for a specific task wasn’t very pleasant.

Comparing with other frameworks

Flutter vs Ionic

React Native vs Ionic

React Native, on the other hand, has a big community backing it up, which leads to more issues or problems being solved by other developers online. React Native is translated into native code, being able to reach 60 frames per second easily, as if it’s a native app. However, it is backed by a big company, meaning that any new tools will only be released according to said company’s needs.

React Native vs Flutter: which one is better?

Someone with more knowledge and experience in JavaScript or React will most likely prefer to use React Native, since the transition is rather smooth.
On the other hand, a developer who enjoys the Object-Oriented paradigm will most likely prefer to use Flutter.

In case you need to build a mobile app more complex than Dwipper, you might consider using Flutter since it’s slightly more popular than React Native right now. That popularity might be of use when bug-hunting your app. More people means a wider variety of issues, which increases the probability of finding someone with the same problem as you or having it solved by another community member who already encountered it.

Found this article useful? You might like these ones too!

Originally published at https://www.imaginarycloud.com on July 23, 2020.

Applying our own Product Design Process to bring great digital products to life | www.imaginarycloud.com