Flutter is an open-source SDK for creating high-performance, high-fidelity mobile apps for iOS and Android. The Flutter framework makes it easy for you to build smooth user interfaces in your app.
Flutter makes it easy to get started building beautiful apps, with its rich set of Material Design and Cupertino (iOS) widgets and behaviors. Your users will love your app’s natural look and feel because Flutter implements platform-specific scrolling, navigational patterns, fonts, and more.
So here’s what I’ve learned by using Flutter for 3 months now.
Dart: simple to learn and a joy to use.
Compared to other weird and painful programming languages, Dart was far easier to learn and had a much simpler syntax (It was like a weird combination between many lovable languages). I was able to move fast because I had a proper compiler that had clear, well-defined error messages, with far less unexpected hidden runtime errors. All I have to say is, when writing even medium-sized applications, developers should cherish strongly typed languages because it pays off big time when it comes to moving fast and writing reliable code.
Hot reload is a big deal for me
There’s not much to say about this, except this feature of Flutter alone is important enough to warrant its own section of this article cause it made me feel like home using my web framework (it's Vue.js btw). Sometimes it crashes but it’s fast and even more importantly, reliable and I hope it will be improved in the next few years.
More focus on end-to-end app examples is still needed.
While there’s a ton of solid documentation, tutorials, communities, and overall help out there on working with Flutter, I think there’s too much of a focus on widgets alone. That makes a lot of sense since Flutter is so new. But eventually, more and more people are going beyond just implementing pure UI and animation and will start writing more full-blown apps and more end-to-end tutorials should be featured in my opinion.
Flutter has way too many widgets.
For all the widgets I thought I had to learn to get going with Flutter, I ended up using probably 20% of them. For example, the Center widget. Why have a widget alone just for centering something? Although it makes it easy for newcomers to get started, its widgets like these produce far too much nested Dart code when it comes time to implement more complex layouts. Instead, I fall back on the basic Container layout options I’m just going to use anyway because they are very flexible.
Flutter’s documentation is good.
Widgets and class documentation now have more and more examples. This is a big win over other libraries that lack proper examples even, let alone well-written documentation.
Final Thoughts
Despite all the challenges and the crashes from time to time, I’m still really really happy that I invested all this time into learning Flutter. I can’t go back now. It makes sense for businesses as a now viable option for technology for writing for multiple platforms and it’s a joy to use as a developer.