You’ve gotten started with Google’s Flutter SDK to build mobile apps on both iOS and Android, but what now? Here’s how to keep the momentum going and learn Flutter and Dart over time.
Keep going after “getting started”
This article is about how you might learn Flutter and Dart over time in a sustainable way, to grow your mastery of the technology so that you’re ready to use it to enhance your career or your business.
This article presumes that:
- You know what Flutter is, and
- You might have already gotten started using Flutter
The latter article is about how you can get started with Flutter. In particular, how to do so without quickly losing steam or immediately bouncing off.
Losing steam and dropping out are common when you’re just getting started with learning a new thing, but it continues being a risk afterward, too. Things can get dry, unrewarding, and frustrating if you’re not careful, and there are so many other shiny things to learn out there!
How do you avoid losing steam learning Flutter and Dart? Rack up small victories, bite off interesting pieces as you go, learn from others, and keep going.
Set achievable Flutter goals to learn as you go
Once you’ve done all of the hand-holding courses and tutorials that are available to you (or that you can stand), it’s time to give yourself some small, achievable mini-projects to drive your learning.
In his article for newcomers to Flutter, Nick Manning recommends setting “motivation milestones”, which can include both building and research milestone goals. Some of his examples:
- Milestone Three: Learn how to hook up a button, change some state and render it on the screen by using a StatefulWidget.
- Milestone Four: Take a few hours to read up on Dart.
- Milestone Five: Be able to fetch some data from a public API and render it on the screen. Understand how to work with JSON and deserializing it.
- Milestone Six: Release an actual iOS and/or Android build to a friend. This […] is really an amazing way to stay motivated and confident that you can crank out an app to the public one day.
Get input and ideas to learn Flutter as you go
Whether you’re giving yourself milestones or mini-projects to learn Flutter, it’s important to keep them relatively small and achievable.
You might want to assign yourself a project that is interesting to you and break it down into sub-goals. Or perhaps you want to be more reactive to outside forces, where the internet brings ideas to you.
Here are some places where you might be inspired to learn bits of Flutter as you go.
Flutter articles and media
A bunch of fine folks write informative articles about Flutter. This content might teach you something new, bring an aspect or capability of Flutter to your attention for you to pursue further, or simply allow other developers’ projects to inspire your own.
You might occasionally search the web landscape for such articles, train your phone to bring them to your attention, or follow authors who periodically publish content on the subject.
For example, on Medium, you might browse stories tagged “Flutter”, search through content on the official Flutter channel, or follow individual authors like Deven Joshi or Burhanuddin Rashid, who periodically write articles about Flutter.
Similarly (and yet differently), there is also The Boring Flutter Development Show, a video series on YouTube.
“Cookbook” and other Flutter.io documentation
Flutter.io has a bunch of great documentation to browse through, including a “Cookbook” of Flutter solutions to specific small goals (e.g. “Working with Tabs”, “Fade a Widget in and out”, “Introduction to unit testing”).
Poking through these might help you assemble your own milestones list.
Pick a widget and try using it
About those Flutter widgets
Everything is widgets / widgets are everything
Flutter is all-in on an abstract concept of widgets. In a Flutter app, effectively everything is a widget: UI text is a widget, input fields are widgets, layout containers are widgets, gesture detection is a widget, the app itself is a widget… you get the idea.
Learn Flutter widgets as you go
You might be tempted to dive into the documentation and learn about each and every widget type that the Flutter framework provides.
That’s not what you should do when you’re getting started, and it’s probably not what you should do afterward, either. Instead, you might investigate only the widgets that fit the need for your current project. Or pick an interesting widget first, and build a mini-project or milestone around learning it.
For identifying interesting or useful widgets, you might:
- Browse the catalog of categorized widget types in the documentation
- Run the Flutter Gallery app (from the Google Play app store or build it from GitHub). You can visually browse and interact with some of the widget types and samples, and inspect the actual code.
Learning Dart to learn Flutter
Flutter uses Dart for its programming language. Dart is not a language that most developers have prior experience with, however. Fortunately, when you are starting out with Flutter you can do a bunch of tutorials without really having to think too much about Dart.
But even when you’re “on your own” and learning Flutter as you go, it’s best not to let learning Dart bog you down and sap all of your momentum.
Learning just enough Dart
Google also provides resources for you to “Bootstrap into Dart”, including a relatively lengthy tour of the Dart language.
Dart as compared to X
Want to learn about Dart from the perspective of…
- …Java? Try this Google codelab: Intro to Dart for Java Developers.
And there’s always the full Dart documentation at https://www.dartlang.org/. It’s reference material. You don’t need to try to read it top-to-bottom.
Help, support, and learning from others’ questions
You don’t need to struggle through Flutter problems all on your own.
Get used to going to the Flutter Google Group if you can’t find an answer to a problem on Stack Overflow. I recommend the former over Stack Overflow when asking questions actually. You can read more advice here.
There’s also a friendly community-driven live-video help session, available all day every Wednesday.
Learn about how BetaTesting can help your company launch better products with our beta testing platform and huge community of global testers.