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.
Curriculum
Work through each section in order. Every lesson ends with practice and key points so the idea sticks.
Getting Started
- 1What is Flutter?
Learn what Flutter is, what it is used for, and why it is a friendly way to build beautiful apps.
8 min - 2Learn Flutter Without a Separate Dart Course
Understand how this tutorial teaches Dart exactly when Flutter needs it.
8 min - 3Install Flutter & Set Up Your Editor
Install Flutter, check your setup, and prepare an editor for building apps.
12 min - 4Your First Flutter App
Create a small Material 3 Flutter app and understand the main pieces.
12 min - 5Project Structure Explained
Understand the most important folders and files in a new Flutter project.
10 min
Dart Essentials Inside Flutter
- 6Dart Variables & Types (Inside Flutter)
Learn Dart variables and common types by placing real values in Flutter widgets.
12 min - 7Dart Functions, Classes & Null Safety
Learn functions, widget classes, simple model classes, and Dart null safety essentials.
15 min - 8Lists, Maps & a First Look at async
Use Dart lists and maps in Flutter, then preview async code for future data loading.
13 min
Widgets & UI
- 9Widgets: The Building Blocks
Understand widgets, widget trees, composition, and why Flutter UI is built by nesting widgets.
10 min - 10StatelessWidget
Create UI that depends only on the values passed into it.
12 min - 11StatefulWidget & setState
Build interactive UI that changes when the user taps a button.
14 min - 12Text, Images & Icons
Display readable text, icons, network images, and local image assets.
12 min - 13Buttons & Basic Gestures
Handle taps with Flutter buttons, IconButton, and GestureDetector.
11 min
Layout
- 14Row, Column & Expanded
Arrange widgets horizontally and vertically with Flutter layout basics.
13 min - 15Container, Padding, Margin & BoxDecoration
Use Flutter box widgets to add spacing, backgrounds, borders, and rounded corners.
12 min - 16Stack & Positioned
Layer widgets on top of each other for badges, overlays, and custom layouts.
11 min
Lists & Grids
Input
Navigation
App Polish
- 23Themes, Colors, Fonts & Assets
Polish a Flutter app with Material 3 themes, colors, fonts, and declared assets.
14 min - 24Material & Cupertino
Understand Flutter design systems and when to use Material or Cupertino widgets.
11 min - 25Responsive UI Basics
Build layouts that adapt to different screen widths using MediaQuery, LayoutBuilder, Wrap, and flexible widgets.
15 min
State Foundations
- 26Keys & Widget Identity
Understand how Flutter matches widgets to existing elements, and use keys to preserve the right state when lists change.
11 min - 27When setState Is Enough (and When Not)
Use setState confidently for local UI state, and recognize when state needs to move into a shared model.
12 min - 28InheritedWidget & of(context)
Learn the Flutter mechanism behind Theme.of, MediaQuery.of, and many state management libraries.
13 min - 29Provider State Management
Manage shared Flutter state with ChangeNotifier, Provider, Consumer, context.watch, and context.read.
15 min
Async & Networking
- 30Futures, async & await
Use Dart Futures in Flutter screens for delayed work, API calls, and one-time async loading.
12 min - 31Streams & StreamBuilder
Render data that changes over time with Dart Streams and Flutter StreamBuilder.
12 min - 32HTTP Requests
Fetch data from APIs in Flutter with the http package, status checks, JSON decoding, and timeout handling.
14 min - 33JSON Parsing & Model Classes
Convert API JSON into typed Dart model classes with factory constructors, nullable fields, and toJson methods.
13 min - 34Loading, Empty & Error UI
Design async screens that clearly handle loading, successful data, empty results, and recoverable errors.
12 min
Local Data
- 35shared_preferences
Store small pieces of local app data such as settings, flags, and simple user preferences.
11 min - 36Local 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.
15 min - 37Files & Path Access Basics
Read and write app files with dart:io and path_provider, using platform-safe directories.
12 min
Navigation Patterns
- 38BottomNavigationBar
Build tab-like top-level navigation with BottomNavigationBar, IndexedStack, and destination state preservation.
11 min - 39Tabs & Drawer
Use TabBar, TabBarView, DefaultTabController, and Drawer for common Flutter navigation layouts.
12 min - 40Named Routes & onGenerateRoute
Organize Flutter navigation with named routes, route arguments, and a central onGenerateRoute function.
13 min
Motion
- 41Implicit Animations
Add motion with AnimatedContainer, AnimatedOpacity, AnimatedSwitcher, and other implicit animation widgets.
11 min - 42Explicit Animations & AnimationController
Use AnimationController when you need to start, stop, repeat, reverse, or coordinate animation timing.
15 min - 43Hero Animations
Create shared-element transitions between routes with Flutter Hero widgets and matching tags.
10 min
Interaction
Tooling
Backend Basics
Quality
Pro Architecture
- 49App Architecture (feature-first / clean-ish)
Structure a Flutter app so features, data access, state, and UI stay understandable as the project grows.
18 min - 50State Strategy: setState, Provider, Riverpod, Bloc
Choose the right state tool for local UI, shared app state, async data, and large workflows.
18 min - 51Dependency Injection & App Wiring
Wire repositories, services, clients, and configuration without hard-coding dependencies inside widgets.
16 min
Performance
Platform Power
Polish & Quality
Shipping
- 58CI/CD & Release Mindset
Automate formatting, analysis, tests, builds, versioning, and release checks before shipping Flutter apps.
17 min - 59Publish to Google Play
Prepare Android signing, app bundles, store listing assets, testing tracks, and rollout decisions for Google Play.
15 min - 60Publish to App Store
Prepare iOS signing, bundle IDs, archives, TestFlight, App Store metadata, and review readiness.
15 min
Capstone Projects
- 61Mini Project: Todo App
Build a polished local Todo app with feature-first folders, local state, validation, filtering, and persistence-ready structure.
20 min - 62Mini Project: API-powered Course Browser
Build an API-backed Flutter course browser with models, repository boundaries, loading states, errors, and retry.
20 min - 63Mini Project: Shop / Catalog App
Build a catalog app with product cards, filters, cart state, derived totals, and a shipping-ready feature structure.
20 min
Polish & Next Steps
- 64Common Flutter Mistakes (and Fixes)
Avoid the bugs and maintainability traps that commonly appear when Flutter apps move from demo to production.
14 min - 65Web/Desktop, Ecosystem & What to Learn Next
Decide where to take Flutter next: web, desktop, packages, native integrations, testing, design systems, and production depth.
12 min