As we already know, iOS and Android are by far the most commonly used operating systems today. Most mobile app developers and app owners develop their native or cross-platforms apps around these two platforms for the same reasons. In recent years cross-platforms have gained popularity in the mobile industry, new tools provided by Xamarin and React Native make cross development more possible and desirable by most developers and app owners looking to optimize time spend in development. This is most likely the reason why Flutter entered the mobile app development work in recent months. Google initially introduced the alpha version at Google I/O in 2017. The product remained in beta for a longtime but Google finally stepped on the finish line before the initial 1.0 release. Here is our overview of the best and the worst of Flutter and what’s available for developers.
The first question most mobile developer might ask, why another cross platform? How is it different? How can it compete with the two most popular cross-platforms Xamarin and React Native. Here are some of key reasons why Flatter might take on the two most popular cross-platforms.
- Flutter offers hot reload, developers can immediately see changes made to the code, it takes few second to see changes so teams can quickly add new features, fix bugs, or make UI channges. In ordinary native development, the developer has to compile the project and then run the project to see changes made, this process depending on the size of the project can easily translate to several minutes. Hot reload allows developers and designers to integrate UI components and immediately see the effect of view controllers and UI views on the go.
- Less code – The programming language of Flutter is Dart, Flutter’s object-oriented language that uses Ahead-of-Time compilation techniques and compiles into native code without that additional bridge making the app’s startup time much faster. Flutter resembles React Native, and its programming style is reactive and declarative but without creating a JavaScript bridge which in term improves app startup and overall performance. In most cases 100% of the code written in Flutter can be shared between iOS and Android apps without having to code extra native support.
- Widgets – Few of the limitations of Xamarin and React Native is the goal to provide a natural feel and touch regardless of screen size. They often lack speed and are not very customizable. Flutter on the other hand has a rich set of widgets and can provides capabilities to create complex custom widgets not only for typical views and the most popular controllers but they can also use entire view controllers.
Like most cross-platforms, Flutter also introduces some risk for mobile app owners. The framework is relatively new and the toolkit has its flaws. Here are the most notorious flaws.
- Even-though Google is well known for creating detailed and well structure documentation such as Classic docs, video lessons, and practical exercises on Codelabs. The framework is fairly new, developers will find themselves struggle to find the expected functionality specially compared to their native SDKs.
- Flutters was mainly tailored for mobile apps and not for web browsers, Android TV, Apple TV. When you choose the technology stack you want to work with, this can influence your decision
In summary, should you consider Flutter on your next Mobile App Development project? My two cents NOT if your project is big, complex and long term. Flutter can save you money and time but it might be too risky NOW since is relatively a new framework. On the other hand, Flutter seams feasible in an MVP that will bring minimum losses in case of a failure.