Programming is difficult. Although it’s not so hard to get the Counter app running, becoming an expert at a framework like Flutter and a language like Dart takes time, probably years. So in this article, I’ll give some advice to help you get to the next level.
There are a few categories we’ll look at:
- State management
- App architecture
- UI design
- Dart on the backend
- Flutter and Dart internals
- Advanced topics
Note: This article is mainly geared toward intermediate-level Flutter developers. If you’re a beginner, stop reading Medium articles and get out there and start making something. Learning by doing is the fastest way to make progress.
I’m starting with state management because that’s what hits you first when you begin Flutter development. With native Android and iOS development, you follow the recommended patterns, but with Flutter, you’re given so much freedom, and there are so many choices that it’s hard to know what to do.
To get good at state management, you should be comfortable using a few different state management solutions. You don’t have to learn them all at once, but make it your goal to learn three or four. As you do, you’ll begin to see the patterns between them all.
My recommendation to beginners (for those who didn’t follow my advice and are still reading this Medium article) is to make your first few practice apps using stateful widgets and calling
setState whenever you want to update the UI. This doesn’t require any special third-party state management package, and you can hack together almost anything with it. This will also give you a foundational understanding of how a reactive UI works.
For your first production app, I recommend choosing an easy-to-understand state management solution like GetX or the minimalist approach. You might really like your choice and continue to make multiple production apps using your chosen method.
However, to really get good at state management, you should learn some of the other options. On your next couple of production…