If you are familiar with the development of mobile applications, you have probably heard of React Native, Kotlin, Xamarin, or Swift. However, if you keep up on current languages and frameworks, the word “Flutter” might ring a bell. Is Flutter the next leader in mobile development? Will it slowly fade away after a few months or years? Let’s figure it out in this article!
Flutter (and why it’s cool):
Throughout my studies, I had the opportunity to conduct several mobile projects and discover several languages and frameworks. I went through Java and Kotlin before upgrading to React Native. Even though they got the job done, they were all complicated to use, not quite user-friendly, and specific to one operating system (excluding React Native). Then, I discovered Flutter, its widgets, its performance, its documentation. Heaven! It helped me develop a performant, beautiful, user-friendly mobile application in five months. Keep in mind; it would have taken me twice the amount of time with another framework (see BBYDDY).
Flutter is an open-source UI Software provided by Google and released as a stable version in December 2018. It is known for building fast and impressive applications for Android and iOS, with only one unique codebase constructed mainly in Dart. Flutter can also be used for web and desktop applications, but we will focus on mobile development.
Flutter uses widgets as a unit of composition. Like HTML, a Flutter application’s user interface is composed of widgets, acting as building blocks. They can be as simple as a colored square but can also be more complex as a carousel of more widgets. Furthermore, custom widgets can be created and accept parameters by using a set of multiple pre-defined widgets.
Why use Flutter?
Its popularity is increasing. Flutter has gained 114K GitHub stars as of today, (03/03/2021). React Native, on the opposite, reached 93.7K. According to Google, over 500,000 developers use Flutter monthly.
It is effortless to use. With significantly less code and reusable code, you can quickly (and without pain) create fully functional applications. One of the most significant advantages of Flutter is the ability to customize any UI element with widgets’ smart use, regardless of how complex it may be.
Performance is at its finest. Flutter has the particularity to “hot reload” the application during development, similar to React Native. It allows fast fixes, testing, and the possibility to add and remove features without manually rebuilding the whole application. Furthermore, Flutter shows errors less aggressively, and errors are easy to detect and fix compared to its opponent.
Why NOT use Flutter?
Popular yet not adopted. It may sound surprising, but even though Flutter has better statistics than other mobile languages, it still scares most companies. From my personal experience, while looking for a job in the Netherlands as a mobile developer, only one or two companies were focusing on Flutter, while the other twenty requested experience in React Native. Courses teaching Google’s framework are also below its competitors (e.g., 15 courses on Udemy, Kotlin has 40+).
There is still a lack of third-party libraries. I remember developing a whole complex system to handle emojis when I first created a chat application back in 2020 because there was no library to handle them. They exist now, but it is proof that the community and documentation still need to grow. Flutter has an extensive amount of widgets and libraries, but you may not find every single feature you need for now.
Conclusion
Should you use Flutter? As you saw, it has its advantages and inconveniences, but it is still an excellent opportunity to build native, performant, and beautiful mobile applications that fit your needs and flexibility. In my experience, it will save you time and money.
However, Flutter comes at the risk of still being a newcomer in the mobile industry. It might just be a matter of time until it becomes the must-have UI framework; most companies are still focusing on comfortable tools such as React-Native. Using Flutter means making a step into an unknown and evolving world, filled with some obstacles but mostly rich opportunities.
Sources:
Author’s experience:
- Fabien Diaz, Frontend developer
- https://flutter.dev/
- https://play.google.com/store/apps/details?id=bbyddy.app.android&hl=en_CA
- https://relevant.software/blog/top-8-flutter-advantages-and-why-you-should-try-flutter-on-your-next-project/#What_Is_Flutter
- https://www.mantralabsglobal.com/blog/flutter-framework/#:~:text=Flutter%20is%20faster%20than%20many,the%20overall%20app%20development%20time.
- https://doit.software/blog/flutter-vs-kotlin-which-is-best-for-cross-platform-app-development#:~:text=Since%20Flutter%20is%20an%20open,like%20comparing%20apples%20to%20oranges.&text=Flutter%20is%20a%20Google%2Dbuilt,app%20with%20a%20single%20codebase.
- https://voximplant.com/blog/flutter-for-real-communication
- https://flutter.dev/docs/resources/architectural-overview