💻 Développement

flutter-helper

Aide au développement Flutter/Dart avec bonnes pratiques et patterns.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- flutter-helper --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } flutter-helper -Launch"

🚀 Déjà installé ?

claude "/flutter-helper"

Ou tapez /flutter-helper dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

FlutterDartWidgetBLoCRiverpodProviderpub.devMaterialAppflutter build

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/dev-skills/flutter-helper ~/.claude/skills/

Source : dev-skills/flutter-helper

📖 Manuel

Flutter Helper

Workflow

  1. Structure du projet — Organiser le projet selon une approche feature-first (dossiers par fonctionnalité : auth/, profile/, home/) ou layer-first (lib/data/, lib/domain/, lib/presentation/). Configurer la modularisation via des packages Dart internes, le pubspec.yaml et les imports relatifs vs absolus (package imports).
  2. Widgets optimisés — Concevoir les widgets avec les bonnes pratiques : préférer StatelessWidget quand l'état est externe, utiliser const constructors pour éviter les rebuilds inutiles, favoriser la composition de petits widgets plutôt que l'héritage, et employer InheritedWidget ou des hooks pour le contexte partagé.
  3. State management — Choisir et implémenter la solution adaptée à la complexité : Provider (simple, recommandé pour petits projets), Riverpod (Provider 2.0, type-safe, testable, recommandé pour projets moyens à grands), BLoC/Cubit (flux unidirectionnel explicite, idéal pour logique métier complexe), GetX (tout-en-un, simple mais moins maintenable à grande échelle).
  4. Navigation — Implémenter la navigation moderne : GoRouter (routing déclaratif, deep linking, nested routes, guards d'authentification), auto_route (génération de code, routes typées), ou Navigator 2.0 natif pour les cas complexes. Configurer les deep links (scheme URI, Universal Links) et la gestion du back stack.
  5. Networking et data — Configurer la couche réseau avec Dio (interceptors, retry, logging) ou http basique, générer les modèles avec freezed (immutabilité, copyWith, pattern matching) et json_serializable (sérialisation automatique), et Retrofit pour les clients REST typés.
  6. Testing Flutter — Écrire des tests à tous les niveaux : unit tests (logique pure, BLoC/Cubit, use cases), widget tests (rendu des composants, interactions utilisateur, pump/pumpAndSettle), golden tests (comparaison visuelle pixel-perfect), integration tests (Patrol ou flutter_test sur device), et mocking avec mockito ou mocktail.
  7. Performance — Optimiser les performances : utiliser const où possible, éviter les rebuilds avec Consumer/Selector ciblés, implémenter le lazy loading (ListView.builder, SliverList), gérer le cache d'images (cached_network_image), déporter les traitements lourds dans des Isolates (compute()), et profiler avec Flutter DevTools (Widget Inspector, Performance overlay).
  8. Déploiement — Configurer les flavors (dev/staging/prod) via dart-define ou flutter_config, gérer le code signing (Keychain iOS, keystores Android), automatiser avec Fastlane (gym pour iOS, supply pour Android), configurer les métadonnées et captures d'écran pour le Play Store et l'App Store, et mettre en place le versioning automatique du pubspec.yaml.

Règles