Flutter Course: Build iOS and Android Mobile Apps
Mobile Apps with Flutter is an intermediate-level course of 5 lessons (about 1 h 30 min), with 15 exercises and 15 quiz questions. Prerequisites: Programming Basics and Algorithms. The course needs a full project environment, planned for a later phase of the platform.
- Mobile
- Intermediate
- 5 lessons
- 1 h 30 min
- 15 exercises
- Full project environment (phase 2)
The course in brief
This course teaches you how to build mobile apps for iOS and Android from a single codebase with Flutter. You will discover the Dart language and its null safety, compose interfaces with widgets, manage local and shared state, load data from an API, and then prepare a signed version for publication. Each lesson offers guided tasks with verifiable results, in DartPad or in a real Flutter project.
What you will be able to do
- Write modern Dart: types, null safety, immutable classes, collections and asynchronous code
- Compose screens with layout widgets and reusable widgets
- Manage state with setState, lifting state up and ChangeNotifier, and test it with flutter test
- Load JSON data from an API into typed objects and display loading, error and result states
- Produce signed release builds for Android and iOS and prepare them for publication
Syllabus: 5 lessons
- Declare typed variables with var, final and const and use null safety
- Write functions with named parameters and classes with constructors
- Work with lists and maps and write asynchronous code with Future, async and await
Variables and typesNull safetyFunctions and classesFuture, async and await
- 02
Widgets and Layout
- Create a Flutter project and use hot reload
- Compose an interface with widgets (MaterialApp, Scaffold, Text, Column, Row, Padding)
- Write reusable widgets (StatelessWidget) and display lists with ListView.builder
- 03
State and Interactions
- Manage local state with StatefulWidget and setState
- Lift state up and pass it through parameters and callback functions
- Share state between screens with ChangeNotifier and ListenableBuilder, and test it
StatefulWidget and setStateShared stateChangeNotifierFlutter tests
- 04
Networking and JSON Data
- Call a REST API with the http package and check the status code
- Convert JSON into typed Dart objects with fromJson
- Display loading, error and data with FutureBuilder without re-running the request on every rebuild
- 05
Preparing to Publish a Flutter App
- Configure the app's identity: identifier, name, icon, version and build number
- Produce signed release builds for Android (APK, App Bundle) and iOS
- Know the principles of testing, review and updates on app stores
Version and build numberSigningRelease buildsPublishing a Flutter app
Final project
Flutter Catalog App with a Cart
Build a shop app with Flutter: a catalog loaded from a JSON API (or a fake source) into typed objects, a loading and error screen with retry, search, a product page, a cart shared via a ChangeNotifier with a badge, unit and widget tests, and a signed Android release build ready to be distributed to testers.
Deliverables
- The Flutter project's source code (lib/, test/, pubspec.yaml)
- The models with fromJson and the API access repository
- At least four tests (cart logic and screens) that pass with flutter test
- A signed release APK and the signing configuration with no committed secret
- A short publication sheet: description, collected data, justified permissions
- A README explaining the architecture and state management
Assessment criteria
- Typed Dart code, with no unjustified ! and no analyzer warnings
- Small, reusable widgets, with const whenever possible
- State changed only by setState or a ChangeNotifier that notifies
- Requests not restarted on every rebuild, errors and statuses handled
- Relevant tests that pass
- Version, identifier and signing correctly configured
Frequently asked questions
Do I need to know Dart before starting?
No. The first lesson covers the essentials of Dart for Flutter. You do need to be comfortable with programming basics, though: variables, conditions, loops and functions.
Do I need a Mac to take the course?
Not to learn: DartPad, an Android emulator or an Android phone are enough. Building and signing an iOS version, however, requires a Mac with Xcode.
Flutter or React Native?
Both produce iOS and Android apps from a single codebase. React Native reuses React and JavaScript; Flutter uses Dart and draws its own widgets. If you already know React, React Native is more direct.
Does the course explain publishing to the app stores?
It covers the principles: identifier, version and build number, signing, release builds, permissions and review rules. Account procedures and store terms should be checked with Apple and Google.
This course, told for your job
Say what you want to be able to do: “Mobile Apps with Flutter” takes its place in your path, with examples from your field. The concepts stay those of the course.