Articles & Reference guides
This is a collection of articles and reference guides that are relevant for this course.
You can use them to get a better understanding of the topics covered in this course, or to fill any gaps in your knowledge.
Navigation with GoRouter
In this course, we use GoRouter for navigation.
To get started, head to the GoRouter package on pub.dev.
There is also a very extensive documentation site explaining all the most important concepts (though note that this is no longer maintained):
Additional articles from my site:
App Architecture
App architecture is a major focus in this course.
To complement the course material, I have written some reference articles.
Get started with these:
- Flutter App Architecture with Riverpod: An Introduction
- Flutter Project Structure: Feature-first or Layer-first?
Then, learn about each of the four main layers (data, domain, application, presentation):
State Management & Riverpod
The course assumes you already have a basic understanding of state management in Flutter.
If you need a refrehsher, read this:
Then, dive into Riverpod with my ultimate guide:
Additional Riverpod articles to complement the course material:
- How to handle loading and error states with StateNotifier & AsyncValue in Flutter
- Flutter Riverpod Tip: Use AsyncValue rather than FutureBuilder or StreamBuilder
- AsyncValueWidget: a reusable Flutter widget to work with AsyncValue (using Riverpod)
- Flutter Riverpod: How to Register a Listener during App Startup
Testing
Testing is a major focus and the course covers unit, widget, and integration testing in depth.
Additional articles:
Design Patterns
The course assumes you're already familiar with the most common design patterns.
Here's some additional articles to help you out:
UI, Layouts & Animations
While some responsive UI concepts are introduced in section 1, this is not a course about building UIs.
Here are some additional resources:
JSON & Serialization
For the most part, we will use the Dart Data Class Generator extension to generate our data models.
Alternatives such as Freezed exist, and you can learn more broadly about JSON serialization here:
Error Handling
Section 10 of the course is all about error handling.
Here are some additional resources:
Localization
The official Flutter documentation contains the most complete info about localization:
I've also shared these articles on my site:
Dart Language
The course assumes you're already proficient with the Dart language.
If you need a refresher, I recommend these resources:
- Dart Documentation
- The Complete Dart Developer Guide (my beginners course)
I have also written some articles here:
Firebase
In the upcoming Flutter & Firebase Masterclass, we'll dive into Firebase.
In the meantime, here are some resources to get you started:
- Firebase documentation
- FlutterFire documentation (outdated but still very useful)
I have also written some articles on my site: