
Flutter
Ship Flutter apps with clean architecture, Riverpod or Bloc state management, and disciplined widget and error-handling patterns.
Overview
Flutter is an agent skill for the Build phase that guides Dart/Flutter mobile development with clean architecture, Riverpod or Bloc, and repository-based error handling.
Install
npx skills add https://github.com/mindrally/skills --skill flutterWhat is this skill?
- Clean architecture with feature-first folders and data/domain/presentation separation
- Riverpod guidance (@riverpod, AsyncNotifier/Notifier over StateProvider) and Bloc/Cubit patterns
- Repository pattern with GetIt DI and Dartz Either for typed failures
- Widget discipline: shallow trees, const constructors, SelectableText.rich for surfaced errors
- Freezed-backed immutable state classes for predictable UI updates
- Recommends functions shorter than 20 instructions
- Covers two state-management stacks: Riverpod and Bloc/Cubit
Adoption & trust: 542 installs on skills.sh; 133 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your Flutter codebase is becoming an unmaintainable nest of widgets and ad-hoc state without clear layers or failure handling.
Who is it for?
Solo builders shipping cross-platform mobile apps who want opinionated structure for Riverpod, Bloc, Freezed, and Dartz from day one.
Skip if: Teams needing only backend APIs, pure native UI without Flutter, or throwaway prototypes that intentionally skip architecture.
When should I use this skill?
Expert Flutter and Dart development with clean architecture, Riverpod or Bloc, repositories, and presentation-layer error handling.
What do I get? / Deliverables
You implement features with feature-first clean architecture, consistent providers or blocs, and testable repositories wired through GetIt.
- Feature modules with data/domain/presentation separation
- Providers or blocs with immutable Freezed state where applicable
- Repository and use-case layers wired through GetIt
Recommended Skills
Journey fit
How it compares
Opinionated mobile build playbook—not a design-system generator or App Store launch checklist.
Common Questions / FAQ
Who is flutter for?
Indie developers and small teams building Flutter mobile apps who want clean architecture and modern state management defaults for their coding agent.
When should I use flutter?
Use it during Build while creating screens, wiring Riverpod/Bloc, refactoring features into data-domain-presentation layers, or hardening error UX.
Is flutter safe to install?
Review the Security Audits panel on this catalog page; the skill is procedural guidance and does not inherently require elevated permissions beyond your normal dev environment.
SKILL.md
READMESKILL.md - Flutter
# Flutter You are an expert in Flutter and Dart development with deep knowledge of mobile app architecture and state management. ## Core Principles - Use PascalCase for classes and camelCase for variables, functions, and methods - Follow clean architecture principles with repository pattern - Write short functions with a single purpose (less than 20 instructions) - Strictly avoid deeply nested widget trees - Use const constructors wherever possible ## State Management ### Riverpod - Use @riverpod annotation for generating providers - Prefer AsyncNotifierProvider and NotifierProvider over StateProvider - Use Freezed for immutable state classes ### Bloc/Cubit - Use Cubit for managing simple state - Use Bloc for complex event-driven state management - Implement error handling properly in state classes ## Architecture ### Clean Architecture - Feature-first folder organization - Separate data/domain/presentation layers - Strictly adhere to Clean Architecture layers - Use Either<Failure, Success> from Dartz for functional error handling ### Dependencies - Use GetIt for dependency injection - Implement repository pattern for data access - Keep business logic in use cases ## Error Handling - Implement error handling in views using SelectableText.rich instead of SnackBars - Use proper error types for different failure scenarios - Handle async errors appropriately ## Firebase Integration - Firebase Authentication for user management - Firestore for data persistence - Firebase Storage for file handling - Implement proper error handling for Firebase operations ## Performance - Use const widgets to prevent unnecessary rebuilds - Implement lazy loading for lists - Optimize images and assets - Profile and optimize widget rebuilds ## Testing - Write unit tests for business logic - Widget tests for UI components - Integration tests for full app flows - Follow official Flutter testing documentation