What is Flutter?
Flutter is a hybrid platform for mobile development (Android + iOS, etc). It was first released on 27th May 2017 which was an initial release. On 7th May 2018, Flutter stable was released. It is an open-source mobile application development framework which is developed and maintained by Google and also getting help, suggestions, contributions from a large community of Flutter developers. Flutter is developed with the Dart language, the second most used language inside Google itself!
You might be wondering, why we should we use Flutter as a platform while we already have frameworks like react-native, ionic, PhoneGap, Xamarin, etc.
Well, the vision of Flutter is not only mobile but also it is planning to occupy all other platforms like web and desktop. The Flutter UI Builder package is lightweight and it is one of the biggest advantages of the framework. Let’s discuss some interesting facts about Flutter!
The mobile development platforms like Ionic and PhoneGap are working on the Webkit of the Android/iOS platform. However, the UI & performance of Ionic, PhoneGap, and Flutter are different from each other.
Besides, React Native, Xamarin, and Flutter is more close to the native look & feel. So, we can term it as the main battle is between Google VS Microsoft VS Facebook i.e. Flutter VS Xamarin VS React-Native!
We are comparing these frameworks with a table:
Table courtesy: https://codeburst.io
How Flutter, React-native, and Xamarin works?
Let’s talk about React Native to start with as it is older than Flutter.
Besides, Flutter’s code language is Dart, which is compiled using C and C++. Therefore, it is the closest framework when it comes to the machine level code. Flutter does not depend on the Native iOS/Android Components.
In a nutshell, you don't have to worry about the platform API for the UI as both Android and iOS developer will understand the same. If you need you can always communicate with Native platforms using platform channels.
Now let’s talk about Xamarin.
Xamarin, acquired by Microsoft in early 2016, mainly provides two ways to develop applications i.e. forms-based development and native development. If one develops with Xamarin.Forms, 70-80% code will be common both Android and iOS platforms. However, while it comes to hardware feature integration, it becomes quite tricky to deal with the different platform using the same code. Hence, one has to do 20 to 30% of the platform-specific development (i.e., for Android and iOS separately).
In other words, if your application is quite simple, then you can consider Xamarin for development, but when it comes to hardware feature integration, you have to reconsider your choice.
While developing using the other approach i.e. Xamarin.Android and Xamarin.iOS native way, the application needs to be developed and maintained separately. Although, you can share some of the DLLs between both platforms.
The only advantage it provides here is C#. So if one knows C#, he/she does not need to learn Kotlin(Android) and Swift(iOS) separately.
On the darker side, it carries a big-size build file that Xamarin framework generates by keeping the DLLs in the package. Such a big-size build file is never a user-friendly thing.The above graph shows the sudden growth in the community activity on the stack overflow which shows the celebrated popularity of flutter among the developers.
Popularity of these Frameworks
React Native is very popular among the developers who are mostly exposed to web development platforms and it has almost 78k stars in the GitHub at present. It has huge packages available which are shipped with the kit itself which in turn increases the size of the application packages.
However, Flutter is making the developers and stakeholders happy for its unique features.
Flutter has a very large amount of widgets compared to react-native. Besides, the easy learning curve of Flutter is one of the main reasons behind its popularity.
It has achieved 67k GitHub stars within a short period in comparison to React Native. Flutter also does not increase the size of the application and hence a lightweight application is bliss.
Above graph depicts the question views of the relevant technologies and as per that Flutter is overtaking almost all other technologies in mobile development.
The documentation of Flutter is easy to understand and self-explanatory. Users say that they find it simple, straight, and relevant. However, React Native also features good documentation.
From the developers’ perspective, both (Flutter & React Native) have Hot Reload feature which increases the developer’s productivity and also makes the development faster than native development.
Such advantages of both platforms are beneficial to develop applications. Besides, Flutter being the closest to the native, it has the upper hand when it comes to performance (120 fps).
And the number of widgets gains the advantage over the React Native widget’s count. For development, so many packages/plugins are available in the market for Flutter as well as React-Native.
As a beginner in React Native and fluent with Flutter, the beginner would love Flutter because it gives the quite clear error messaging to fix the issues and it has the richest widget libraries which make the development faster and easier as well. Even developing the plugin for the specific need like DDP client for dart becomes too easy.
Why we should move to Flutter?
As already shown, the statistics indicate that the developer community is growing exponentially towards ‘love’ with Flutter. In other words, what React Native has covered in 4 years, Flutter has already achieved it in a single year in terms of community acceptance.
As far as the future road map is concerned, they are planning to give support for web and desktop applications as well. Flutter Web is already out with the developer preview. Another advantage of Flutter web is the Dart language itself is very much mature when it comes to web technology.
Flutter, React Native, and Xamarin Comparison
What is the future vision of Flutter?
The Flutter team at Google is planning to take advantage of the 2D rendering engine and acquire web and desktop platforms. And also they have given the sample SDK for embedding the existing code in desktop applications.
So who is using Flutter?
Let’s now walk through some of the companies who have already started using Flutter as the programming language for their application development.
As we all know Alibaba is one of the most known e-commerce companies and hence we know Jack Ma, the co-founder & executive chair of Alibaba Group. The team from Alibaba has already created a vast range of widgets. Here is the link to the GitHub https://github.com/alibaba/Flutter-go
2. The Hamilton
This is the first-ever publicly released application when Flutter was not even released with a stable version. It was developed and released when Flutter was just a baby. Know more
3. Google Ads
All of you must know about Google Ads application which is made using Flutter. You can run your email marketing and advertising campaigns with Google Ads.
4. Google Green Tea
This is one of the internal apps used by the Google team to keep track of sales and targets with very intuitive and rich UI.
AppTree is the enterprise-level solutions provider for mobile apps. Built with Flutter, AppTree also offer cross-platform development and integration. Customer List.
Tencent is a Chinese investment holding MNC which has the 6th rank in the revenue worldwide as per wiki. Built with Flutter, Tencent offers various services based on the internet, AI, technology, and entertainment.
Reflectly is diary-keeping app which helps you to stay motivated. As this app is more related to personal thought process it needs great appealing UI. This application moved from React Native to Flutter
Dream11 is one of the most famous cricket games that you can use for prediction of the scores and can get the points and all. It is also built with Flutter.
So many companies have already adapted Flutter and creating a niche with great & intriguing user interface. The Flutter UI builder not only is blessed with rich UI creating magic but also makes development easy.