Pebellslearn by building
RoadmapsMatrixCoursesSandboxSign in

Course details

Flutter

Learn the Dart language and the Flutter ideas every app is built on. You will set up a real project, compose screens from widgets, bundle images, fonts and data, keep your work in Git and GitHub, and manage packages — all while building Sprout, a small plant-watering app.

Ready to learn6 sections · 22 lessons
Start learning

Course curriculum

Basics of Dart5 lessons

Write and run Dart in the browser, store values in variables, use the built-in types, define functions with named parameters, and steer a program with operators and control flow — all while sketching the logic of Sprout, a plant-watering app.

  1. DartPad — Your First Dart Program12 min
  2. Variables: var, final and const12 min
  3. Built-in Types12 min
  4. Functions and Parameters12 min
  5. Operators and Control Flow15 min
Development Environment3 lessons

Leave the browser behind: check your setup and create Sprout with the Flutter command line, pin the exact Flutter version with FVM, and pick an editor that makes hot reload and debugging one keystroke away.

  1. The Flutter CLI12 min
  2. FVM — Pinning the Flutter Version12 min
  3. Choosing an Editor: VS Code, Android Studio, IntelliJ10 min
Widgets5 lessons

Learn how Flutter describes a screen: stateless widgets that only display, stateful widgets that remember and rebuild, Material and Cupertino widgets that give an app its look, inherited widgets that share data down the tree, and layouts that adapt to any screen size.

  1. Stateless Widgets12 min
  2. Stateful Widgets12 min
  3. Styled Widgets: Material and Cupertino12 min
  4. Inherited Widgets12 min
  5. Responsive Widgets15 min
Working with Assets3 lessons

Declare files in pubspec.yaml so Flutter bundles them, then show plant photos at the right resolution, give Sprout its own typeface, and load a starter list of plants from a JSON file.

  1. Images12 min
  2. Fonts12 min
  3. Other File Types15 min
Version Control with Git and GitHub3 lessons

Record Sprout's history in small Git commits, decide which files of a Flutter project belong in the repository and which are generated, and push the project to GitHub so others can clone it and propose changes through pull requests.

  1. Git: Snapshots of Your Project12 min
  2. What a Flutter Repo Should Track12 min
  3. GitHub: Sharing Sprout15 min
Package Managers3 lessons

Judge a package on pub.dev before you trust it, add and update dependencies with the pub commands, and read version constraints and the lock file so every build of Sprout uses the versions you expect.

  1. Choosing a Package on pub.dev12 min
  2. flutter pub: Add, Get, Upgrade12 min
  3. Version Constraints and the Lock File15 min