← スキル一覧に戻る

building-flutter-apps
by abhishekbrt
glow state
⭐ 0🍴 0📅 2026年1月11日
SKILL.md
name: building-flutter-apps description: Build production-ready Flutter apps for Android/iOS using feature-first architecture. Covers project setup, UI patterns, state management (Riverpod/BLoC), navigation (go_router), testing (TDD with mocktail), and deployment. Use when creating Flutter projects, implementing features, debugging Flutter issues, or making architectural decisions.
Building Flutter Apps
Quick Start
flutter create --org com.yourcompany --project-name my_app ./my_app
cd my_app && flutter run
Skill Guides
| Area | Guide | Use When |
|---|---|---|
| Architecture | architecture/SKILL.md | Project structure, DI, repository pattern |
| UI Building | ui/SKILL.md | Layouts, Material 3, responsive design |
| State Management | state-management/SKILL.md | Riverpod, BLoC, state patterns |
| Testing | testing/SKILL.md | TDD, unit/widget tests, mocking |
| Project Setup | project-setup.md | New projects, pubspec, flavors |
| Navigation | navigation.md | go_router, deep links, transitions |
| Animations | animations.md | Implicit, explicit, Hero animations |
| Performance | performance.md | Optimization, profiling, app size |
| Deployment | deployment.md | App store builds, CI/CD, signing |
| Platform Integration | platform-integration.md | Platform channels, permissions |
| Packages | packages.md | Essential packages, creating plugins |
Feature-First Project Structure
lib/
├── main.dart
├── app.dart # MaterialApp configuration
├── core/ # Shared across all features
│ ├── providers/ # Core Riverpod providers
│ │ ├── api_client_provider.dart
│ │ └── shared_preferences_provider.dart
│ ├── network/api_client.dart
│ ├── error/failures.dart
│ ├── theme/app_theme.dart
│ └── widgets/ # Truly reusable widgets only
├── features/
│ ├── auth/
│ │ ├── data/
│ │ │ ├── datasources/
│ │ │ ├── models/
│ │ │ ├── repositories/auth_repository_impl.dart
│ │ │ └── providers/auth_repository_provider.dart
│ │ ├── domain/
│ │ │ ├── entities/
│ │ │ └── repositories/auth_repository.dart # Interface
│ │ └── presentation/
│ │ ├── providers/auth_provider.dart
│ │ ├── screens/
│ │ └── widgets/
│ ├── home/
│ │ ├── data/
│ │ ├── domain/
│ │ └── presentation/
│ └── [other_features]/
└── config/
├── routes.dart
└── environment.dart
Decision Guides
What to Build?
| Task | Start Here |
|---|---|
| New project | project-setup.md → architecture/ |
| New feature | architecture/ → Write interface → TDD |
| UI screen | ui/ → state-management/ |
| Fix performance | performance.md |
| Release app | deployment.md |
State Management Choice
| Scenario | Use |
|---|---|
| Form input, toggle, local UI state | setState |
| Single value shared across widgets | ValueNotifier or StateProvider |
| Feature with loading/error states | AsyncNotifierProvider (Riverpod) |
| Mutable state with business logic | NotifierProvider (Riverpod) |
| Complex event flows, event tracking | BLoC (alternative) |
Essential Commands
flutter pub get # Install dependencies
flutter run # Debug mode
flutter test # Run tests
flutter build apk --release # Android release
flutter build ipa --release # iOS release
flutter clean && flutter pub get # Reset project
# Riverpod code generation
dart run build_runner build --delete-conflicting-outputs
dart run build_runner watch --delete-conflicting-outputs
TDD Workflow (from AGENTS.md)
1. Interface First → Define contract in domain/repositories/
2. RED Phase → Write failing test, implementation throws UnimplementedError
3. GREEN Phase → Write minimum code to pass
4. REFACTOR → Clean up, add edge cases
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です