Codelabs
- Good for beginners
- Next steps
- Designing a Flutter UI
- Using Flutter with ...
- Testing
- Writing platform-specific code
The Flutter codelabs provide a guided, hands-on coding experience. Some codelabs run in DartPad—no downloads required!
Good for beginners
#If you're new to Flutter, we recommend starting with one of the following codelabs:
Building your first Flutter app (workshop)
An instructor-led version of our very popular "Write your first Flutter app" codelab (listed below).Your first Flutter app
Create a simple app that automatically generates cool-sounding names, such as "newstay", "lightstream", "mainbrake", or "graypine". This app is responsive and runs on mobile, desktop, and web. (This also replaces the previous "write your first Flutter app" for mobile, part 1 and part 2 codelabs.)Write your first Flutter app on the web
Implement a simple web app in DartPad (no downloads required!) that displays a sign-in screen containing three text fields. As the user fills out the fields, a progress bar animates along the top of the sign-in area. This codelab is written specifically for the web, but if you have downloaded and configured Android and iOS tooling, the completed app works on Android and iOS devices, as well.
Next steps
#Records and Patterns in Dart 3
Discover Dart 3's new records and patterns features. Learn how you can use them in a Flutter app to help you write more readable and maintainable Dart code.Building scrolling experiences in Flutter (workshop)
Start with an app that performs simple, straightforward scrolling and enhance it to create fancy and custom scrolling effects by using slivers.Dart null safety in Action (workshop)
An instructor-led workshop introducing the features that enable Dart's null-safe type system.How to manage application states using inherited widgets (workshop)
Learn how to manage the state of your app's data by using theInheritedWidget
class, one of the low-level state management classes provided by Flutter.
Designing a Flutter UI
#Learn about Material Design and basic Flutter concepts, like layout and animations:
How to debug layout issues with the Flutter Inspector
Not an official codelab, but step-by-step instructions on how to debug common layout problems using the Flutter Inspector and Layout Explorer.Implicit animations
Use DartPad (no downloads required!) to learn how to use implicit animations to add motion and create visual effects for the widgets in your UI.Building Beautiful Transitions with Material Motion for Flutter
Learn how to use the Material animations package to add pre-built transitions to a Material app called Reply.Take your Flutter app from boring to beautiful
Learn how to use some of the features in Material 3 to make your app more beautiful and more responsive.MDC-101 Flutter: Material Components (MDC) Basics
Learn the basics of using Material Components by building a simple app with core components. The four MDC codelabs guide you through building an e-commerce app called Shrine. You'll start by building a login page using several of MDC Flutter's components.MDC-102 Flutter: Material Structure and Layout
Learn how to use Material for structure and layout in Flutter. Continue building the e-commerce app, introduced in MDC-101, by adding navigation, structure, and data.MDC-103 Flutter: Material Theming with Color, Shape, Elevation, and Type
Discover how Material Components for Flutter make it easy to differentiate your product, and express your brand through design. Continue building your e-commerce app by adding a home screen that displays products.MDC-104 Flutter: Material Advanced Components
Improve your design and learn to use our advanced component backdrop menu. Finish your e-commerce app by adding a backdrop with a menu that filters products by the selected category.Adaptive Apps in Flutter
Learn how to build a Flutter app that adapts to the platform that it's running on, be that Android, iOS, the web, Windows, macOS, or Linux.Building next generation UIs in Flutter
Learn how to build a Flutter app that uses the power offlutter_animate
, fragment shaders, and particle fields. You will craft a user interface that evokes those science fiction movies and TV shows we all love watching when we aren't coding.
Using Flutter with ...
#Learn how to use Flutter with other technologies.
Monetizing Flutter
#Adding AdMob Ads to a Flutter app
Learn how to add an AdMob banner, an interstitial ad, and a rewarded ad to an app called Awesome Drawing Quiz, a game that lets players guess the name of the drawing.Adding an AdMob banner and native inline ads to a Flutter app
Learn how to implement inline banner and native ads to a travel booking app that lists possible flight destinations.Adding in-app purchases to your Flutter app
Extend a simple gaming app that uses the Dash mascot as currency to offer three types of in-app purchases: consumable, non-consumable, and subscription.
Flutter and Firebase
#Add a user authentication flow to a Flutter app using FirebaseUI
Learn how to add Firebase authentication to a Flutter app with only a few lines of code.Get to know Firebase for Flutter (workshop)
An instructor-led version of our popular "Get to know Firebase for Flutter" codelab (listed below).Get to know Firebase for Flutter
Build an event RSVP and guestbook chat app on both Android and iOS using Flutter, authenticating users with Firebase Authentication, and sync data using Cloud Firestore.Local development for your Flutter apps using the Firebase Emulator Suite
Learn how to use the Firebase Emulator Suite when developing with Flutter. You will also learn to use the Auth and Firestore emulators.Send and receive notifications for a Flutter app using Firebase Cloud Messaging
Learn how to develop a multi-platform app with Flutter and Firebase Cloud Messaging, integrating FCM to send and receive messages on Android, iOS, and web.
Build games with Flutter
#Add sound and music to your Flutter game with SoLoud—NEW
The SoLoud package, a free and portable engine, delivers the low-latency and high-performance sound that's essential for many games. In this codelab, learn how to add SoLoud to your game.Build a 2D physics game with Flutter and Flame—NEW
This codelab guides you through crafting game mechanics in a Flutter and Flame game using a 2D physics simulation along the lines of Box2D, called Forge2D.Build a word puzzle with Flutter—NEW
This codelab focuses on building word puzzle games, and dives into using Flutter's background processing to generate expansive crossword-style grids of interlocking words.Introduction to Flame with Flutter
Build a Breakout clone using the Flame 2D game engine and embed it in a Flutter wrapper. You will use Flame's Effects to animate and remove components, along with thegoogle_fonts
andflutter_animate
packages, to make the whole game look well designed.
Flutter and TensorFlow
#Create a custom text-classification model with TensorFlow Lite Model Maker
Create a Flutter app to classify texts with TensorFlow
Learn how to run a text-classification inference from a Flutter app with TensorFlow Serving through REST and gRPC.Train a comment-spam detection model with TensorFlow Lite Model Maker
Learn how to install the TensorFlow Lite Model Maker with Colab, how to use a data loader, and how to build a model.
Flutter and other technologies
#Adding Google Maps to a Flutter app
Display a Google map in an app, retrieve data from a web service, and display the data as markers on the map.Adding WebView to your Flutter app
With the WebView Flutter plugin you can add a WebView widget to your Android or iOS Flutter app.Build voice bots for mobile with Dialogflow and Flutter (workshop)
An instructor-led version of the Dialogflow and Flutter codelab (listed below).Build voice bots for Android with Dialogflow and Flutter
Learn how to build a mobile FAQ bot that can answer most common questions about the tool Dialogflow. End users can interact with the text interface or stream a voice interaction via the built-in microphone of a mobile device.Using FFI in a Flutter plugin
Learn how to use Dart's FFI (foreign function interface) library, ffigen, allowing you to leverage existing native libraries that provide a C interface.Create haikus about Google products with the PaLM API and Flutter
Learn how to build an app that uses the PaLM API to generate haikus based on Google product names. The PaLM API gives you access to Google's state-of-the-art large language models.
Testing
#Learn how to test your Flutter application.
- How to test a Flutter app
Start with a simple app that manages state with the Provider package. Unit test the provider package. Write widget tests for two of the widgets. Use Flutter Driver to create an integration test.
Writing platform-specific code
#Learn how to write code that's targeted for specific platforms, like iOS, Android, desktop, or the web.
Write a Flutter desktop application
Build a Flutter desktop app (Windows, Linux, or macOS) that accesses GitHub APIs to retrieve your repositories, assigned issues, and pull requests. As part of this task, create and use plugins to interact with native APIs and desktop applications, and use code generation to build type-safe client libraries for GitHub's APIs.Adding a Home Screen widget to your Flutter app
Learn how to add a Home Screen widget to your Flutter app on iOS. This applies to your home screen, lock screen, or the today view.
Unless stated otherwise, the documentation on this site reflects the latest stable version of Flutter. Page last updated on 2024-10-04. View source or report an issue.