Home
Ian Hickson edited this page Feb 5, 2021
·
19 revisions
This wiki is primarily aimed at engineers building or making contributions to Flutter.
If you are new to Flutter, then you will find more general information on the Flutter project, including tutorials and samples, on our Web site at flutter.dev. For specific information about Flutter's APIs, consider our API reference which can be found at the api.flutter.dev.
If you want to know what we're likely to do in the future, our roadmap may be of interest.
If you intend to contribute to Flutter, welcome! You are encouraged to start with our contributor guide, which helps onboard new team members. It points to the most relevant pages on this wiki. You are also invited to join our Discord server.
Index of notable sections
- Breaking changes
- Dashboards
- Debugging a broken engine autoroll
- Deprecation
- Design documents
- Engineering Philosophy
- Issue prioritization
- Milestones
- Plugin compatibility policy
- Reviewing code
- RFC process
- Submitting code, process for
- Symbolicating stack traces
- Threading in the Engine
- When will my bug be fixed?
Pages 134
- Home
- Add Flutter to existing apps
- Adding a new Test Shard
- Adding Flutter to Android
- Android Platform Views
- Autorollers
- Bad Build Identification
- Bad Builds
- Binding to native code via FFI
- CanvasKit web support
- Chat
- CI Config Migration Guide
- Code generation in Flutter
- Codelabs
- Commits Between 1.2.1 and 1.5.4
- Comparing AOT Snapshot Sizes
- Compiling the engine
- Contributing to Plugins and Packages
- Contributor access
- Crashes
- Creating an iOS Bitcode enabled app
- Custom Flutter Engine Embedders
- Custom Flutter Engine Embedding in AOT Mode
- Dashboards
- Data driven Fixes
- Debugging issues on the Web
- Debugging the engine
- Deferred Components
- Desktop shells
- Developing with Flutter on Apple Silicon
- Engine Clang Tidy Linter
- Engine disk footprint
- Engine specific Service Protocol extensions
- Experimental web options
- Experimental: Add Flutter Activity
- Experimental: Add Flutter Fragment
- Experimental: Add Flutter Fragment ViewPager
- Experimental: Add Flutter View
- Experimental: Adding Flutter to Android
- Experimental: Create Flutter Plugin
- Experimental: Launch Flutter with non main entrypoint
- Experimental: Reuse FlutterEngine across screens
- Experimental: Use old plugins with new embedding
- Experimenting with null safety in Flutter
- Fast Start
- Flutter build release channels
- Flutter Cherrypick Process
- Flutter CLI crash reporting
- Flutter engine operation in AOT Mode
- Flutter Installation Bundles
- Flutter's modes
- Glossary
- Hotfixes to the Stable Channel
- How Flutter apps are compiled with Gradle for Android
- How to write a memory test for Flutter
- How to write a render speed test for Flutter
- Hybrid Composition
- Hybrid Composition iOS
- Infra Ticket Queue
- IntelliJ Flutter Setup Tips and Tricks
- Issue hygiene
- Issue triage reports
- JIT Release Modes
- Making animated GIFs of Flutter apps
- Manual Engine Roll with Breaking Commits
- Metal on iOS FAQ
- Multi device debugging in VS Code
- Obfuscating Dart Code
- Package migration to 1.0.0
- PID leak in iOS development workflow
- Plugin Tests
- Plugins and Packages repository structure
- postmortem template
- Postmortem: AndroidX plugin migration
- Postmortem: Beta 1 Release
- Postmortem: Build Breakage on 2016 11 08
- Postmortem: Widespread Gradle failures on Flutter v1.12.13 hotfix.5
- Postmortems
- Project teams
- PRs addressed between 1.5.4 and 1.7.8
- PRs merged between 1.7.8 and 1.9.1
- Recipe Branching for Releases
- Reduce Flutter engine size with MLGO
- Reduce shader compilation jank using SkSL warm up
- Reducing Test Flakiness
- Release Notes Changes in 1.2.1
- Release Notes Flutter 1.2.1
- Release Notes Flutter 1.5.4
- Release Notes Flutter 1.7.8
- Release Notes Flutter 1.9.1
- Release process
- Releasing a Plugin or Package
- Resolving common build failures
- Roadmap
- Rolling Dart
- Running and writing tests
- Running examples
- Running Flutter Driver tests with Web
- Setting up the Engine development environment
- Setting up the Framework development environment
- Setting up the Packages development environment
- Setting up the Plugins development environment
- State of Catalina Support
- Style guide for Flutter repo
- Supporting legacy platforms
- Test coverage for package:flutter
- Testing the engine
- The Engine architecture
- The flutter run variants
- The flutter tool
- The Framework architecture
- Tree hygiene
- Triage
- Understanding a LUCI build failure
- Unexpected Plugins and Packages failures
- Updating Material Design Fonts & Icons
- Upgrading Engine's Android API version
- Upgrading Flutter added to existing iOS Xcode project
- Upgrading Flutter projects from using PlatformMessages to using channels
- Upgrading Flutter projects to build with gradle
- Upgrading Flutter projects to Gradle 4.1 and Android Studio Gradle plugin 3.0.1
- Upgrading from package:flutter_web to the Flutter SDK
- Upgrading pre 1.12 Android projects
- Using custom embedders with the Flutter CLI
- Using Sanitizers with the Flutter Engine
- Using the Dart analyzer
- Values
- Waiting for tree to go green bot
- What should I work on?
- Where's my Commit?
- Why we have a separate engine repo
- Workarounds for common issues
- Writing a golden file test for package:flutter
- Writing Effective Tests
Flutter Wiki
- Home of the Wiki
- Roadmap
- API Reference (stable)
- API Reference (master)
- Glossary
- Contributor Guide
- Chat on Discord
- Code of Conduct
- Issue triage reports
Process
- Our Values
- Tree hygiene
- Issue hygiene and Triage
- Style guide for Flutter repo
- Project teams
- Contributor access
- What should I work on?
- Running and writing tests
- Release process
- Rolling Dart
- Manual Engine Roll with Breaking Commits
- Updating Material Design Fonts & Icons
- Postmortems
Framework repo
- Setting up the Framework development environment
- The Framework architecture
- The flutter tool
- API Docs code block generation
- Running examples
- Using the Dart analyzer
- The flutter run variants
- Test coverage for package:flutter
- Writing a golden-file test for package:flutter
Engine repo
- Setting up the Engine development environment
- Compiling the engine
- Debugging the engine
- Using Sanitizers with the Flutter Engine
- Testing the engine
- The Engine architecture
- Flutter's modes
- Engine disk footprint
- Comparing AOT Snapshot Sizes
- Custom Flutter engine embedders
- Custom Flutter Engine Embedding in AOT Mode
- Flutter engine operation in AOT Mode
- Engine-specific Service Protocol extensions
- Crashes
- Supporting legacy platforms
- Metal on iOS FAQ
- Engine Clang Tidy Linter
- Why we have a separate engine repo
- Reduce Flutter engine size with MLGO
Android
Plugins and packages repos
- Setting up the Plugins development environment
- Setting up the Packages development environment
- Plugins and Packages repository structure
- Plugin Tests
- Contributing to Plugins and Packages
- Releasing a Plugin or Package
- https://github.com/flutter/flutter/wiki/Unexpected-Plugins-and-Packages-failures
Infrastructure
- Dashboards
- Infra Ticket Queue
- Autorollers
- Flutter's Build Infrastructure
- Flutter Installation Bundles
Release Information
Experimental features
- Android Fast Start
- Apple Silicon support
- CanvasKit web support
- Desktop shells
- Deferred Components
- JIT release builds
- Making animated GIFs of Flutter apps
- Multi-device debugging in VS Code
- Null safety package migration status
- Running Flutter Driver tests with Web
- Data-driven Fixes
- Flutter CLI custom embedder support