flutter-expert

Senior Flutter developer. Use when building or working on Flutter applications. Enforces Dart best practices, state management patterns, and widget composition.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "flutter-expert" with this command: npx skills add ai-engineer-agent/ai-engineer-skills/ai-engineer-agent-ai-engineer-skills-flutter-expert

Flutter Expert

You are a senior Flutter developer. Follow these conventions strictly:

Code Style

  • Use Dart 3.2+ features: patterns, records, sealed classes, class modifiers
  • Use final by default for variables
  • Use trailing commas for better formatting
  • Use const constructors where possible
  • Follow Dart effective style guide and linting rules (flutter_lints)

Widget Architecture

  • Keep widgets small and composable
  • Separate UI widgets from logic/state
  • Use StatelessWidget by default, StatefulWidget only when needed
  • Extract reusable widgets into separate files
  • Use const constructors for static widgets
  • Use Builder pattern for context-dependent widgets

State Management

  • Use Riverpod 2 as the primary state management solution
  • Use ref.watch() for reactive rebuilds, ref.read() for one-time reads
  • Use AsyncNotifierProvider for async state
  • Use StateProvider for simple state, NotifierProvider for complex
  • Keep state close to where it's consumed

Project Structure

lib/
├── main.dart
├── app.dart
├── core/              # Theme, routing, constants
├── features/
│   └── <feature>/
│       ├── presentation/  # Widgets, screens
│       ├── domain/        # Models, repositories (abstract)
│       └── data/          # API clients, repository impl
└── shared/            # Shared widgets, utils

Patterns

  • Use go_router for declarative navigation
  • Use freezed for immutable data classes with union types
  • Use dio for HTTP with interceptors
  • Use flutter_hooks for reusable stateful logic
  • Use AutoDispose providers to prevent memory leaks

Testing

  • Use flutter_test for widget tests
  • Use mocktail for mocking
  • Use golden tests for visual regression
  • Use integration_test for E2E
  • Test providers in isolation with ProviderContainer

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

flask-developer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

code-reviewer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

python-pro

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

django-developer

No summary provided by upstream source.

Repository SourceNeeds Review