Dart Tutorial

Learn Dart and Flutter: Free Roadmap from Beginner to Advanced

A clear, free roadmap to learn Dart and Flutter step by step: what to study each week, from Dart basics and OOP to Flutter widgets, state management, APIs and publishing.

This roadmap shows you what to learn, in what order, and how long each stage usually takes to go from your first line of Dart to a Flutter app in the Play Store and App Store. Every step links to free lessons on this site with easy examples you can run and edit in the browser.

You do not need any programming experience. If you already know another language, move faster through stages 1 and 2.

Stage 1: Dart basics (week 1 to 2)

Goal: write small programs that use variables, conditions, loops and functions.

  1. What is Dart? and install Dart (or skip installing and use the Dart online compiler)
  2. Your first Dart program and Dart syntax basics
  3. Variables, data types, strings and string methods
  4. Operators, if else, loops and switch
  5. Functions, parameters and arrow functions

Practice: solve the first 15 of the 30 Dart programming examples without looking at the answers.

Stage 2: Collections, null safety and OOP (week 3 to 5)

Goal: model real data with lists, maps and classes, and write code that never crashes on null.

  1. Lists, list methods, sets and maps
  2. where, map, reduce and fold
  3. Null safety and null-aware operators
  4. Classes and objects, constructors, inheritance, abstract classes and mixins
  5. Enums and generics

Practice: build the contact book and bank account projects from Dart practice projects.

Stage 3: Modern and asynchronous Dart (week 5 to 6)

Goal: understand the Dart 3 features and async code that every Flutter app uses.

  1. Records, patterns, switch expressions and sealed classes
  2. Exception handling
  3. Future, async and await and streams
  4. JSON and HTTP requests

Check yourself: try the Dart interview questions. If most answers feel familiar, you are ready for Flutter.

Stage 4: Flutter fundamentals (week 7 to 9)

Goal: build screens from widgets and make them respond to the user.

  1. What is Flutter?, install Flutter and your first Flutter app
  2. Widgets explained, StatelessWidget and StatefulWidget
  3. Layout: Row and Column, Stack, ListView and GridView
  4. Scaffold and AppBar, themes and dark mode
  5. TextField and forms with validation

Practice: run and change all 8 Flutter examples.

Stage 5: Real apps: navigation, state and data (week 10 to 13)

Goal: build multi-screen apps that load and save real data.

  1. Navigation and go_router
  2. State management: setState, Provider, Riverpod or Bloc. Read choosing a state management approach first.
  3. HTTP requests, JSON models and FutureBuilder
  4. Storage: shared_preferences, SQLite and Firebase

Practice: build a weather app or a notes app from Flutter project ideas.

Stage 6: Advanced Flutter and publishing (week 14 and after)

Goal: ship a polished, tested app to real users.

  1. Animations and responsive layouts
  2. Unit and widget testing and performance
  3. App architecture with MVVM and repositories
  4. Release on Android, iOS and the web

Check yourself: the Flutter interview questions.

Tips that make learning faster

  • Type the code yourself. Copy-pasting feels fast but teaches little. Every example on this site has a Run or Edit button, so change it and see what happens.
  • One small project per stage. Building something, however small, is where the ideas stick.
  • Keep the cheat sheets open: the Dart cheat sheet and the Flutter cheat sheet.
  • Read error messages slowly. Dart’s errors usually say exactly what is wrong and on which line.
  • Learn in public. Put your projects on GitHub. It helps you get feedback, and later, a job.

Frequently asked questions

How long does it take to learn Dart and Flutter?

With about an hour a day, most beginners learn the core of Dart in four to six weeks and can build simple Flutter apps one to two months after that. Developers who already know JavaScript, Java, Kotlin, Swift or C# are often productive in Flutter within a few weeks.

Do I need to learn Dart before Flutter?

Yes, but not all of it. Learn variables, functions, collections, classes, null safety and async/await first. That is enough to start Flutter, and you can come back to advanced Dart topics later.

Is Flutter good for getting a job in 2026?

Flutter is one of the most popular cross-platform frameworks and is used by startups and large companies for Android, iOS, web and desktop apps. Jobs exist in the USA, Canada, Europe, Australia, India, Nepal and remotely. A portfolio of two or three published apps matters more than certificates.

Can I learn Dart and Flutter for free?

Yes. Every lesson on dart-tutorial.dev is free with no sign-up, and the official Dart and Flutter tools are free and open source.

What computer do I need for Flutter?

Any recent Windows, macOS or Linux computer can build Android, web and desktop apps. Building iOS apps for the App Store requires a Mac. You can start learning with no installation at all by running the examples in the browser.