Files
afterwork/COMMANDS.md
dahoud 92612abbd7 fix(chat): Correction race condition + Implémentation TODOs
## 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
2026-01-10 10:43:17 +00:00

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 r pour hot reload
  • Utilisez R pour hot restart
  • Utilisez p pour afficher le widget tree
  • Utilisez o pour basculer iOS/Android
  • Utilisez q pour quitter

Performance

  • Toujours tester en mode --profile pour les performances
  • Utiliser const autant que possible
  • Éviter les rebuilds inutiles

Debug

  • Utilisez debugPrint() au lieu de print()
  • 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