Flutter
Curriculum
Flutter · Dart included

Flutter Tutorial

A complete Flutter path from beginner to pro - with every essential Dart skill taught inside Flutter when you need it. No separate Dart course required.

65 lessonsBeginner → ProMobile
Start from the beginning

Curriculum

Work through each section in order. Every lesson ends with practice and key points so the idea sticks.

Beginner

Getting Started

5 lessons · ~50 min
  1. 1
    What is Flutter?

    Learn what Flutter is, what it is used for, and why it is a friendly way to build beautiful apps.

  2. 2
    Learn Flutter Without a Separate Dart Course

    Understand how this tutorial teaches Dart exactly when Flutter needs it.

  3. 3
    Install Flutter & Set Up Your Editor

    Install Flutter, check your setup, and prepare an editor for building apps.

  4. 4
    Your First Flutter App

    Create a small Material 3 Flutter app and understand the main pieces.

  5. 5
    Project Structure Explained

    Understand the most important folders and files in a new Flutter project.

Beginner

Dart Essentials Inside Flutter

3 lessons · ~40 min
  1. 6
    Dart Variables & Types (Inside Flutter)

    Learn Dart variables and common types by placing real values in Flutter widgets.

  2. 7
    Dart Functions, Classes & Null Safety

    Learn functions, widget classes, simple model classes, and Dart null safety essentials.

  3. 8
    Lists, Maps & a First Look at async

    Use Dart lists and maps in Flutter, then preview async code for future data loading.

Beginner

Widgets & UI

5 lessons · ~59 min
  1. 9
    Widgets: The Building Blocks

    Understand widgets, widget trees, composition, and why Flutter UI is built by nesting widgets.

  2. 10
    StatelessWidget

    Create UI that depends only on the values passed into it.

  3. 11
    StatefulWidget & setState

    Build interactive UI that changes when the user taps a button.

  4. 12
    Text, Images & Icons

    Display readable text, icons, network images, and local image assets.

  5. 13
    Buttons & Basic Gestures

    Handle taps with Flutter buttons, IconButton, and GestureDetector.

Beginner

Layout

3 lessons · ~36 min
  1. 14
    Row, Column & Expanded

    Arrange widgets horizontally and vertically with Flutter layout basics.

  2. 15
    Container, Padding, Margin & BoxDecoration

    Use Flutter box widgets to add spacing, backgrounds, borders, and rounded corners.

  3. 16
    Stack & Positioned

    Layer widgets on top of each other for badges, overlays, and custom layouts.

Beginner

Lists & Grids

2 lessons · ~23 min
  1. 17
    ListView & ListTile

    Display scrollable lists with beginner-friendly ListView and ListTile patterns.

  2. 18
    GridView

    Display cards in rows and columns using GridView.

Beginner

Input

2 lessons · ~27 min
  1. 19
    Forms & TextFields

    Collect user input with TextField, TextEditingController, and Form.

  2. 20
    Form Validation Basics

    Use Form, TextFormField, validators, and GlobalKey to check input before saving.

Beginner

Navigation

2 lessons · ~27 min
  1. 21
    Navigator & Routes

    Move between screens with Navigator.push and Navigator.pop.

  2. 22
    Passing Data Between Screens

    Send values to another screen and return results back to the previous screen.

Beginner

App Polish

3 lessons · ~40 min
  1. 23
    Themes, Colors, Fonts & Assets

    Polish a Flutter app with Material 3 themes, colors, fonts, and declared assets.

  2. 24
    Material & Cupertino

    Understand Flutter design systems and when to use Material or Cupertino widgets.

  3. 25
    Responsive UI Basics

    Build layouts that adapt to different screen widths using MediaQuery, LayoutBuilder, Wrap, and flexible widgets.

Intermediate

State Foundations

4 lessons · ~51 min
  1. 26
    Keys & Widget Identity

    Understand how Flutter matches widgets to existing elements, and use keys to preserve the right state when lists change.

  2. 27
    When setState Is Enough (and When Not)

    Use setState confidently for local UI state, and recognize when state needs to move into a shared model.

  3. 28
    InheritedWidget & of(context)

    Learn the Flutter mechanism behind Theme.of, MediaQuery.of, and many state management libraries.

  4. 29
    Provider State Management

    Manage shared Flutter state with ChangeNotifier, Provider, Consumer, context.watch, and context.read.

Intermediate

Async & Networking

5 lessons · ~63 min
  1. 30
    Futures, async & await

    Use Dart Futures in Flutter screens for delayed work, API calls, and one-time async loading.

  2. 31
    Streams & StreamBuilder

    Render data that changes over time with Dart Streams and Flutter StreamBuilder.

  3. 32
    HTTP Requests

    Fetch data from APIs in Flutter with the http package, status checks, JSON decoding, and timeout handling.

  4. 33
    JSON Parsing & Model Classes

    Convert API JSON into typed Dart model classes with factory constructors, nullable fields, and toJson methods.

  5. 34
    Loading, Empty & Error UI

    Design async screens that clearly handle loading, successful data, empty results, and recoverable errors.

Intermediate

Local Data

3 lessons · ~38 min
  1. 35
    shared_preferences

    Store small pieces of local app data such as settings, flags, and simple user preferences.

  2. 36
    Local Database (Hive or sqflite patterns)

    Use a local database pattern for offline Flutter data, with Hive as the primary example and sqflite as a relational alternative.

  3. 37
    Files & Path Access Basics

    Read and write app files with dart:io and path_provider, using platform-safe directories.

Intermediate

Navigation Patterns

3 lessons · ~36 min
  1. 38
    BottomNavigationBar

    Build tab-like top-level navigation with BottomNavigationBar, IndexedStack, and destination state preservation.

  2. 39
    Tabs & Drawer

    Use TabBar, TabBarView, DefaultTabController, and Drawer for common Flutter navigation layouts.

  3. 40
    Named Routes & onGenerateRoute

    Organize Flutter navigation with named routes, route arguments, and a central onGenerateRoute function.

Intermediate

Motion

3 lessons · ~36 min
  1. 41
    Implicit Animations

    Add motion with AnimatedContainer, AnimatedOpacity, AnimatedSwitcher, and other implicit animation widgets.

  2. 42
    Explicit Animations & AnimationController

    Use AnimationController when you need to start, stop, repeat, reverse, or coordinate animation timing.

  3. 43
    Hero Animations

    Create shared-element transitions between routes with Flutter Hero widgets and matching tags.

Intermediate

Interaction

1 lessons · ~13 min
  1. 44
    Gestures & Dismissible

    Handle richer interaction with GestureDetector, InkWell, long press menus, drag callbacks, and Dismissible list rows.

Intermediate

Tooling

1 lessons · ~10 min
  1. 45
    Packages & pub.dev

    Find, evaluate, install, import, and maintain Flutter packages from pub.dev.

Intermediate

Backend Basics

2 lessons · ~26 min
  1. 46
    Firebase Intro for Flutter

    Understand where Firebase fits in Flutter apps and the basic setup flow for core backend features.

  2. 47
    Auth UI & Session Patterns

    Build authentication flows with session state, auth gates, forms, and sign-in/sign-out patterns.

Intermediate

Quality

1 lessons · ~13 min
  1. 48
    Widget Testing Basics

    Write Flutter widget tests that pump widgets, find UI elements, interact with them, and assert visible behavior.

Advanced

Pro Architecture

3 lessons · ~52 min
  1. 49
    App Architecture (feature-first / clean-ish)

    Structure a Flutter app so features, data access, state, and UI stay understandable as the project grows.

  2. 50
    State Strategy: setState, Provider, Riverpod, Bloc

    Choose the right state tool for local UI, shared app state, async data, and large workflows.

  3. 51
    Dependency Injection & App Wiring

    Wire repositories, services, clients, and configuration without hard-coding dependencies inside widgets.

Advanced

Performance

2 lessons · ~33 min
  1. 52
    Performance, rebuilds & DevTools

    Find slow frames, reduce unnecessary rebuilds, and use Flutter DevTools like a production engineer.

  2. 53
    Isolates & Heavy Work

    Move CPU-heavy parsing, compression, and calculations off the UI isolate so the app stays responsive.

Advanced

Platform Power

2 lessons · ~30 min
  1. 54
    Platform Channels Intro

    Call Android and iOS native APIs from Flutter when a plugin does not already solve the problem.

  2. 55
    Deep Links & App Links

    Open specific app screens from URLs, emails, notifications, QR codes, and verified web links.

Advanced

Polish & Quality

2 lessons · ~32 min
  1. 56
    Internationalization (l10n)

    Prepare a Flutter app for multiple languages, plural rules, date formats, and right-to-left layouts.

  2. 57
    Accessibility Essentials

    Build Flutter screens that work with screen readers, large text, keyboard navigation, contrast, and touch targets.

Advanced

Shipping

3 lessons · ~47 min
  1. 58
    CI/CD & Release Mindset

    Automate formatting, analysis, tests, builds, versioning, and release checks before shipping Flutter apps.

  2. 59
    Publish to Google Play

    Prepare Android signing, app bundles, store listing assets, testing tracks, and rollout decisions for Google Play.

  3. 60
    Publish to App Store

    Prepare iOS signing, bundle IDs, archives, TestFlight, App Store metadata, and review readiness.

Advanced

Capstone Projects

3 lessons · ~60 min
  1. 61
    Mini Project: Todo App

    Build a polished local Todo app with feature-first folders, local state, validation, filtering, and persistence-ready structure.

  2. 62
    Mini Project: API-powered Course Browser

    Build an API-backed Flutter course browser with models, repository boundaries, loading states, errors, and retry.

  3. 63
    Mini Project: Shop / Catalog App

    Build a catalog app with product cards, filters, cart state, derived totals, and a shipping-ready feature structure.

Advanced

Polish & Next Steps

2 lessons · ~26 min
  1. 64
    Common Flutter Mistakes (and Fixes)

    Avoid the bugs and maintainability traps that commonly appear when Flutter apps move from demo to production.

  2. 65
    Web/Desktop, Ecosystem & What to Learn Next

    Decide where to take Flutter next: web, desktop, packages, native integrations, testing, design systems, and production depth.