There are cross-platform frameworks like Xamarin, React Native already available in the market to develop iOS and Android apps with single code base. However, Flutter has entered very strongly in the race of the cross-platform mobile app development.
In this article, we will explore:
- What is Flutter
- History of Flutter
- Flutter vs other cross-platform frameworks
- Who are using Flutter
- Why Flutter is the Future of cross-platform framework
Flutter is Google's mobile app SDK which allows developers to write apps for iOS and Android using the same language and source code. With Flutter, developers can build native like apps using Dart programming language and using its own widgets. Being backed by Google, Flutter is emerging as strong competitors for the Xamarin and React Native. Flutter uses Dart programming language which was introduced by Google in 2011 and is rarely used by developers.
Read more, what are the pros and cons of Flutter.
Although, Dart is rarely used language, it's easy to learn and use. The Dart framework uses Skia C++ engine which has all the protocols, compositions and channels to make apps looks like native. Flutter also has widgets for Material Design and Cupertino that allow developers to easily render the UI on both iOS and Android platform.
Brief History of Flutter
In the beginning, Flutter was known as “Sky” and only supported on the Android platform. As Flutter used Dart programming language which since long but it was only used inside the Google. Flutter was publicly announced in 2015 at the Dart developer summit, at that time, Flutter used to called as “Sky”. You can watch initial announcement video here. Google then announced Flutter preview release 2 at the Google Developer days in Shanghai and subsequently at Google I/O. Finally, Google announced the first ever stable release at the Flutter Live conference in London on 4th December 2018.
Flutter Vs Other Cross-Platform Frameworks (2019)
Before, Flutter there are React Native and Xamarin are the competitive frameworks for the cross platform mobile app development. If you want to know that state of the cross platform mobile app development in 2019, you shouldn't miss out this post explaining the state of all the frameworks. However, as per the Google developer blog, the popularity of the Flutter is growing with immense speed.
Flutter is more like React Native and Xamarin in terms of concepts but there are huge differences in the technical architecture of all these frameworks. We have compared Flutter extensively with React Native and Xamarin with following criteria.
- Programming language
- Technical architecture
- Setup and project configuration
- UI components and development API
- Developer productivity
- Community support
- Testing support
- Build & release automation support
- DevOps and CI/CD support
Flutter vs React Native
You can read detailed comparison of Flutter and React Native on the basis of above mentioned criteria from the developers perspective here.
Flutter vs Xamarin
You can read detailed comparison of Flutter and Xamarin on the basis of above mentioned criteria from the developers perspective here.
As a result of the detailed comparison from the developers perspective, we can see that Flutter is new at the moment so it lacks in the community and technical support but in terms of the features and potential, Flutter can reach to the height of the success. It's just a matter of time.
Who is using Flutter
Since the Flutter is the product of Google, obviously it's been used at Google on various projects. There are many other companies started to use Flutter to develop the cross-platform mobiles apps.
As per the Flutter showcase, Flutter is being used at the Google in Google Ads and Google GreenTree apps. However, there might be many other projects inside Google might be using Flutter. As many of you might know that, Google is also working on the another operating system a.k.a Fuchsia and Flutter is doing all the groundwork for Fuchsia as per this 9to5Google blog.
Alibaba is world's biggest online e-commerce company started using Flutter for the app which has 50+ millions of user app Xianyu. You can watch the short video on how Alibaba's Flutter story. There is also Github repository alibaba-flutter with lots of Fluter projects.
Apart from the Google and Alibaba, there are lots of companies using Flutter at the moment like AppTree, Reflectly, Hamilton Musical asn mentioned in the Flutter showcase. On top of this, there are loads of open-source apps developed by companies and developers. These apps can be found on the It's ALL Widgets website.
In a summary, Flutter is growing faster and companies started to adopt Flutter slowly but consistently.
Why Flutter is Future
In order to build apps with low budget, companies started to invest in the cross-platform mobile app development. The native mobile app development is solid but it requires two separate teams with special skills in Swift/Objective-C or Kotlin/Java which results in the higher cost. The popularity of the Xamarin and React Native framework are good example to demonstrate that Companies requires low cost solutions to build mobile apps.
As of now, Flutter wasn't in the race, but since launch of stable release of Flutter from Google and adoption by major companies, Flutter is getting attention from iOS and Android developers. There are some killer features of Flutter that makes it different than other cross-platform technologies.
Dedicated for Mobile
Flutter is first ever mobile only cross-platform development framework. It supports only iOS and Android which allows Flutter to concentrate on the mobile only features without worrying about the web and other platforms. The cross-platform mobile app development framework likely use to re-use the web components in the mobile which loose the native feels of the mobile apps.
Close to Native
Until very recently, apps developed with cross-platform solutions can be easily spotted and it feels like there is something missing. The developers building the cross-platform apps have less ability to toll on the application performance. The UI build with cross-platform app development framework doesn't feel native to the user. However, apps build with Flutter uses its own widgets. With widgets developers can build complex UI which supports both Material Components for Android and Cupertino for iOS. The Flutter layout and widgets are pixel perfect as well.
All these things, makes Flutter apps looks almost like native apps. You can try some of the flutter apps yourself and feel the difference. You probably couldn't guess that cross-platform technology has been used for those apps. Flutter made those apps looks like so native.
Flutter apps are comparatively faster than the apps build with other cross-platform technologies. Flutter also has support for the JIT and AOT compilers so building and compiling apps is relatively faster as well.
Device/iOS Version Compatibility
The biggest problem in the mobile app development is to support all the devices and OS versions. In case of iOS there limited devices but Android has thousands of variants of OS version and devices to support. This gets mental if you choose native app development or other cross-platform mobile app development platform.
This problem has been solved by Flutter forever, Flutter has its own engine and widgets supported both Material Components for Android and Cupertino for iOS. You need to reply on the native UI components from Google or Apple. Once you develop app with Flutter it will support since iOS version 8 and Android Jelly Bean onward till the latest version. You don't have to worry about the OS version and devices at all. Flutter apps will just work on every device.
Build for Fuchsia
It's no longer secret that, Google is building an another operating system for mobile and chrome. It's called Fuchsia. Flutter uses the Skia engine to build the UI components which are also used in the Fuchsia. You can read the state of the Skia in both Flutter and Fuchsia here. As Android apps will run on Fuchsia, it will be smooth transition of Android users to Fuchsia. Flutter is being build with Fuchsia in mind. Fuchsia also uses Dart language so it will be smooth curve for Flutter developers to grasp the concepts of Fuchsia. If Google sees the Fuchsia as future then it's safe to assume that Flutter will be the future too.
Flutter has entered strongly in the cross-platform app development race with unique features for better mobile app development. As Flutter apps almost looks like native mobile apps and Flutter engine is designed to support Google's future operating system, we can assume that Flutter will have bright future. It's up to the companies which cross-platform mobile app development framework to use as per the project needs but Flutter is emerging as strong option.
We can't predict the future but Google's Flutter is here to stay longer