Open
Description
Objective
Help developers set up Flutter and quickly experience some of its excellent developer experience features.
Problems
- Following the current "Get started" flow requires developers to make multiple choices that are unnecessary at that stage or they might not understand.
- Each platform's setup instructions are quite verbose with lots of validation built in, resulting in a long setup experience.
- Not all of the current "Get started" flows can end in trying out important features like hot reload.
- The different docs to add a target platform require making confusing choices about what platforms you already have set up.
Goals
- Reduce the amount of steps developers follow to run their first Flutter app in the "Get started" flow.
- Don't force developers to choose a platform to develop for right away.
- Help developers quickly try out some of Flutter's developer experience features, at least including hot reload.
- Direct developers who successfully set up Flutter to next steps, including learning resources (FWE) and how to develop for other platforms besides web.
- Don't require developers to make choices or remember their setup in the "developing for a new platform" docs.
Non-goals
- Reduce the amount of dependencies needed to develop for any of Flutter's supported platforms.
- Create new tooling to help developers install necessary dependencies.
- Write significant new installation content. Most should be able to be reorganized and reused from current installation and platform support docs.
- Add significant new beginner learning content. That work will be completed separately as part of the FWE/GSE projects.
- Expanding docs to cover setup for other platforms.
Assumptions
- Hot reload on web will be stable.
- Most new developers don't mind the happy path's choice of relying on VS Code.
- Developers already have Chrome installed or will have no problem installing it.
Documentation plan
Get started overhaul
- (Must have)
/get-started
Title: Get started developing with Flutter
Content: Happy path of installing Flutter with VS Code plugin, running app on web, (maybe have) trying hot reload, (maybe have) trying DevTools/flutter panel. - (Could have)
/get-started/codelab
Title: Write your first Flutter app
Content: Existing, but update to highlight ability to easily develop on web. - (Could have)
/get-started/learn
Title: Learn Flutter development
Content: Index of options and resources to learn Flutter development after setup.
Install guides and references
- (Could have)
/install
Title: Install Flutter
Content: Index of various installation options. - (Must have)
/install/manual
Title: Install Flutter manually
Content: Installing Flutter manually with archive zip or git in terminal. - (Should have)
/install/vs-code
Title: Install Flutter using VS Code
Content: Shared instructions with getting started flow. - (Should have)
/install/troubleshooting
Title: Troubleshoot Flutter installation
Content: An index of known issues and their solutions during Flutter installation. - (Should have)
/install/upgrade
Title: Upgrade Flutter
Content: Mostly existing content relocated. - (Could have)
/install/uninstall
Title: Uninstall Flutter
Content: Mostly existing content relocated. - (Could have)
/install/system-requirements
Title: Development system requirements
Content: The latest known system requirements for development environments. - (Could have)
/install/add-to-path
Title: Add Flutter to your system path
Content: Instructions on how to add Flutter to your PATH.
Develop for new platform
- (Must have)
/platform-integration/ios/setup
Title: Set up iOS development - (Must have)
/platform-integration/android/setup
Title: Set up Android development - (Must have)
/platform-integration/web/setup
Title: Set up web development - (Must have)
/platform-integration/macos/setup
Title: Set up macOS development - (Must have)
/platform-integration/windows/setup
Title: Set up Windows development - (Must have)
/platform-integration/linux/setup
Title: Set up Linux development - (Could have)
/platform-integration/setup
Title: Set up development for a new platform
Content: Index for setting up your system to develop for a new platform. - (Could have)
/platform-integration/add-new-platform
Title: Best practices for bringing your app to a new platform
Testing and metrics
Setup time reduction:
- (?) User testing of time to running app before and after new docs.
Setup completion:
- Analytics of amount of developers continuing to the "Create your first Flutter app" codelab page.
- CLI analytics for hot reload usage on web.
Setup success:
- Analytics of developers visiting install troubleshooting page.
- Monitoring of Flutter Forum help category, FlutterDev
#install-and-setup
channel, and StackOverflow.
Desire to develop for other platform:
- Analytics of which platform's docs navigated to from "Next step" after set up.
Release criteria
- All "Must have" docs above written or with alternative.
- Hot reload support for web released.
- All existing install and get started links have reasonable redirect destinations.
Questions
- Should we include the first run and hot reload in the primary "Get started" flow or should we rely on the Write your first Flutter app codelab which already does and update that to mention web?
- Should the "Get started" page start with a call out to instead using DartPad and/or Firebase Studio to quickly try out Flutter in their browser?