Agile App Co.

Is Flutter worth your time?

Introduction
2 years ago as an indirect reply to Facebook's React Native, Google released its own software development kit (SDK) to get itself in the dev game. It's been gaining traction since its first stable release in December last year, and now that 1.7 has been deployed, does it hold up against its more-established competitors?

What is Flutter?
Flutter is free and open-source. It uses a programming language called Dart, which Google also develops. It's pretty easy to learn if you already know Xamarin.Forms or React Native. If you do, then this link will take your existing knowledge and give you a head start. Flutter can also be integrated into a an existing app here.

Pros:

  • For anyone who is tired of coding in multiple languages at the same time, Flutter's biggest feature is cross-platform development. Similar to Xamarin.Forms, you can work on iOS and Android from a single codebase.
  • Another feature is the hot reload tool. This essentially lets you see live changes to your UI rather than building and deploying each time. This saves a lot of time, especially as the complexity of your app increases.
  • With Xamarin and React Native, a rendered UI for one device will likely look different on an alternative device. For example an iPhone 6 and an iPhone X. This is not the case with Flutter as it does its own UI drawing using the libraries Skia, rather than acting as a wrapper for the platform-specific native components. In fact, the UI should look the same across all iOS and all Android devices!

Cons:

  • Touching again on Flutter's method to drawing UI's, it does have some small (and rather subjective) downsides.
    • If you plan to integrate Flutter into a part of an existing app, you may notice a difference in the UI's for the Flutter section and the Native section.
    • As operating systems are updated and alter the way UI's are rendered, Flutter will only adopt the new look after being updated and rebuilt.
  • At the time of writing, there is a shortage of plugins in comparison to other SDK's. This should be a factor that will only increase as the community does. Currently though, remembering Flutter is run by Google, plugins are more-so tailored to the Android devs.
  • From what I've gathered there is no architectural approach known as the best one. What seems to be the most common ones are scoped_model, BLoC and Redux.

Conclusion:
Flutter is still very young. Personally, I think it has kicked off with some excellent ideas, enough to keep it going for at least a couple years longer. And given it's made by Google, it's likely to be well-monitored. But as an iPhone user, I can't say I've been converted just yet. To add to that, Microsoft have recently announced their own hot reload tool for XAML set to be available later in the year. The best way to know if it's for you is always by just getting stuck in. I would recommend following the official docs, as the process to creating a basic app is rather straight forward. You never know, widgets may be your new favourite thing!