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
This commit is contained in:
485
COMMANDS.md
Normal file
485
COMMANDS.md
Normal file
@@ -0,0 +1,485 @@
|
||||
# 🚀 Commandes Utiles - AfterWork
|
||||
|
||||
Guide de référence rapide des commandes les plus utilisées pour le développement.
|
||||
|
||||
---
|
||||
|
||||
## 📦 Installation et Configuration
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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é
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# Build iOS
|
||||
flutter build ios --release
|
||||
|
||||
# Build IPA
|
||||
flutter build ipa --release
|
||||
|
||||
# Ouvrir Xcode
|
||||
open ios/Runner.xcworkspace
|
||||
```
|
||||
|
||||
### Web
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# Build Windows
|
||||
flutter build windows --release
|
||||
```
|
||||
|
||||
### Linux
|
||||
|
||||
```bash
|
||||
# Build Linux
|
||||
flutter build linux --release
|
||||
```
|
||||
|
||||
### macOS
|
||||
|
||||
```bash
|
||||
# Build macOS
|
||||
flutter build macos --release
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📱 Gestion des Devices
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
**Guide des commandes Flutter - AfterWork**
|
||||
|
||||
Pour plus d'informations : [Documentation Flutter](https://flutter.dev/docs)
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user