Flutter and Dart: build cross platform apps from scratch

Learn Dart, widgets, layout, navigation, state and networking by building a habit tracker for Android and iOS

7 ratings 3,460 students Sample

Created by Diego Salazar

  • Updated September 2026
  • English
  • Beginner

What you will learn

  • Write clear Dart 3 code with null safety, classes and async functions
  • Compose Flutter screens from widgets using rows, columns, stacks and lists
  • Navigate between screens and pass data with go_router
  • Manage app state with setState and Riverpod
  • Persist data on the device and fetch data from a REST API
  • Build a signed release APK and an iOS build ready for testing

Course content

6 sections, 26 lessons, 4h 37m total

Flutter and Dart basics 5 lessons · 56 min
  • Video: Meet Flutter and the project Preview 8 min
  • Article: Installing Flutter and running the first app Preview 14 min
  • Article: Dart essentials for Flutter 15 min
  • Article: Widgets, build methods and layout 14 min
  • Quiz: Check your understanding 5 min
Screens and navigation 4 lessons · 44 min
  • Video: Forms and text input 13 min
  • Video: Navigation with go_router 12 min
  • Video: Bottom navigation and app structure 10 min
  • Article: Dialogs, sheets and snack bars 9 min
Managing state 4 lessons · 47 min
  • Article: When setState is enough 9 min
  • Video: Introducing Riverpod 14 min
  • Video: Notifiers for changing data 13 min
  • Video: Async state and loading 11 min
Storage, networking and notifications 4 lessons · 46 min
  • Video: Saving data on the device 13 min
  • Video: Calling a REST API 12 min
  • Video: Daily reminder notifications 11 min
  • Video: Charts for the stats screen 10 min
Quality and polish 4 lessons · 40 min
  • Video: Widget tests 12 min
  • Video: Dark mode and adaptive layout 9 min
  • Article: Accessibility in Flutter 9 min
  • Video: Performance basics with DevTools 10 min
Releasing the app 5 lessons · 44 min
  • Article: App icons, names and splash screens 8 min
  • Video: Building a signed Android release 12 min
  • Video: Preparing an iOS build 11 min
  • Article: Store listings and what comes next 8 min
  • Quiz: Final check 5 min

Requirements

  • Some programming experience in any language helps but is not required
  • A computer with at least 8 GB of RAM that can run Android Studio
  • A Mac with Xcode only if you want to build for iOS

Description

Flutter lets you write one codebase in Dart and ship it to Android, iOS, the web and desktop. Its widget system and hot reload make it one of the friendliest ways to start building mobile apps, as long as someone explains how the pieces fit together.

In this course you build Streak, a habit tracker. It has a list of habits, daily check ins, a stats screen, reminders and data that survives app restarts. You start with no Dart knowledge and finish with a release build you can install on a real phone.

What you will learn

  • Dart 3 basics: types, null safety, classes, records and async code
  • How widgets, the widget tree and hot reload work
  • Layout with rows, columns, stacks and lists
  • Navigation between screens with go_router
  • State management with setState first, then Riverpod
  • Saving data locally and calling a REST API
  • Building, signing and testing a release version

Teaching approach

We use Material 3 widgets and keep the design simple so we can focus on how things work. Every section adds a feature to Streak and ends with the app running on an emulator or your own phone. When something goes wrong, which it will, we read the error together and fix it.

You need a computer that can run Android Studio. To build for iOS you need a Mac with Xcode, but you can follow the whole course using Android only.

Who this course is for

  • Beginners who want to build their first mobile app
  • Web developers curious about native mobile development
  • Developers choosing between cross platform frameworks

Instructor

Diego Salazar

Mobile developer teaching Flutter and React Native for apps that ship to both stores

  • 4.4 instructor rating
  • 14 reviews
  • 5,750 students
  • 2 courses
  • Sample

I build cross platform mobile apps, mostly with Flutter and React Native, and I have taken a fair number of them through App Store and Google Play review. I like the moment an app runs on a real phone in someone's hand, and I teach toward that moment.

In my courses you build one app across the whole course, with navigation, local storage, network calls and a proper release build at the end. I spend time on the boring details, like app icons, permissions and signing, because that is where beginners usually get stuck.

I also write about the trade offs between the two frameworks without picking a side.

View profile

Student reviews

4.4 7 ratings
5 star 57%
4 star 29%
3 star 14%
2 star 0%
1 star 0%
Ayesha R. Sep 14, 2026
Sample

My first app on my own phone

I had never written Dart before. By the end I installed Streak on my phone and my sister now uses it every day.

Lukas M. Aug 22, 2026
Sample

Riverpod explained without the confusion

Starting with setState and showing its limits first made Riverpod make sense. Other tutorials skipped that step.

Thandi N. Jul 19, 2026
Sample

Very complete, a bit long

Everything you need is here, from forms to release builds. A few lessons could be shorter, but I appreciated the detail.

Carlos E. Jun 15, 2026
Sample

The overflow error lesson saved me

Understanding what the overflow stripes mean saved me hours of trial and error.

Mei L. May 6, 2026
Sample

iOS part is short

Android is covered in depth. The iOS release lesson is fine but assumes you already have an Apple developer account.

Ivan P. Apr 8, 2026
Sample

Great explanations of Dart

The Dart lessons are compact and practical. Null safety and records clicked right away.

Noor A. Jan 4, 2026
Sample

Good, but I wanted more design

The app works well but looks very plain. I would have liked one section on custom styling.

$59.99 Enroll now
SampleSample catalog: the instructors, courses, reviews and stats on this site are demo content.