When I first received my technology assignment for the Mobile Practice 2018 Hackathon, I was nervous and excited to see that I would be working with Flutter and Dart. After completing our Hackathon prototype, I wanted to highlight some of the pros and cons of using Flutter for your mobile development project. Originally released in May 2017, Flutter is a framework created and maintained by Google for developing iOS and Android apps simultaneously. Furthermore, it is primarily used for creating applications in Google Fuchsia. This blog post will walk through the pros and cons of using Flutter for your next mobile development project.
PROS OF FLUTTER
Right away one of the most beneficial things about Flutter is the ease with which you can develop quick prototypes for your app. While the initial setup of Flutter may be a little lengthy, you can easily build your first screen using the existing structure from the template provided and replacing the body of the app with your own fields.
Another benefit of using Flutter is that it uses Material Design for its default components, which means it is easier to produce a professional looking app.
Last, and certainly not least, is the hot reload feature of Flutter. While Xcode and Android Studio require you to terminate and restart your app every time you want to view your changes, Flutter implements a hot reload feature that means you won’t have to shut down every time you make a minor change. This can be especially useful for working with the user interface (UI) of your app as every little change won’t require a full-scale shutdown to see how it looks with the new changes.
CONS OF FLUTTER
One of the main difficulties with Flutter is the structure of the code. In the pros section above I recommended using the existing template as your jumping-off point for making changes—this is because the structure of your code can quickly become unmanageable. The nested structure of children and containers means that to add a simple element like a text field requires 5-10 layers of code before the actual component. This is fine on a very simple app, but for more large-scale development projects this is quite unmanageable. It would require extensive planning of your widget structure to combat the nature of Flutter’s structure.
Another con to Flutter is that it doesn’t have a graphic UI editor like the design editor in Android Studio or Storyboard editor in Xcode. This would dramatically increase the overall usability of the Flutter framework by cutting out a lot of the interaction with the convoluted structure.
FLUTTER COULD BE POWERFUL
Flutter is a fairly new framework that is still in beta, so it’s expected to be flawed and not on par with a more seasoned framework like Xamarin. It provides an incredibly quick way of prototyping and designing an app without many UI customizations, but will become confusing as your app grows in complexity. I would highly recommend Flutter for quick prototyping of your app, but at this point in its life cycle it would be better to go with something like Xamarin or React Native. I’m excited to see where it goes in the future and I think with a couple of improvements—namely a graphical UI builder—it could become one of the more powerful tools out there for mobile development.
If your company would like help implementing an application with Flutter, Credera would be pleased to help you reach your goals. Contact us at firstname.lastname@example.org.