# 🔧 Claude Code - Analyse et Correction Flutter ## 📋 Mission Tu es un expert Flutter/Dart chargé de nettoyer le code de l'application Geosector. Ta mission est d'analyser tous les fichiers Dart du projet et de corriger TOUTES les erreurs et avertissements détectés par `flutter analyze`. ## 🎯 Objectifs 1. **Exécuter l'analyse Flutter** sur l'ensemble du projet 2. **Corriger toutes les erreurs** (errors) en priorité 3. **Corriger tous les avertissements** (warnings) 4. **Corriger les informations** (info) si pertinent 5. **Documenter les changements** effectués ## 📝 Instructions détaillées ### Étape 1 : Analyse initiale ```bash flutter analyze ``` - Capturer le nombre total d'issues - Identifier les patterns d'erreurs récurrents - Prioriser les corrections (errors → warnings → info) ### Étape 2 : Corrections par catégorie #### 🔴 ERRORS (Priorité maximale) Corriger en priorité toutes les erreurs qui empêchent la compilation : - `undefined_named_parameter` - `undefined_method` - `undefined_getter` - `argument_type_not_assignable` - `return_of_invalid_type` - `creation_with_non_type` #### 🟠 WARNINGS (Priorité haute) Corriger les avertissements qui peuvent causer des bugs : - `must_be_immutable` - `unused_element` - `unused_element_parameter` - `unused_local_variable` - `invalid_use_of_protected_member` - `invalid_use_of_visible_for_testing_member` #### 🟡 INFO (Priorité moyenne) Corriger les problèmes de qualité de code : - `depend_on_referenced_packages` → Ajouter les dépendances manquantes dans pubspec.yaml - `deprecated_member_use` → Remplacer `withOpacity` par `withValues()` - `use_build_context_synchronously` → Ajouter `if (context.mounted)` - `prefer_const_constructors` - `prefer_const_literals_to_create_immutables` ### Étape 3 : Patterns de correction spécifiques #### Pour `deprecated_member_use` (withOpacity) ```dart // ❌ Ancien color: Colors.blue.withOpacity(0.5) // ✅ Nouveau color: Colors.blue.withValues(alpha: 127) // 0.5 * 255 = 127 ``` #### Pour `use_build_context_synchronously` ```dart // ❌ Ancien await someAsyncOperation(); Navigator.of(context).pop(); // ✅ Nouveau await someAsyncOperation(); if (context.mounted) { Navigator.of(context).pop(); } ``` #### Pour `must_be_immutable` avec HiveObject ```dart // Pour les modèles Hive, ajouter une annotation pour ignorer // ignore: must_be_immutable @HiveType(typeId: X) class MyModel extends HiveObject { // ... } ``` ### Étape 4 : Modules à traiter #### 🚫 Module Chat (À ignorer ou supprimer) Le dossier `lib/chat/` contient de nombreuses erreurs car il n'est pas utilisé. **Options** : 1. Supprimer complètement le dossier `lib/chat/` si non utilisé 2. OU corriger les dépendances manquantes (equatable dans pubspec.yaml) 3. OU exclure de l'analyse dans `analysis_options.yaml` #### ✅ Modules prioritaires Concentre-toi sur les modules actifs : - `lib/core/` - Services, repositories, models - `lib/presentation/` - UI widgets et pages - `lib/shared/` - Composants partagés ### Étape 5 : Vérification finale ```bash flutter analyze ``` - Vérifier qu'il n'y a plus d'erreurs - Documenter les warnings restants qui ne peuvent pas être corrigés - Tester que l'application compile et fonctionne ## 🛠️ Commandes utiles ```bash # Analyse complète flutter analyze # Analyse d'un fichier spécifique flutter analyze lib/presentation/widgets/dashboard_app_bar.dart # Format du code flutter format lib/ # Nettoyer et reconstruire flutter clean && flutter pub get # Générer les adapters Hive si nécessaire flutter packages pub run build_runner build --delete-conflicting-outputs ``` ## 📊 Rapport attendu À la fin, fournir un rapport avec : 1. **Nombre d'issues avant** : X errors, Y warnings, Z info 2. **Nombre d'issues après** : 0 errors, Y warnings, Z info 3. **Liste des fichiers modifiés** avec le type de correction 4. **Décisions prises** (ex: suppression du module chat, ajout de dépendances) 5. **Problèmes non résolus** et pourquoi ## ⚠️ Points d'attention 1. **Ne pas casser le code existant** - Tester après chaque série de corrections 2. **Préserver la logique métier** - Ne pas modifier le comportement de l'app 3. **Respecter l'architecture** - Maintenir les patterns existants (Repository, Singleton, ValueListenableBuilder) 4. **Documenter les suppressions** - Si du code est supprimé, expliquer pourquoi 5. **Gérer les dépendances** - Ajouter dans pubspec.yaml si nécessaire ## 🎯 Résultat attendu ```bash $ flutter analyze Analyzing app... No issues found! ``` ## 📝 Notes spécifiques au projet Geosector - **Architecture sans Provider** : Ne pas ajouter Provider - **Hive pour le stockage** : Les warnings `must_be_immutable` sur HiveObject sont normaux - **API First** : Maintenir le pattern de validation API avant sauvegarde locale - **LoggerService** : Utiliser LoggerService au lieu de debugPrint direct - **CurrentUserService/CurrentAmicaleService** : Services singleton à préserver --- **Commence par exécuter `flutter analyze` et montre-moi le résultat pour que nous puissions prioriser les corrections ensemble.**