Writing and teaching Flutter From the basics of Dart and Flutter to advanced topics with simple, but detailed examples.
The original Flutter tutorial.
Flutter by Example has been publishing tutorials since 2017, when Flutter was still in it's alpha stage. Last updated in Summer 2020.
Dart and Flutter for the people.
Real world examples and tutorials. And it'll always be free.
Join thousands of Flutter developers.
Sign up for infrequent updates about Flutter and Dart.
Table of Contents
Part 1
Dart
Getting Started with Dart
Dart Fundamentals
- Values and variables
- Comments
- const and final variables
- Arithmetic and Comparison Operators
- Assignment Operators
- Logical Operators
- Null Aware Operators
- Type Test Operators
- Bitwise and Shift Operators
- Control Flow: if, else, else if
- Switch statements and case
- Ternary Conditional operator
- Loops: for and while
- Anatomy of Dart Functions
- Arrow functions
- Function arguments: default, optional, named
- Lexical Scope
- Cascade notation
Object-Oriented Programming
Iterables, Iterators, and Collections
- What are collections (and iterables)?
- Looping: for-in and forEach
- Reading elements pt 1: first, last
- Adding elements: add and insert (all)
- Checking for elements: contains, indexOf, any, every
- Removing elements: remove, clear, removeWhere
- Filtering elements: where, takeWhile, and skipWhile
- Changing elements: map and expand
- Deriving values from elements: fold, reduce, join
- Type casting collections: cast, as, retype, toSet, toList
- Iterators: understanding and creating your own
- Iterable-like methods on maps (and putIfAbsent)
Part 2
Flutter
Getting started with Flutter
Widgets
Intro Flutter App
Custom Animation: Progress Indicator
State Management: Blocs without Libraries
State Management: Provider
- What is Provider?
- The most basic example using Provider
- ChangeNotifierProvider
- Rebuilding widgets with Consumer
- Finer build control with Selector
- Future Provider
- MultiProvider micro lesson
- Stream Provider
- Using context extensions for more control
- ProxyProvider
- Using .value constructors
- The final example (A shopping cart app)
- For the curious: How is provider implemented