Michael Szczepanik
Jun 18 · 4 min read

As you probably remember there were a lot of hybrid (cross-platform) technologies like: PhoneGap, Sencha, Cordova, Ionic, Xamarin and many more. Most of them are dead or it is their endgame now, mostly because they were limited and needed knowledge from many areas including framework itself and platforms natively. Currently, only React Native and Flutter are in the game for most of new hybrid projects. This game of throne for a hybrid leader is very even but we are comparing newbie (Flutter) with 4 years old technology (React Native).

You can see below the google trend comparison between flutter and react native.

What about performance?

The way how these two frameworks work is also totally different: React Native uses the same fundamental UI building blocks as regular iOS or Android apps and the JS runs in a separate thread and communicates with native modules through a bridge.
Flutter, on the other hand, is ahead of time compiled to machine code and gives better performance. Not just the UI components are compiled, but the whole logic also — sometimes Flutter app is even faster than the native Android app, but it depends mostly on device type and OS version.
In terms of performance, React Native has many optimization areas like lazy requiring or native module loading as they are the most draining tasks. Developers usually face issues while following React Native hybrid application architecture. Flutter makes it easier and allows to reuse the existing code with the implementation of each architecture concept. This can also help apps to be more stable.

Is it a Dart Time?

There is only one programming language possible in each framework: You have JavaScript for React Native and Dart for Flutter. The biggest mistake done by many companies is to ask JS/React developers to design and develop a big and complex mobile app. Web and mobile are different worlds and understanding of iOS and Android ecosystem is much more difficult to learn than React Native. Additionally, for most of the hybrid apps there is a risk that some parts of functionalities will need separate native implementation and developer who knows it is a value. Libraries for Flutter … this is a topic for another article.

A number of lines of code for Android app are also usually a few times lower for Flutter in comparison to Java and even Kotlin. Of course, developers may have code generators of boilerplate code like Butter Knife, many IDE plugins and even AI solution like Codota. They can also use existing solutions like libraries to not reinvent the wheel. The number of available libraries and ready solutions, of course, changes dynamically in case of Flutter and Dart because of the big community aspect and rapidly growing popularity.

In case of Flutter we have language, rather not popular, but it is the same family as C/C++, Java, so around a week or two is needed to kick in. The big potential of Dart development is hidden under Fuchsia — an experimental operating system developed by Google. It has been planned to be next Android and Dart was mention as main language used by it. That means your Dart developers should allow you to be on new products or platform from the early beginning.

What should I choose?

Flutter as a framework is very promising and right now has big dev community. Even currently we can find complex apps in the market which are based on Flutter, like Alibaba, Google Ads, Reflectly, Birch Finance, Hamilton Musical, Hookle.

In my opinion, this technology is a good choice for small and medium size applications or when content and basic features require constant iteration. Your choice should depend also on level of security needed by your app and required platform features. For example, I would recommend native solutions apps in banking & finance for which security is important, virtual reality or augmented reality as to them, a lot of work needs to be done natively. For most of the others, you can think about the cross-platform framework which should reduce time and cost of development.

Which technology to choose based on your goal?

Hybrid is usually better for:

  • Fetch and display data app
  • App for a marketing campaign
  • App for event or conference

Native is usually better for:

  • Scalable mobile apps
  • App which required a high-security level
  • App mostly demanding on platform API
  • App with VR or voice assistant
  • Single platform app

In my opinion, Flutter has entered the industry very strongly and currently should be the first choice for cross-platform solutions.

intive Developers

At intive we’re building great digital products for our customers. Day by day. We want to share with you our way of doing things, the challenges we face, the tricks and shortcuts we discover. A little peek behind the scenes — welcome to our intive_dev blog!

Michael Szczepanik

Written by

Mobile solution architect.

intive Developers

At intive we’re building great digital products for our customers. Day by day. We want to share with you our way of doing things, the challenges we face, the tricks and shortcuts we discover. A little peek behind the scenes — welcome to our intive_dev blog!

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade