Skip to content
FlutterLearn

Module 01 of 3

Beginner Flutter Tutorials

Start from zero. This module covers the Flutter toolchain, the Dart language features you actually use every day, the widget tree, layout, state with setState, navigation, scrolling lists and grids, assets and fonts, adding packages, and how to debug when something breaks. By the end you can build, run and troubleshoot a multi-screen app on your own device.

Lessons
10
Reading time
~107 min
Price
Free

Before you start

Anyone new to Flutter — including developers coming from web, native Android/iOS, or no mobile background at all.

  • Basic programming experience in any language (variables, functions, loops)
  • Comfort using a terminal for simple commands
  • A computer that can run Android Studio or Xcode

What you will be able to do

  • Set up the Flutter SDK and run apps on a simulator or physical device
  • Read and write idiomatic Dart, including null safety and async/await
  • Compose UI from widgets and reason about the widget tree
  • Build responsive layouts with Row, Column, Stack and Flex
  • Manage local state with setState and move between screens with Navigator
  • Render long lists and grids efficiently, and bundle images, fonts and assets
  • Add packages from pub.dev and debug errors with DevTools

Lessons in this module

Lesson 1 · 9 min

What Flutter Is and How to Set It Up

Understand what Flutter actually does under the hood, then install the SDK and run your first app on a simulator or real device.

Lesson 2 · 12 min

Dart Essentials You Actually Need

The subset of Dart that Flutter code is written in: null safety, classes, collections, futures and async/await — without the parts you can skip.

Lesson 3 · 10 min

Widgets and the Widget Tree

Everything in Flutter is a widget. Learn what widgets really are, how composition replaces inheritance, and how build methods work.

Lesson 5 · 11 min

State, setState and User Input

Handle taps, text input and switches, and understand exactly what setState does — and where state should live.

Lesson 6 · 10 min

Navigation Between Screens

Push and pop screens, pass data both ways, and set up named routes — plus when you should graduate to a router package.

Lesson 7 · 12 min

Lists, Grids and Scrolling

Render long lists efficiently with ListView.builder, lay out grids, add pull-to-refresh and swipe-to-delete, and meet slivers.

Lesson 8 · 10 min

Images, Assets, Icons and Fonts

Bundle images and fonts properly, load network images with loading and error states, and understand resolution-aware assets.

Lesson 9 · 9 min

Using Packages from pub.dev

Add dependencies, read version constraints, and judge whether a package is safe to depend on before you build your app on top of it.