By Salvatore Giordano
At the moment I'm not really into writing Flutter code, and I miss it.
I've changed jobs more or less 10 months ago. Now I'm a backend microservices developer using Node.js as a primary tool, but after all this time I'm starting to miss Flutter, Dart and that great community.
So, my new mission is to convince my engineering lead to let me rewrite our main application using Google's cross-platform framework - Flutter. I succeeded one year ago with my former employer, but everyone is different in this life.
What is Flutter
Flutter is an application development framework made by Google used for creating cross-platform mobile applications (in iOS and Android). As mentioned on the official website, it aims to make the development as easy, quick, and productive as possible. Flutter’s features including Hot Reload, a vast widget catalog, powerful performance, and a solid community contribute to meeting that objective and makes Flutter a pretty good framework.
Why use Flutter
What makes Flutter approachable to developers is that it requires no prior mobile experience and little programming skills. If you are familiar with object-oriented concepts (classes, methods, variables, etc) and imperative programming concepts (loops, conditionals, etc), you are good to get started.
Flutter uses neither WebView nor the OEM widgets that ship with a mobile device, instead of using its own rendering engine to draw widgets. Flutter provides a set of widgets (including Material Design and Cupertino (iOS-styled) widgets), managed and rendered by Flutter’s framework and engine.
Flutter also increases developer productivity by allowing them to see changes they make to the state of an app in less than one second. This is done using Flutter’s “hot reload” feature that makes you able to reload the application UI keeping the application state in memory.
Not just that, at 2019 Google I/O, Google made a major overhaul to its Flutter UI framework expanding it from mobile to multi-platform. The company released the first technical preview of Flutter for Web. In September at GDD, the team announced the successful integration of Flutter’s web support into the main Flutter repository that will allow developers to write for desktop, mobile as well as Web with the same codebase.
My journey to convince my lead for Flutter
At first, I tried saying something about this wonderful framework now and then:
We could try Flutter to write our app!
We have only one Android and one iOS developer, maybe we'll benefit in productivity!
Mhhh we have this brand new feature to implement: using a cross-platform framework that makes you able to save and look at the result without recompiling everything every time may help us to implement it quicker!
Hey! Look at that bird! Reminds me about Dash, do you know him? The Flutter mascot!
Every moment is good to remind my teammates and my CTO to take a look at Flutter. I'm becoming worse than those subliminal messages in old movies so loved by the conspiracy guys over the web.
But nothing could scratch that bad feeling that people have about cross-platform applications. Also, they already had a bad experience using Cordova.
In my prior job, I had more free time than now and I decided to rewrite one of our applications in Flutter from scratch over the weekend. The application was loved by my entire team. Since then, they've never seen another native application: Flutter was more comfortable and easy to use.
So, what is the next step into my evil plan for Flutterization?
We are an electric scooter sharing company. Apart from our main app, we have another application (at the moment an Angular web app, but we want to rewrite that using a cross-platform framework) used by the service team which is responsible for changing batteries and maintaining our scooter fleets.
My idea is to write the service-app using Flutter and there is a strong probability that it will be a success, everybody will love it and it would be better instead of maintaining two different (but functionally equal) applications.
How to convince your team to move to Flutter?
Summarizing, here is my advice to convince your tech lead/product manager to consider Flutter as your next application framework:
- Tell him about Flutter, the community, and it’s benefits. Try to convince him and your team by explaining real-world applications using Flutter.
- Take the risky choice of investing your personal free time to learn Flutter and bring to your boss the results.
- Try to rebuild some application, written in some other framework, in Flutter.
- For starters, use Flutter to craft a side-application, not your main application or an application for your clients.
I hope your boss appreciates your efforts and Flutter will eventually be your new daily companion.
How to learn Flutter? If you want to take a brief journey into the Flutter world you can find my book on Packt Publishing, Google Flutter Mobile Development Quick Start Guide. In this book, you will understand the fundamentals of Flutter and get started with cross-platform mobile app development. You will learn about different widgets in Flutter and understand the concepts of Routing and Navigating. You will also work with Platform-specific code to use Native features and deploy your application on iOS and Android.
Salvatore Giordano is a 23-year-old software engineer from Italy. He currently works as a mobile and backend developer in Turin, where he attained a bachelor's degree in computer engineering. He is a member of the Google Developer Group of Turin, where he often gives talks regarding his experiences. He has written many articles on Flutter and contributed to the development of a number of plugins and libraries for the framework.