Welcome to
Line-of-Business Mobile Apps with Flutter and Dart
Build cross-platform iOS and Android apps faster than you thought possible
Course Syllabus and Content
Flutter is a popular cross-platform development framework. It's packed with off-the-shelf features and focused on developer ergonomics, which means you can build faster and deploy to more platforms with fewer dependencies. Some parts of the framework will catch you by surprise, though, especially if you're used to developing for the web or writing native apps. This course will walk you through the creation of a Flutter app from setup to final package and help you develop a mental model that will carry you through the most common problems Flutter devs encounter.
By the end of these 10 modules you'll have built:
- A Flutter seed project that can manage state, swap out color palettes, and handle deep links
- An accessible, error-resistant profile page that fetches data from a web API
- A responsive data table and data-driven visualizations
- A complete app ready to deploy to iPhone and Android
This course includes sample code, explained step-by-step, that you can reuse for any Flutter app you build.
It's taught by Isaac Lyman, author of Your First Year in Code and Top 10 Author on The DEV Community.
Introduction
1 Lesson
About this course
Introduction to the course, prerequisites, and goals
Getting Started
8 Lessons
Setting up your environment and packaging apps
Introduction to this module
Overview of the technology used in this course
Everything you need to start building Flutter apps
`flutter create` and the Flutter project structure
How to build your app for emulators and physical devices
Integrating external packages and libraries
Configuring your app for distribution
Getting your app ready to ship
Creating A Seed App
7 Lessons
Learn the basics you need to build any kind of app
Introduction to this module
A 5-minute introduction to the Dart language
Widgets and the widget hierarchy
Managing application state
Colors, fonts, styles, and Dark Mode
Pages, routes, and deep links
The base widget of your UI
The Profile Page
10 Lessons
The most common widgets and layouts
Introduction to this module
Text, app bar actions, and widgets that wrap every page
Plain Old Dart Objects
Futures and widget state initialization
Column, Row, Padding, spacing, and alignment
Table layouts, expansion panels, and rich text
ListView, SingleChildScrollView, and Scrollbar
How to think about layout, infinite constraints, and unbounded size
TextButton, OutlinedButton, FilledButton, ElevatedButton, and button styles
Accessibility
4 Lessons
Making sure your app works with a screen reader
Introduction to this module
Testing accessibility on iOS Simulator
Testing accessibility on an Android emulator
Tooltip and Semantics widgets
Storage and HTTP
5 Lessons
Persisting data locally and over the web
Introduction to this module
Offline storage for your apps
Communicating with a web API
Security, cookies, and overlay modals
State management with Provider and Consumer
Tables and Charts
3 Lessons
Building data visualizations that impress
Introduction to this module
Building and sorting a DataTable with DataTableSource
Using fl_chart for responsive visualizations
Animations
4 Lessons
Off-the-shelf transitions, custom drawings, and fine-tuned animations
Introduction to this module
Animated transitions and styles
Line-drawn widgets with CustomPainter
Tweens, tickers, and chained animations
Testing
4 Lessons
Unit tests, widget tests, and end-to-end tests
Introduction to this module
flutter_test and the Flutter unit testing API
Testing UI interactions on individual widgets
Testing your entire app with automated interactions