Skip to content

☔ Focused initial get started flow around web hot reload #11911

@parlough

Description

@parlough

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?

Metadata

Metadata

Labels

a.get-startedRelates to the Getting Started section of docs.flutter.deve4-monthsEffort: 1+ monthsinfra.structureRelates to the tools that create docs.flutter.devp1-highMajor but not urgent concern: Resolve in months. Update each month.target.webTarget apps on the web platform

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions