Learn Flutter App Development
A free, interactive Flutter course that starts from zero. Write real apps in Dart and run them on a phone screen beside the editor, with Hot reload, AI hints and a certificate per section.
1,000+ codders enrolled
219 lessons219 challenges297 quiz questions
- Beginner friendly
AI-assisted coding help
Hands-on interactive lessons
Audio narration on every lesson
Quizzes to test your knowledge
Free certificate of completion
Syllabus
Section 1
Your First App
Start sectionStartExpandCollapseYour first Flutter apps: what Flutter is, the widget tree, text and its style, colored boxes, padding, rows and columns, icons and images, and the Dart you need along the way. Ends with a business card app.Hello, Flutter
6 lessons68Styling Text
4 lessons45Dart Just in Time
4 lessons45Boxes
4 lessons44Rows and Columns
6 lessons68Icons and Images
5 lessons55Project: Business Card
Project3 lessons33Section 2
Making It Interactive
Start sectionStartExpandCollapseApps that answer back: buttons, functions and the Console, StatefulWidget and setState, const and final, decisions with if and booleans, text fields, switches, checkboxes and sliders, and the Dart behind them. Ends with a tip calculator app.Buttons
5 lessons57Functions
3 lessons35Widgets With State
6 lessons610const and final
2 lessons24Decisions
5 lessons58Text Fields
5 lessons57Switches and Sliders
3 lessons34Project: Tip Calculator
Project5 lessons56Section 3
Lists and Screens
Start sectionStartExpandCollapseApps with more than one screen: scrolling lists and list tiles, cards and grids, your own Dart classes for your data, moving between screens and passing data along, tabs, a drawer and swipe to delete. Ends with a recipe book app.Scrolling Lists
5 lessons58Lists From Data
3 lessons34Cards and Grids
3 lessons33Your Own Classes
6 lessons611More Than One Screen
5 lessons58Tabs, Drawers and Swipes
5 lessons58Project: Recipe Book
Project6 lessons67Section 4
Layout That Fits
Start sectionStartExpandCollapseScreens that fit any phone: sharing a row with Expanded, Flexible and Spacer, reading and fixing the overflow error, Wrap, Stack and Positioned, SafeArea, maximum widths, screen sizes and breakpoints, enums and switch, app themes and dark mode. Ends with a music player screen.Sharing a Row
4 lessons45The Overflow Error
5 lessons56Stacking Widgets
4 lessons45Sizes and Breakpoints
4 lessons44Enums and switch
3 lessons33Themes and Dark Mode
5 lessons56Project: Music Player
Project5 lessons55Section 5
State Management
Start sectionStartExpandCollapseShare data between widgets and screens: lifting state up with values and callbacks, the Dart that model classes need, Provider with a ChangeNotifier, Riverpod with ConsumerWidget, StateProvider and Notifier, and when to use which. Ends with a shopping cart shared by two screens.Lifting State Up
4 lessons48Dart for Models
4 lessons48Provider
7 lessons714Riverpod
6 lessons612Project: Shopping Cart
Project6 lessons68Section 6
Data and the Network
Start sectionStartExpandCollapseApps that wait for data: futures, async and await, loading spinners with FutureBuilder, errors with try and catch, JSON from a server turned into Dart classes, pull to refresh, and dates and prices with intl. Ends with a weather app.Futures
4 lessons46Loading Screens
5 lessons58When Calls Fail
5 lessons56JSON
5 lessons59Dates and Prices
3 lessons33Project: Weather App
Project5 lessons56Section 7
Projects
Start sectionStartExpandCollapseFour complete apps built step by step with everything you have learned: a to-do list, a quiz, a store with a cart, and a habit tracker with streaks and dark mode. Each one ends as a polished app you can show people.Project: To-do List
Project9 lessons910Project: Quiz
Project9 lessons99Project: Store
Project9 lessons99Project: Habit Tracker
Project9 lessons99
Learn by Doing
Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.
Build Your Streak
Stay consistent and watch your progress grow! Track your daily coding habit, protect your streak with freeze days, and earn rewards for showing up every day.
12 days streak
Return tomorrow to keep your streak!
January 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
21
22
23
24
25
26
27
28
29
30
Double or Nothing
Day 5 of 7
Streak Freeze
2 left
You're Not Alone
Compete on global leaderboards, invite friends to earn rewards, and celebrate each other's wins. Coding is better with friends!
Every way to learn
Read, listen, test yourself, ask the AI, or look up anything you've already covered. Every lesson meets you where you are.
A variable is a named container that stores a value you can reference later in your program.
In Python, you create one by writing the name, an equals sign, then the value you want to store.
The value can change over time. Reassigning the name simply points it to a new value.
Earn a Certificate
Earn certificates for every course you complete. Add them to your LinkedIn profile and resume to showcase your coding expertise to employers.
Why learn Flutter with Coddy
- Your code and your app sit side by side. Press Run and the app is compiled on Coddy's servers and opens on a phone screen next to the editor, run by the Flutter web engine. Hot reload shows your change and keeps the app's state, and the Console shows
print()output and errors. Press Check and the lesson is graded on what your app shows on screen. - No Flutter or Dart needed to start. The first section builds the widget tree from
Text, colored boxes, padding,RowandColumn, icons and images, and ends with a business card app. The second makes apps answer back: buttons,StatefulWidgetandsetState,constandfinal, text fields, switches and sliders, ending with a tip calculator. - Apps with more than one screen: scrolling lists, cards and grids, your own Dart classes, moving between screens, tabs, a drawer and swipe to delete. Then layouts that fit any phone:
Expanded,FlexibleandSpacer, the overflow error and how to fix it,Stack,SafeArea, breakpoints, themes and dark mode. - State and data the way real apps handle them: lifting state up,
Providerwith aChangeNotifier, Riverpod withConsumerWidgetandNotifier, and when to use which. Then futures,asyncandawait,FutureBuilder,tryandcatch, and JSON from a server turned into Dart classes, ending with a weather app.
Frequently asked questions about learning Flutter
Do I need to know Dart to learn Flutter?
if, classes, async and await, each one when an app first needs it. No programming experience is needed to start.