Skip to main content

Flutter learning resources

A catalog of Flutter tutorials, sample code, workshops, and recipes.

Demo
Add-to-app
Recommended approaches for adding Flutter to existing apps.
Demo
Android splash screen
A Flutter sample app that exemplifies how to implement an animated splash screen for Android devices.
Demo
iOS app clip
A sample project demonstrating integration with iOS App Clip.
Demo
Swift platform view
A Flutter sample app that combines a native iOS UIViewController with a full-screen Flutter view.
Workshop
Your first Flutter app workshop
An instructor-led version of our very popular 'Write your first Flutter app' codelab.
Codelab
Your first Flutter app
Create a simple random-name generator app. This app is responsive and runs on mobile, desktop, and web.
Codelab
Records and Patterns in Dart
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.
Codelab
Animations in Flutter
Learn how to build animated effects in Flutter. You'll learn how to build implicit and explicit animations, and customize navigation transition animations the animations package and predictive back on Android.
Codelab
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.
Codelab
Flutter logo
How to debug layout issues with the Flutter Inspector
Step-by-step instructions on how to debug common layout problems using the Flutter Inspector and Layout Explorer.
Codelab
MDC-101 - Material Components (MDC) Basics
Learn the basics of using Material Components by building a simple app with core components.
Codelab
MDC-102 - 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.
Codelab
MDC-103 - 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.
Codelab
MDC-104 - Material Advanced Components
Improve your design and learn to use our advanced component backdrop menu.
Codelab
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.
Codelab
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.
Codelab
Add a user authentication flow using FirebaseUI
Learn how to add Firebase authentication to a Flutter app with only a few lines of code.
Codelab
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.
Codelab
Notifications with 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.
Codelab
Build a word puzzle with Flutter
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.
Codelab
Introduction to Flame with Flutter
Build a Breakout clone using the Flame 2D game engine and embed it in a Flutter wrapper.
Codelab
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.
Codelab
Adding WebView to your Flutter app
With the WebView Flutter plugin you can add a WebView widget to your Android or iOS Flutter app.
Codelab
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.
Quickstart
Dart logo
Command-line app
A command line app that parses command-line options and fetches from GitHub.
Quickstart
Dart logo
Extension methods
Demonstrates Dart's extensions method syntax.
Quickstart
Dart logo
FFI
A series of simple examples demonstrating how to call C libraries from Dart.
Quickstart
Dart logo
Isolates (in a CLI)
Command line applications that demonstrate how to work with Concurrency in Dart using isolates.
Quickstart
Dart logo
Native Dart app
A command line application that can be compiled to native code using `dart compile exe`.
Quickstart
Dart logo
Server side Dart
Examples of running Dart on the server.
Quickstart
Dart logo
Package constraint solver
Demonstrates best-practices for publishing packages on pub.dev.
Recipe
Flutter logo
Animate a page route transition
Transition between routes by animating the new route into view from the bottom of the screen.
Recipe
Flutter logo
Animate a widget using a physics simulation
Learn how to move a widget from a dragged point back to the center using a spring simulation.
Recipe
Flutter logo
Animate the properties of a container
Use AnimatedContainer to animate the size, background color, and border radius of a Container.
Recipe
Flutter logo
Fade a widget in and out
The AnimatedOpacity widget makes it easy to perform opacity animations.
Recipe
Flutter logo
Add a drawer to a screen
Use the Drawer widget in combination with a Scaffold to create a layout with a Material Design drawer.
Recipe
Flutter logo
Display a snackbar
Use the Snackbar widget to display messages to your users.
Recipe
Flutter logo
Export fonts from a package
Use a font across multiple apps.
Recipe
Flutter logo
Update the UI based on orientation
Build a list that displays two columns in portrait mode and three columns in landscape mode.
Recipe
Flutter logo
Use a custom font
Apply fonts to your entire app or individual widgets.
Recipe
Flutter logo
Use themes to share colors and font styles
To share styles across your app, use Themes.
Recipe
Flutter logo
Work with tabs
Working with tabs is a common pattern in mobile apps that follow the Material Design or Cupertino guidelines.
Recipe
Flutter logo
Create a download button
Build a download button that transitions through multiple visual states, based on the status of an app download.
Recipe
Flutter logo
Create a nested navigation flow
Create top level routes, and routes nested below specific widgets.
Recipe
Flutter logo
Create a scrolling parallax effect
Create the parallax effect by building a list of cards with images that 'move'.
Recipe
Flutter logo
Create a shimmer loading effect