Skip to main content
Flutter
Docs
Guides
Learn
AI
Reference
search
routine
light_mode
Light
dark_mode
Dark
night_sight_auto
Automatic
apps
Flutter
Flutter
Docs
Flutter
API
Flutter
Blog
Dart
DartPad
pub.dev
Get started
menu
close
asterisk
Guides
play_lesson
Learn
auto_awesome
AI
api
Reference
Get started
Quick start
Custom setup
Learn Flutter
User interface
palette
Introduction
view_module
Widget catalog
expand_more
Overview
Design systems
expand_more
Cupertino
Material components
Base widgets
expand_more
Accessibility
Animation
Assets
Async
Basics
Input
Interaction
Layout
Painting
Scrolling
Styling
Text
view_quilt
Layout
expand_more
Introduction
Build a layout
Lists & grids
expand_more
Create and use lists
Create a horizontal list
Create a grid view
Create lists with different types of items
Create lists with spaced items
Work with long lists
Scrolling
expand_more
Overview
Use slivers to achieve fancy scrolling
Place a floating app bar above a list
Create a scrolling parallax effect
devices
Adaptive & responsive design
expand_more
Overview
General approach
SafeArea & MediaQuery
Large screens & foldables
User input & accessibility
Capabilities & policies
Automatic platform adaptations
Best practices
Additional resources
palette
Design & theming
expand_more
Share styles with themes
Material design
Migrate to Material 3
Text
expand_more
Fonts & typography
Use a custom font
Export fonts from a package
Google Fonts package
open_in_new
Custom graphics
expand_more
Use custom fragment shaders
touch_app
Interactivity
expand_more
Add interactivity to your app
Gestures
expand_more
Introduction
Handle taps
Drag an object outside an app
Drag a UI element within an app
Add Material touch ripples
Implement swipe to dismiss
Input & forms
expand_more
Create and style a text field
Retrieve the value of a text field
Handle changes to a text field
Manage focus in text fields
Build a form with validation
Display a snackbar
Implement actions & shortcuts
Manage keyboard focus
photo_library
Assets & media
expand_more
Add assets and images
Display images from the internet
Fade in images with a placeholder
Play and pause a video
Transform assets at build time
alt_route
Navigation & routing
expand_more
Overview
Add tabs to your app
Navigate to a new screen and back
Send data to a new screen
Return data from a screen
Add a drawer to a screen
Display a Cupertino sheet
Set up deep linking
Set up app links for Android
Set up universal links for iOS
Configure web URL strategies
animation
Animations & transitions
expand_more
Introduction
Tutorial
Implicit animations
Animate the properties of a container
Fade a widget in and out
Hero animations
Animate a page route transition
Animate using a physics simulation
Staggered animations
Create a staggered menu animation
API overview
accessibility
Accessibility
expand_more
Introduction
UI design & styling
Assistive technologies
Accessibility testing
Web accessibility
translate
Internationalization
Beyond UI
storage
Data & backend
expand_more
State management
expand_more
Introduction
Think declaratively
Ephemeral vs app state
Simple app state management
Options
Networking & http
expand_more
Overview
Fetch data from the internet
Make authenticated requests
Send data to the internet
Update data over the internet
Delete data on the internet
Communicate with WebSockets
Serialization
expand_more
JSON serialization
Parse JSON in the background
Persistence
expand_more
Store key-value data on disk
Read and write files
Persist data with SQLite
Firebase
expand_more
Overview
Add Firebase to your Flutter app
open_in_new
Google APIs
account_tree
App architecture
expand_more
Introduction
Architecture concepts
Guide to app architecture
Architecture case study
expand_more
Overview
UI layer
Data layer
Dependency injection
Testing each layer
Recommendations
Design patterns
integration_instructions
Platform integration
expand_more
Supported platforms
Build desktop apps with Flutter
Write platform-specific code
Bind to native code
Android
expand_more
Set up Android development
Add a splash screen
Add predictive back
Host a native Android view
Calling JetPack APIs
Launch a Jetpack Compose activity
Restore state on Android
Target ChromeOS with Android
Protect your app's sensitive content
Request local network permissions
iOS
expand_more
Set up iOS development
Leverage Apple's system libraries
Add a launch screen
Add iOS App Clip support
Add iOS app extensions
Host a native iOS view
Enable debugging on iOS
Restore state on iOS
Linux
expand_more
Set up Linux development
Build a Linux app
macOS
expand_more
Set up macOS development
Build a macOS app
Host a native macOS view
Web
expand_more
Web support in Flutter
Set up web development
Set up a configuration file
Build a web app
Compile to WebAssembly
Customize app initialization
Add Flutter to any web app
Web content in Flutter
Display images on the web
Web FAQ
Windows
expand_more
Set up Windows development
Build a Windows app
extension
Packages & plugins
expand_more
Use packages & plugins
Package dependency management
Develop packages & plugins