Foundations Course - May 2023 Update

Main changes:

  • Updated course to Flutter 3.10, Dart 3.0
  • Updated course to latest package versions
  • Replaced Freezed with sealed classes for error handling
  • Replaced downloadable snapshots with git branches

Here are the most important details for each section / lesson. 👇

Section 1#

Lesson 01.05:

  • Intro to GitHub project → now using git branches

Lesson 01.06:

  • New starter project introduction
  • Clone from git branch
  • Updated pubspec.yaml to latest packages, Dart 3.0

Lesson 01.08:

  • Updated overview of main.dart file (now using updated error handling)

Section 2#

We’ll be using GoRouter version 7.0.

Lesson 02.01:

  • Updated notes to mention version 7.0

Lesson 02.03:

  • show how to set the URL path strategy with usePathUrlStrategy

Lesson 02.08:

  • Passing parameters to a route: params has been renamed to pathParameters

Lesson 02.12:

  • Now showing how to pop routes with GoRouter (with or without a value)

Lesson 02.13:

  • Overview of nested navigation
  • Explain that ShellRoute has been added but this doesn’t yet support stateful nested navigation

Lesson 02.14:

  • Bug fix: no longer passing key: state.pageKey when creating a MaterialPage inside a GoRoute

Section 3#

This is mostly the same but now using git branches rather than downloadable zip files.

Section 4#

Mostly minor changes.

Lesson 04.03:

  • Updated installation instructions to use flutter_riverpod 2.3.6
  • Mentioned that Riverpod Generator will be covered in section 13

Section 5#

  • Removed lesson 05.23 (now addressed at the end of section 2)

Section 6#

Only minor changes

Section 7#

Only minor changes

Lesson 07.06:

  • Updated the notes about how to setup a widget tests for code that uses GoRouter under the hood

Section 8#

Only minor changes

Section 9#

Only minor changes

Section 10#

Revamped this section to show how to use sealed classes rather than Freezed when defining domain-specific exceptions

Lesson 10.04:

  • A new lesson about defining an AppException sealed class

Lesson 10.05:

  • Showing how to use the AppException class in the project

Lesson 10.09:

Section 11#

Only minor changes

Section 12#

Only minor changes

Section 13#

Updated this section to the latest Riverpod Generator version (which supports StreamProvider)

Lesson 11.03:

  • Updated installation instructions

Lesson 11.05:

  • Showing how to create FutureProviders and StreamProviders with the new API (using Riverpod snippets)