Skip to content

A more complete app template for Flutter #76379

Description

@brianegan

Use case

Flutter has one starter app template: the Counter app. It gets the user going quickly, and teaches low-level basics in 66 lines of code. We don't, however, provide a template that would be closer to a complete app, with several widgets in separate files, app-wide state, navigation or state restoration.

This creates a large gap for novice users to leap over once they outgrow the one-file, one-widget, setState-only nature of Counter. And that leap lands them among a myriad of community solutions and opinions, most of which a novice user is not yet ready to review critically.

Proposal

The goal is to make it easier for developers to continue their learning journey beyond the Counter app. A developer using Android Studio, for example, should be able to click on an icon in the "New Flutter Project" screen that gives her a more complete project to work with.

This new template should co-exist with the original Counter app template. It is not a replacement.

Reqiurements

  • Simplicity. It is understood that the new template will be less straightforward than the existing Counter app template. But even the new template SHOULD NOT be overwhelming to new Flutter developers, and it MUST NOT be overwhelming to experienced Flutter developers.
  • Teachability. The new template SHOULD be written in a way that allows gradual learning.
  • Accessibility. The new template app MUST be accessible. Screen reader navigation SHOULD be comfortable.
  • Beauty. The template app SHOULD look beautiful to the extent allowed by other provisions.
  • State management. The state management approach of the new template MUST make it simple for the developer to add new features in any part of the app.
  • Performance. The new template MUST follow basic performance guidelines, like avoiding unnecessary rebuilds.
  • Targets. The new template MUST support the following targets: mobile, desktop and web.

Activity

  1. added
    in triagePresently being triaged by the triage team
    a: qualityA truly polished experience
    c: proposalA detailed proposal for a change to Flutter
    toolAffects the "flutter" command-line tool. See also t: labels.
    and removed
    in triagePresently being triaged by the triage team
    on Feb 19, 2021
  2. filiph commented on Feb 22, 2021

    @filiph
    Contributor

    Some more details are in the associated PR #76519 and a separate decision doc. Internally at Google, this is accessible under go/flutter-more-complete-template.

  3. rahulraj64 commented on Feb 24, 2021

    @rahulraj64

    @brianegan Pls add localization also to your points.

  4. added
    P1High-priority issues at the top of the work list
    on Mar 27, 2021
  5. Hixie commented on Mar 27, 2021

    @Hixie
    Contributor

    @goderbauer @filiph Since @brianegan ran out of time to work on this would one of you mind picking up the PR and landing it? It's almost done (#76519) but needs a little cleanup and merging.

  6. filiph commented on Mar 27, 2021

    @filiph
    Contributor

    I'm on it, yes. We have a meeting on Monday to finalize some PM-related decisions and then we can hopefully land this.

  7. github-actions commented on Jul 30, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  8. locked as resolved and limited conversation to collaborators on Jul 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work lista: qualityA truly polished experiencec: proposalA detailed proposal for a change to FluttertoolAffects the "flutter" command-line tool. See also t: labels.

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions