Note that this article is primarily dedicated to junior engineers, because I feel passionately about not only what people learn but also how people learn.

I’ve just posted my first six beta lessons of my Flutter crash course and man, I’ve learned a ton already. Check it out at fluttercrashcourse.com 🚀

One of the main takeaways is that it’s really hard to create a course for newcomers to mobile development, because there’s so many things to cover beyond just learning a series of widgets.

The problem I see with folks learning Flutter, primarily with junior engineers, is that they try to learn too many features of Flutter at once, without focusing on end to end concepts. Trying out a long list of widgets is nice and everything, but if you’re really serious about becoming a Flutter developer, it’s absolutely critical, in my opinion, to take a commonly used “recipe” that mobile engineers “should” know and, again, make sure you’re learning the “end to end” work that goes into implementing that recipe.

“End to end” means going beyond your knowledge of widgets and learning everything from choosing the right architecture, to data modeling, web services, layout, testing and code organization best practices.

Let’s take a real world example of one of the recipes I covered in my first six videos: implementing a product detail page.

What work goes into implementing this seemingly simple page?

It looks pretty easy, right? Well, maybe, but after trying out that laundry list of Flutter Widgets, can you still implement this properly without hacking it together?

Here are the required skills you’ll need to properly code this:

Creating models that represent the data you see.

that represent the data you see. Mocking the data properly, until you can fetch it from a proper API.

the data properly, until you can fetch it from a proper API. Determining the right layout and layout options to use.

and layout options to use. Determining the right architecture and code organization approach , based on the size and features of the app.

, based on the size and features of the app. Keeping your code clean and compact , following the “DRY” approach.

, following the “DRY” approach. Working with Images loaded from a URL, preventing layout thrashing .

. Working with constraints so that your screen adapts nicely to multiple devices.

so that your screen adapts nicely to multiple devices. Using a custom font .

. Consolidating style logic (referring to font sizes, spacing, colors) properly.

As you can see here, there’s a lot that goes into implementing this screen the “right way”. Dropping in some widgets and hard-coding some values in can get the job done, but this illustrates my original point: if you want to get serious about becoming a mobile engineer, reconsider how you’re learning and where you are getting your content.

So to come full circle here: I’ve learned a lot from developing these seemingly simple Flutter course videos and it’s hard to teach what goes in to proper mobile development. The skills people need go way beyond the documentation one finds. Learning with the right “know-how” is really important to learning efficiently and effectively.

If you want to follow along and code the recipe I’ve outlined above, check out my videos here (it’s free, by the way). I’d love your feedback, especially if you’re new to software development or mobile engineering.

Until next time, happy Fluttering.

Nick,