## Corrections Critiques ### Race Condition - Statuts de Messages - Fix : Les icônes de statut (✓, ✓✓, ✓✓ bleu) ne s'affichaient pas - Cause : WebSocket delivery confirmations arrivaient avant messages locaux - Solution : Pattern Optimistic UI dans chat_bloc.dart - Création message temporaire immédiate - Ajout à la liste AVANT requête HTTP - Remplacement par message serveur à la réponse - Fichier : lib/presentation/state_management/chat_bloc.dart ## Implémentation TODOs (13/21) ### Social (social_header_widget.dart) - ✅ Copier lien du post dans presse-papiers - ✅ Partage natif via Share.share() - ✅ Dialogue de signalement avec 5 raisons ### Partage (share_post_dialog.dart) - ✅ Interface sélection d'amis avec checkboxes - ✅ Partage externe via Share API ### Média (media_upload_service.dart) - ✅ Parsing JSON réponse backend - ✅ Méthode deleteMedia() pour suppression - ✅ Génération miniature vidéo ### Posts (create_post_dialog.dart, edit_post_dialog.dart) - ✅ Extraction URL depuis uploads - ✅ Documentation chargement médias ### Chat (conversations_screen.dart) - ✅ Navigation vers notifications - ✅ ConversationSearchDelegate pour recherche ## Nouveaux Fichiers ### Configuration - build-prod.ps1 : Script build production avec dart-define - lib/core/constants/env_config.dart : Gestion environnements ### Documentation - TODOS_IMPLEMENTED.md : Documentation complète TODOs ## Améliorations ### Architecture - Refactoring injection de dépendances - Amélioration routing et navigation - Optimisation providers (UserProvider, FriendsProvider) ### UI/UX - Amélioration thème et couleurs - Optimisation animations - Meilleure gestion erreurs ### Services - Configuration API avec env_config - Amélioration datasources (events, users) - Optimisation modèles de données
8.0 KiB
8.0 KiB
🚀 Commandes Utiles - AfterWork
Guide de référence rapide des commandes les plus utilisées pour le développement.
📦 Installation et Configuration
# Installer les dépendances
flutter pub get
# Mettre à jour les dépendances
flutter pub upgrade
# Vérifier l'installation Flutter
flutter doctor
# Vérifier les dépendances obsolètes
flutter pub outdated
🧹 Nettoyage
# Nettoyage Flutter complet
flutter clean
# Nettoyage avec script (Windows)
.\scripts\clean.ps1
# Nettoyage avec script (Linux/macOS)
./scripts/clean.sh
# Supprimer les fichiers de build manuellement
rm -rf build/ .dart_tool/ pubspec.lock
🔍 Analyse et Qualité
# Analyser le code (linting)
flutter analyze
# Formater tout le code
dart format .
# Formater un fichier spécifique
dart format lib/main.dart
# Vérifier le formatage sans modifier
dart format --output=none --set-exit-if-changed .
# Appliquer les corrections automatiques
dart fix --apply
# Voir les corrections disponibles
dart fix --dry-run
🧪 Tests
# Lancer tous les tests
flutter test
# Lancer les tests avec coverage
flutter test --coverage
# Lancer un test spécifique
flutter test test/domain/entities/user_test.dart
# Lancer les tests en mode watch
flutter test --watch
# Générer le rapport de coverage HTML
genhtml coverage/lcov.info -o coverage/html
🏃 Exécution
# Lancer en mode debug (défaut)
flutter run
# Lancer en mode release
flutter run --release
# Lancer en mode profile
flutter run --profile
# Lancer avec variables d'environnement
flutter run --dart-define=ENVIRONMENT=development
# Lancer sur un device spécifique
flutter run -d chrome
flutter run -d windows
flutter run -d <device-id>
# Lister les devices disponibles
flutter devices
# Hot reload (pendant l'exécution)
# Appuyer sur 'r' dans le terminal
# Hot restart (pendant l'exécution)
# Appuyer sur 'R' dans le terminal
🏗 Build
Android
# Build APK debug
flutter build apk --debug
# Build APK release
flutter build apk --release
# Build App Bundle (pour Play Store)
flutter build appbundle --release
# Build avec split par ABI (réduit la taille)
flutter build apk --split-per-abi
iOS
# Build iOS
flutter build ios --release
# Build IPA
flutter build ipa --release
# Ouvrir Xcode
open ios/Runner.xcworkspace
Web
# Build web
flutter build web --release
# Build web avec renderer HTML
flutter build web --web-renderer html
# Build web avec renderer CanvasKit
flutter build web --web-renderer canvaskit
# Servir localement
flutter run -d chrome
Windows
# Build Windows
flutter build windows --release
Linux
# Build Linux
flutter build linux --release
macOS
# Build macOS
flutter build macos --release
📱 Gestion des Devices
# Lister les devices
flutter devices
# Lister les emulators
flutter emulators
# Lancer un emulator
flutter emulators --launch <emulator-id>
# Créer un emulator Android
flutter emulators --create
# Informations sur les devices connectés
adb devices
🔧 Génération de Code
# Générer les fichiers (si build_runner est utilisé)
flutter pub run build_runner build
# Générer avec suppression des conflits
flutter pub run build_runner build --delete-conflicting-outputs
# Générer en mode watch
flutter pub run build_runner watch
# Générer les icônes d'application
flutter pub run flutter_launcher_icons
📊 Performance et Profiling
# Analyser la performance
flutter run --profile
# Ouvrir DevTools
flutter pub global activate devtools
flutter pub global run devtools
# Analyser la taille de l'app
flutter build apk --analyze-size
flutter build appbundle --analyze-size
# Mesurer le temps de build
flutter build apk --verbose
🐛 Debug
# Logs en temps réel
flutter logs
# Logs avec filtre
flutter logs --device-id <device-id>
# Nettoyer les logs
flutter logs --clear
# Inspecter l'app
flutter attach
# Screenshot
flutter screenshot
📦 Dépendances
# Ajouter une dépendance
flutter pub add <package_name>
# Ajouter une dev dependency
flutter pub add --dev <package_name>
# Supprimer une dépendance
flutter pub remove <package_name>
# Mettre à jour une dépendance spécifique
flutter pub upgrade <package_name>
# Voir l'arbre des dépendances
flutter pub deps
# Voir les dépendances obsolètes
flutter pub outdated
🔐 Sécurité et Secrets
# Lancer avec variables d'environnement
flutter run \
--dart-define=API_BASE_URL=https://api.example.com \
--dart-define=ENVIRONMENT=production
# Build avec secrets
flutter build apk \
--dart-define=API_BASE_URL=https://api.example.com \
--dart-define=GOOGLE_MAPS_API_KEY=your_key_here
🌐 Internationalisation
# Générer les fichiers de traduction
flutter gen-l10n
# Avec configuration personnalisée
flutter gen-l10n --arb-dir=lib/l10n --output-dir=lib/generated
📝 Git Workflow
# Créer une branche feature
git checkout -b feature/nom-feature
# Créer une branche bugfix
git checkout -b fix/nom-bug
# Commit avec message conventionnel
git commit -m "feat: ajouter nouvelle fonctionnalité"
git commit -m "fix: corriger bug dans login"
git commit -m "docs: mettre à jour README"
# Push vers origin
git push origin feature/nom-feature
# Mettre à jour depuis main
git pull origin main --rebase
🔄 Mise à Jour Flutter
# Mettre à jour Flutter
flutter upgrade
# Changer de canal
flutter channel stable
flutter channel beta
flutter channel dev
# Downgrade vers une version spécifique
flutter downgrade <version>
# Voir la version actuelle
flutter --version
🛠 Outils Utiles
# Vérifier la configuration
flutter config
# Activer/désactiver les plateformes
flutter config --enable-web
flutter config --enable-windows-desktop
flutter config --enable-linux-desktop
flutter config --enable-macos-desktop
# Nettoyer le cache
flutter pub cache clean
flutter pub cache repair
# Voir les informations système
flutter doctor -v
📱 Android Spécifique
# Lister les devices Android
adb devices
# Installer l'APK manuellement
adb install build/app/outputs/flutter-apk/app-release.apk
# Désinstaller l'app
adb uninstall com.example.afterwork
# Logs Android
adb logcat
# Nettoyer le build Android
cd android && ./gradlew clean && cd ..
🍎 iOS Spécifique
# Nettoyer le build iOS
cd ios && rm -rf Pods/ Podfile.lock && pod install && cd ..
# Mettre à jour les pods
cd ios && pod update && cd ..
# Ouvrir Xcode
open ios/Runner.xcworkspace
# Lister les simulateurs
xcrun simctl list devices
📊 Métriques et Reporting
# Analyser la taille de l'app
flutter build apk --analyze-size --target-platform android-arm64
# Générer un rapport de dépendances
flutter pub deps --style=compact > dependencies.txt
# Compter les lignes de code
find lib -name '*.dart' | xargs wc -l
🚀 Raccourcis Pratiques
# Alias utiles à ajouter dans votre .bashrc ou .zshrc
alias frun='flutter run'
alias fbuild='flutter build'
alias ftest='flutter test'
alias fclean='flutter clean && flutter pub get'
alias fanalyze='flutter analyze'
alias fformat='dart format .'
alias fpub='flutter pub get'
💡 Tips
Pendant le Développement
- Utilisez
rpour hot reload - Utilisez
Rpour hot restart - Utilisez
ppour afficher le widget tree - Utilisez
opour basculer iOS/Android - Utilisez
qpour quitter
Performance
- Toujours tester en mode
--profilepour les performances - Utiliser
constautant que possible - Éviter les rebuilds inutiles
Debug
- Utilisez
debugPrint()au lieu deprint() - Utilisez le logger pour les logs structurés
- Activez les DevTools pour le profiling
Guide des commandes Flutter - AfterWork
Pour plus d'informations : Documentation Flutter