# Flutter App

Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK...

- Repository: https://github.com/ccplugins/awesome-claude-code-plugins (991 stars)
- Category: AI and agents
- License: Apache-2.0
- Last updated: 2026-08-12
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add ccplugins/awesome-claude-code-plugins --skill flutter-app -g -a claude-code -y`
Codex: `npx skills add ccplugins/awesome-claude-code-plugins --skill flutter-app -g -a codex -y`
Cursor: `npx skills add ccplugins/awesome-claude-code-plugins --skill flutter-app -g -a cursor -y`
Gemini CLI: `npx skills add ccplugins/awesome-claude-code-plugins --skill flutter-app -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add ccplugins/awesome-claude-code-plugins`

## Description

Bootstrap a new Flutter mobile app with clean architecture, Riverpod, FVM-pinned SDK, current packages, and no deprecated APIs. Use when the user wants to start, scaffold, or set up a new Flutter app, a cross-platform mobile app, an Android or iOS app in Dart, or asks to "create a new flutter app". Handles BYOK LLM apps, backend-backed apps, Play Store release setup, and clean-architecture feature structure.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# flutter-app

Bootstrap a new Flutter app the way this owner builds them: FVM-pinned SDK, clean
architecture (feature-first), Riverpod for state, an Either/Failure error model,
current stable packages, and the house git and CI workflow with release-please
and Play Store delivery.

First read the shared rules (they override anything you remember):
`../shared/house-rules.md`, `../shared/no-ai-attribution.md`,
`../shared/git-and-ci.md`, `../shared/docs-and-context.md`,
`../shared/hardening.md`, and (for public repos) `../shared/open-source-docs.md`.

## Step 0. Get the brief, then ask the variant questions (hard stop)

This is a hard stop. Do not run any scaffolding command until the user has
answered.

First, get the project brief: one paragraph on what the app does, its main
features, target users, and any hard constraints. If the user has not given one,
ask for it. The brief drives naming, the feature list, and the data model.

Then ask the variant questions. If a choice has multiple options, ask; do not
assume. Ask in one batch, then proceed.

1. Repo visibility: private, open-source, or private-plus-open-source.
2. Backend: BYOK (each user supplies their own LLM key, no backend), a custom
   backend (Dio + JWT auth), or none yet. See `references/architecture.md`.
3. State codegen: Riverpod with codegen (`@riverpod` + build_runner) or plain
   Riverpod with hand-written providers. Default: codegen.
4. Local data: Drift, Isar, shared_preferences only, or none yet.
5. Auth: Google Sign-In, none, or backend-driven.
6. Release target: Play Store (default), App Store, or both.

If the user already answered some, do not re-ask.

## Step 1. Pin the SDK with FVM and verify versions

The rest: https://github.com/ccplugins/awesome-claude-code-plugins/blob/HEAD/plugins/app-starter/skills/flutter-app/SKILL.md
