When doing some research on trending technologies for developing hybrid mobile solutions I came across an interesting discovery: Flutter, created by Google, is on the rise!
To get a better sense of what is happening in the market through software engineers discussion and search statistics, I have compared the most used common hybrid mobile development frameworks on the scene. These include React Native, Ionic, Xamarin and Flutter.
What the data tells us
My first step has been browsing Stack Overflow, software engineers most loved and used website, where thousands of questions, discussions and insights are posted every day (yes, lots of copy-and-paste of code too).
I loaded the four frameworks into the graph provided by Stack Overflow Trends, and here’s the result:
The amount of questions and interest for Flutter is surpassing React Native in the last 10-12 months.
I then asked Dr Google the same question, visualising the same technologies on Google Trends, and the worldwide trend is consistent with the data from StackOverflow.
React Native is still going strong, but it looks like Ionic and Xamarin are slowly becoming less popular.
Why is Flutter taking over?
Let’s have a look at the main features that are making Flutter a popular mobile development framework.
- First of all Flutter is a UI toolkit, developed by Google, that allows building mobile, web and desktop applications from a single codebase.
- Flutter is free and open-source and follows the paradigm of reactive programming.
- It uses Dart which is an object-oriented programming language easy to learn with a fast-growing community behind.
- Flutter provides a set of ready-made widgets which are the building blocks of the user interface. Everything in Flutter is a widget providing a consistent way of developing applications.
- Dart compiles into native code directly unlike other languages used in other frameworks (for example javascript) so it’s more performance-oriented and runs smoothly, similarly to native applications.
- All mobile engineers know the pain of the app-building waiting time. One of the great features of Flutter is the Hot Reload function for instantaneous updates that saves a lot of time.
This great set of features is filling painful gaps that many native mobile engineers are facing when working with frameworks, using languages, and architectures that were not born for mobile development.
Additionally, clients would be more inclined to opt for a cross-platform framework that allows building robust applications with native-like performance and the ease and speed of hybrid development.
As a native mobile engineer, I’ve always considered hybrid cross-platform solutions good technologies to build quick MVPs because of their flexibility and adaptability, but their lack of performance and native capabilities didn’t allow me to take these frameworks a step further and develop market-ready applications.
Flutter, on the other hand, seems to me to be a very good and reliable option if you intend to build a mobile application, but have specific constraints like time and budget, and are confident you do not need a native solution.