There are many languages & frameworks to build a mobile app, but not all give the best results, here is why we selected flutter over others.
Popularity
Cross-platform app development dominated on mobile app recently, in the past five year, many Hybrid Framework were introduced, most noticeable are:
- Xamarin(2012) built on .net, acquired later by Microsoft
- React Native (2015) built on JavaScript by Facebook
- Flutter(2017) built on Dart by Google
There are other Hybrid Framework, such as Ionic, Cordova, PhoneGap, all of them came around 2010, they were very slow as they depend on WebView instead a native App, which make developers moves to the next new Framework which was React Native in 2015.
Trending Hybrid Framework as per Google Trend Statistics
Xamarin came as .net framework, it was good for C# developers, but not so friendly for others, and it has its limitations and complications, it didn't make a big hit in the market.
Performance
While React Native is developed by Facebook, it still a JavaScript framework, which make it slow compared to Native Apps, also the code can be decompiled as well.
Flutter was built on a new language called Dart, developed by Google too, to serve for mobile app as the main goal of the language, so Flutter Apps run on machine language directly, which make them faster and give them more access to OS resources, which means fewer limitations.
Flutter and Reactive Native Compared with Native Apps speed in mill second, less is faster, click here for reference.
Flutter also has another trick, it uses its own high-performance rendering engine (Skia) to draw widgets, which allow it to show very smooth screen animations.
With Flutter v1.17 released on May 2020, Flutter gain over 50% speed increase on ios.
As for Android, Google developing Android to allow Flutter be more Native, also Google used Flutter as Native App language for its new OS “Fuchsia”.
Features & Stability
Flutter comes with so many components and graphic animations out-of-the-box, which allow the app size to be about 8MB on Android, very light and need less ram memory to run, while React depend on packages more, which lead to huge number of files involved, larger footprint, and make it has fragile UI.
Flutter Support ios 8 and later, Android 4 and later, which make it very practical on old and low end devices.
while React Native can only support ios 10 and later, Android 5 and later.
React Native Need bridge to run interpreted JavaScript code and access some OS resources, But Flutter Run on machine language pre-compiled code with direct access on OS resources which make it faster with less limitations.
Conclusion
React Native exists for double the time of Flutter, it has more developers naturally, but Flutter is gaining developers trust very fast, it has more stars on gitHub already (93k flutter vs 87k React Native), mainly because it built on language developed specifically for this purpose, and by Google itself (owner of Android), and produce fancy UI’s with few lines of code, and for those reasons we chose it.