Flutter Roadmap: Learn Flutter from Beginner to Expert
A free Flutter developer roadmap: what to learn each week, from Dart and widgets to state management, APIs, Firebase, testing, Flame games and release.
This roadmap shows what to learn, in what order, and roughly how long each stage takes to become a Flutter developer. Every step links to a free lesson on this site with easy examples you can run in the browser.
Stage 0: Dart basics (week 1)
You need the language before the framework, but only the basics.
- Dart for Flutter: everything on one page
- Deeper: the free Dart tutorial (variables, functions, classes, null safety, async)
Stage 1: Flutter fundamentals (weeks 2 to 4)
Goal: build static and simple interactive screens.
- What is Flutter?, install Flutter, your first app
- Widgets explained, StatelessWidget, StatefulWidget
- Text, buttons, images and icons, Container
- Layout: how layout works, Row and Column, Stack, ListView, GridView
- Scaffold and AppBar, themes and dark mode
Build: the calculator and BMI calculator.
Stage 2: Input, navigation and state (weeks 5 to 7)
- TextField, forms and validation, gestures
- Navigation, passing data, go_router
- Built-in state: all 9 tools, setState, ChangeNotifier
- Your first package: Provider
Build: the to-do app with storage and the quiz app.
Stage 3: Real data (weeks 8 to 10)
- HTTP requests, JSON and models, FutureBuilder, loading and error states
- Storage: shared_preferences, SQLite, Firebase
- Main state management: Riverpod and Bloc / Cubit. Read which state management to learn.
Build: the weather app, the notes app with Riverpod and the shopping cart with Provider.
Stage 4: Professional skills (weeks 11 to 16)
- Animations and responsive design
- Testing, debugging with DevTools, performance
- Architecture: project structure, MVVM, Clean Architecture
- Release: Android, iOS, web and desktop, CI/CD
Build: the expense tracker with Bloc, then your own app idea. Publish it.
Optional: games with Flame
Want to make games? Follow the Flame chapter, then build the five game projects. It uses everything you already know about Dart and Flutter.
Get job-ready
- Two or three finished, published projects on GitHub with good READMEs.
- Be able to explain one state management package in depth.
- Practise the Flutter interview questions.
- Keep the Flutter cheat sheet open while you work.
Frequently asked questions
How long does it take to become a Flutter developer?
With an hour or two a day, most people are job-ready in four to six months: about one month for Dart and Flutter basics, two months for state management, APIs and storage, and the rest for testing, architecture and building portfolio projects.
What should I learn first in Flutter?
Learn the Dart basics, then widgets and layout (Row, Column, Container, ListView), then StatefulWidget and setState. After that, navigation, forms and fetching data from an API.
Do Flutter jobs ask for Riverpod or Bloc?
Both are common. Learn one well (Riverpod is a good default) and be able to read the other. Knowing Provider and setState is expected in any case.
Should I learn Flame for games?
Only if you want to make games. Flame is not needed for normal apps, but it is a fun way to practise Dart and it uses the same Flutter knowledge.