UPDATE: My Flutter course is now live! Check it out at fluttercrashcourse.com 🚀
Throughout this past year’s explosion of popularity in Flutter, I’ve seen many fresh newcomers to mobile development. It’s been really exciting and rewarding taking part in mentoring others, making sure developers from all over the world learn Flutter efficiently and effectively. That’s why I’m launching my very own course this month.
So on that note, I’d like to provide some thoughts on learning styles, what I believe is effective and finally, what are some of the core skills Flutter engineers need to succeed in writing great mobile apps.
How Are You Learning, Exactly?
So there are two types of developers I’ve seen out there. One type of developer will take a quick start from the official documentation, then try to play around with some random examples and after that heavily rely on Stack Overflow answers. Here’s the problem with that: a) playing around is all well and good, but if you’re playing around with features you won’t need anytime soon, you’re not using your time effectively and b) Stack Overflow answers can too easily include poor quality code examples. I sound like I’m making a generalization but all too often with junior developers, from my experience, I see things play out like this.
Another type of developer though will make a plan on what they need to learn, write a few simple example apps and most importantly find quality content to learn properly from day one. Personally, I always love reading through a proper book first, soaking things in, then trying to write an app myself.
So for the rest of this article, I’m going to focus on the latter developer I’ve mentioned above, the one who learns effectively by focusing on exactly what they need to learn to become a competent mobile developer.
Essential High Level Skills
I’ve seen a lot of recurring patterns in 90% of the apps out there. The patterns can be broken down into two major areas, screens and widgets. You may want to set the following as personal learning goals. If you’re working on coding examples, being able to create a example from each of these will be major milestone for you:
Milestone #1: A Product Detail or User Profile Page
In this case, something with a nice looking image or avatar at the top, stylized text, a list of sections that contain some text and really that’s most of it.
Milestone #2: Lists
Think of a news feed, it scrolls vertically (doesn’t have to be infinite) and is backed by some data source somewhere. Each item is implemented with a clean, “DRY” approach.
Milestone #3: Forms
This can be a login or registration form or an edit form. Forms are central to mobile apps and designing forms that look good and function well is something to be proud of.
Essential Widgets for Newcomers
I’m going to compliment the list above with a list of Flutter specific widgets that, at least for me, have been fundamental to getting to a confident level of Flutter development skills.
Note, there are a lot of Widgets out there, the key is to focus on the basic ones first. Here’s a starter list of skills with accompanying Widgets that I recommend learning as a beginner:
- The basics of rendering a screen using MaterialApp, Scaffold and AppBar.
- The basics of layout using Column and Row.
- The basics of grouping and decorating areas of content using Container.
- Text and Image widgets, specifically using AssetImage and NetworkImage.
- Creating flexible, custom Buttons using GestureDetector.
- Customizing your app using fonts, text style and colors.
- Working with APIs using Dart and JSON.
I know what you’re saying, this is a very basic list, but you’d be surprised what you can achieve with just this. I always say to be people to focus on writing dead simple apps first with the basic skills you have before going overboard on using more widgets than this. You don’t have to submit them, just show them to friends and family. The point is that you write end to end apps as a lot more than you think is learned by this process. In short, learn by doing!