Expert in Flutter and Dart development with clean architecture and state management
Install
npx skills add https://github.com/mindrally/skills --skill flutterSKILL.md
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
Related skills
vercel-react-native-skillsvercel-labs224KReact Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.firebase-crashlyticsfirebase117KComprehensive guide for Firebase Crashlytics, including provisioning and SDK usage. Use this skill when the user needs help setting up Crashlytics, adding crash reporting, or using the Crashlytics SDK in their application.xcode-project-setupfirebase117KSafely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill whenever an iOS project needs dependencies installed (e.g. Firebase, Alamofire).animate-expoemilkowalski70KBuild animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web a