flutter-development — Claude Code skill: Flutter and Dart
A skill for building Flutter and Dart mobile apps: widgets, state management with Provider or BLoC, navigation, and API integration.
npx skills add aj-geddes/useful-ai-prompts --skill flutter-development -a claude-codeWhat flutter-development does
The skill gives the agent a working frame for Flutter projects. Inside is guidance on widget composition, state management patterns (Provider and BLoC), navigation, and API integration, plus a set of rules: don't build whole screens inside build(), don't fire network calls from build(), use const constructors, dispose resources in the state lifecycle.
Three reference guides sit in references/: project structure and navigation, state management with Provider, and screens with Provider integration. The quick start shows a pubspec.yaml with provider, http, and go_router, and a main.dart sketch using MaterialApp.router. Full implementations live in the guides.
The skill targets iOS and Android, and you will have to check both. Testing across device sizes and accounting for platform differences are spelled out in the rules. On a different stack there is nothing here for you.
What it helps with
- lay out a Flutter project structure with navigation
- move state out of
setStateinto Provider or BLoC - wire up HTTP calls to an API without touching
build() - split a screen into widgets instead of one large
build() - set up routing with
go_router
Example prompts for the agent
- help me plan a Flutter app structure with go_router
- rewrite this screen so state goes through Provider
- check my
main.dartagainst the rules in the skill
How to install flutter-development
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flutter-development -a claude-code2Manually: put the files in place
~/.claude/skills/flutter-development/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/flutter-development/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flutter-development -a codex2Manually: put the files in place
.agents/skills/flutter-development/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flutter-development -a cursor2Manually: put the files in place
.cursor/skills/flutter-development/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts flutter-development2Manually: put the files in place
.github/skills/flutter-development/SKILL.md1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flutter-development -a gemini-cli2Platform CLI
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/flutter-developmentManually: put the files in place
.devin/skills/flutter-development/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flutter-development -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about flutter-development
How do I install flutter-development in Claude?
Run npx skills add aj-geddes/useful-ai-prompts --skill flutter-development -a claude-code. The skill lands in ~/.claude/skills/flutter-development/SKILL.md.
What does flutter-development do?
It hands the agent Flutter and Dart instructions: widgets, state management with Provider or BLoC, navigation, API integration, and code conventions.
What dependencies do the skill's examples need?
The quick start uses the provider, http, and go_router packages in pubspec.yaml. Detailed implementations are in three files under the references/ directory.
Source text
SKILL.md · MIT
---
name: flutter-development
description: >
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers
widgets, state management with Provider/BLoC, navigation, API integration, and
material design.
---
# Flutter Development
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Create high-performance, visually stunning mobile applications using Flutter with Dart language. Master widget composition, state management patterns, navigation, and API integration.
## When to Use
- Building iOS and Android apps with native performance
- Designing custom UIs with Flutter's widget system
- Implementing complex animations and visual effects
- Rapid app development with hot reload
- Creating consistent UX across platforms
## Quick Start
Minimal working example:
```dart
// pubspec.yaml
name: my_flutter_app
version: 1.0.0
dependencies:
flutter:
sdk: flutter
provider: ^6.0.0
http: ^1.1.0
go_router: ^12.0.0
// main.dart with GoRouter navigation
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp.router(
// ... (see reference guides for full implementation)
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [Project Structure & Navigation](references/project-structure-navigation.md) | Project Structure & Navigation |
| [State Management with Provider](references/state-management-with-provider.md) | State Management with Provider |
| [Screens with Provider Integration](references/screens-with-provider-integration.md) | Screens with Provider Integration |
## Best Practices
### ✅ DO
- Use widgets for every UI element
- Implement proper state management
- Use const constructors where possible
- Dispose resources in state lifecycle
- Test on multiple device sizes
- Use meaningful widget names
- Implement error handling
- Use responsive design patterns
- Test on both iOS and Android
- Document custom widgets
### ❌ DON'T
- Build entire screens in build() method
- Use setState for complex state logic
- Make network calls in build()
- Ignore platform differences
- Create overly nested widget trees
- Hardcode strings
- Ignore performance warnings
- Skip testing
- Forget to handle edge cases
- Deploy without thorough testing
© aj-geddes · MIT · aj-geddes/useful-ai-prompts