Marketplace flutter-dev
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/minimax-ai/flutter-dev" ~/.claude/skills/aiskillstore-marketplace-flutter-dev && rm -rf "$T"
manifest:
skills/minimax-ai/flutter-dev/SKILL.mdsource content
Flutter Development Guide
A practical guide for building cross-platform applications with Flutter 3 and Dart. Focuses on proven patterns, state management, and performance optimization.
Quick Reference
Widget Patterns
| Purpose | Component |
|---|---|
| State management (simple) | + |
| State management (complex) | / |
| Async data | / |
| Real-time streams | |
| Navigation | + |
| Responsive layout | + breakpoints |
| List display | |
| Complex scrolling | + Slivers |
| Hooks | + |
| Forms | + + validation |
Performance Patterns
| Purpose | Solution |
|---|---|
| Prevent rebuilds | constructors |
| Selective updates | |
| Isolate repaints | |
| Lazy lists | |
| Heavy computation | isolate |
| Image caching | |
Core Principles
Widget Optimization
- Use
constructors wherever possibleconst - Extract static widgets to separate const classes
- Use
for list items (ValueKey, ObjectKey)Key - Prefer
overConsumerWidget
for stateStatefulWidget
State Management
- Riverpod for dependency injection and simple state
- Bloc/Cubit for event-driven workflows and complex logic
- Never mutate state directly (create new instances)
- Use
to minimize rebuildsselect()
Layout
- 8pt spacing increments (8, 16, 24, 32, 48)
- Responsive breakpoints: mobile (<650), tablet (650-1100), desktop (>1100)
- Support all screen sizes with flexible layouts
- Follow Material 3 / Cupertino design guidelines
Performance
- Profile with DevTools before optimizing
- Target <16ms frame time for 60fps
- Use
for complex animationsRepaintBoundary - Offload heavy work with
compute()
Checklist
Widget Best Practices
-
constructors on all static widgetsconst - Proper
on list itemsKey -
for state-dependent widgetsConsumerWidget - No widget building inside
methodbuild() - Extract reusable widgets to separate files
State Management
- Immutable state objects
-
for granular rebuildsselect() - Proper provider scoping
- Dispose controllers and subscriptions
- Handle loading/error states
Navigation
- GoRouter with typed routes
- Auth guards via redirect
- Deep linking support
- State preservation across routes
Performance
- Profile mode testing (
)flutter run --profile - <16ms frame rendering time
- No unnecessary rebuilds (DevTools check)
- Images cached and resized
- Heavy computation in isolates
Testing
- Widget tests for UI components
- Unit tests for business logic
- Integration tests for user flows
- Bloc tests with
blocTest()
References
| Topic | Reference |
|---|---|
| Widget patterns, const optimization, responsive layout | Widget Patterns |
| Riverpod providers, notifiers, async state | Riverpod State Management |
| Bloc, Cubit, event-driven state | Bloc State Management |
| GoRouter setup, routes, deep linking | GoRouter Navigation |
| Feature-based structure, dependencies | Project Structure |
| Profiling, const optimization, DevTools | Performance Optimization |
| Widget tests, integration tests, mocking | Testing Strategies |
| iOS/Android/Web specific implementations | Platform Integration |
| Implicit/explicit animations, Hero, transitions | Animations |
| Dio, interceptors, error handling, caching | Networking |
| Form validation, FormField, input formatters | Forms |
| i18n, flutter_localizations, intl | Localization |
Flutter, Dart, Material Design, and Cupertino are trademarks of Google LLC and Apple Inc. respectively. Riverpod, Bloc, and GoRouter are open-source packages by their respective maintainers.