In this article we are going to give an idea when choosing to develop natively (Android or iOS) or cross-platform (Flutter and React Native).
We will cover the basics, advantages, disadvantages and a conclusion to help you to take the decision.
When we talk about Native app, we referred an application built in a specific programming language, for the specific device platform, either iOS or Android. Native iOS apps are written in Swift or Objective-C and native Android apps are written in Java or Kotlin.
React Native is an open-source mobile application framework created by Facebook. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use React along with native platform capabilities.
Flutter is Google’s platform-independent technology for creating applications used on mobile, desktop and web platforms. Flutter has the advantages of native development and allows you to reuse most of the code among different platforms, which can reduce your budget costs considerably.
This image is a recent StackOverflow Survey of 2019 that asked developers about their most loved frameworks.
Flutter ranks higher with 75.4% and React Native also made the cut with 62.5% among most loved frameworks.
We have to keep in mind that Flutter is only a few years old and React Native has been around longer so many devs are already working on it.
This table show a comparation taking in consideration different aspects that help to see the differences from a global perspective.
Performance is one of the most important characteristics of an app. It depends on many factors but, in general, if you compare two apps where one is native and the other is cross-platform and both have the same functionalities, the native one will be slightly faster.
These difference in performance are usually small, especially when it comes to simple applications.
There are different types of performance that we have to consider:
There are some key to take note about this “comparison”:
If you are thinking on a usual business app with minor animations and shinny look, technology doesn’t matter at all. But on heavy animations apps we recommend use native development.
Related to cross platform development, we don’t recommend using React Native in a CPU heavy operation app, Flutter is a great fit for such task from CPU and memory standpoint.
Take in mind that using Flutter can built mobile, web and desktop environments and it feels like Flutter might become a King of cross-platform development in the short future.