- Ajout du service PasswordSecurityService conforme NIST SP 800-63B - Vérification des mots de passe contre la base Have I Been Pwned - Validation : minimum 8 caractères, maximum 64 caractères - Pas d'exigences de composition obligatoires (conforme NIST) - Intégration dans LoginController et UserController - Génération de mots de passe sécurisés non compromis 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
295 lines
5.8 KiB
Markdown
295 lines
5.8 KiB
Markdown
# 📱 Guide de Test Mobile - Geosector App
|
||
|
||
## 🚀 Configuration Rapide
|
||
|
||
### 1️⃣ Préparation du Mobile Android
|
||
|
||
#### Activer le Mode Développeur
|
||
```
|
||
Paramètres → À propos du téléphone → Tapoter 7 fois sur "Numéro de build"
|
||
```
|
||
|
||
#### Activer les Options de Développement
|
||
```
|
||
Paramètres → Options pour les développeurs → Activer :
|
||
✅ Options pour les développeurs
|
||
✅ Débogage USB
|
||
✅ Débogage sans fil (pour WiFi)
|
||
```
|
||
|
||
---
|
||
|
||
## 🔌 Test via USB
|
||
|
||
### Connexion USB
|
||
1. Brancher le téléphone en USB-C
|
||
2. Accepter l'autorisation de débogage sur le téléphone
|
||
|
||
### Commandes Terminal
|
||
```bash
|
||
# Vérifier la connexion
|
||
adb devices
|
||
flutter devices
|
||
|
||
# Lancer l'app (mode debug avec hot reload)
|
||
flutter run
|
||
|
||
# Lancer l'app sur un appareil spécifique
|
||
flutter run -d [DEVICE_ID]
|
||
```
|
||
|
||
---
|
||
|
||
## 📶 Test via WiFi (Sans Fil)
|
||
|
||
### Configuration sur le Mobile
|
||
1. **Activer le Débogage sans fil** dans Options pour les développeurs
|
||
2. **Entrer dans "Débogage sans fil"** et noter :
|
||
- Nom de l'appareil (ex: Pi25)
|
||
- Adresse IP et port (ex: 192.168.1.103:33503)
|
||
|
||
### Première Connexion (avec code d'association)
|
||
```bash
|
||
# Si première connexion, associer avec code
|
||
# Sur mobile : "Associer l'appareil avec un code d'association"
|
||
adb pair [IP:PORT_ASSOCIATION] [CODE_6_CHIFFRES]
|
||
# Exemple : adb pair 192.168.1.103:37953 123456
|
||
```
|
||
|
||
### Connexion Standard
|
||
```bash
|
||
# Connecter via WiFi
|
||
adb connect [IP:PORT]
|
||
# Exemple : adb connect 192.168.1.103:33503
|
||
|
||
# Vérifier la connexion
|
||
adb devices
|
||
flutter devices
|
||
|
||
# Lancer l'app
|
||
flutter run -d [IP:PORT]
|
||
# Exemple : flutter run -d 192.168.1.103:33503
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 Modes de Compilation
|
||
|
||
### Mode Debug (Développement)
|
||
```bash
|
||
# Avec hot reload, logs complets, banner DEBUG
|
||
flutter run
|
||
flutter run -d [DEVICE_ID]
|
||
```
|
||
|
||
**Raccourcis pendant l'exécution :**
|
||
- `r` : Hot reload (rechargement rapide)
|
||
- `R` : Hot restart (redémarrage complet)
|
||
- `p` : Afficher le widget tree
|
||
- `o` : Basculer Android/iOS preview
|
||
- `q` : Quitter
|
||
|
||
### Mode Release (Performance)
|
||
```bash
|
||
# Optimisé, rapide, sans debug
|
||
flutter run --release
|
||
flutter run -d [DEVICE_ID] --release
|
||
```
|
||
|
||
### Mode Profile (Analyse)
|
||
```bash
|
||
# Pour profiler les performances
|
||
flutter run --profile
|
||
flutter run -d [DEVICE_ID] --profile
|
||
```
|
||
|
||
---
|
||
|
||
## 📦 Build et Installation
|
||
|
||
### Créer l'APK
|
||
```bash
|
||
# APK standard
|
||
flutter build apk
|
||
|
||
# APK optimisé pour release
|
||
flutter build apk --release
|
||
|
||
# APK avec obfuscation
|
||
flutter build apk --release --obfuscate --split-debug-info=debug_info
|
||
|
||
# APK split par architecture (plus petit)
|
||
flutter build apk --split-per-abi
|
||
```
|
||
|
||
### Installer l'APK
|
||
```bash
|
||
# Installer sur appareil connecté
|
||
flutter install
|
||
flutter install -d [DEVICE_ID]
|
||
|
||
# Installer un APK spécifique
|
||
adb install build/app/outputs/flutter-apk/app-release.apk
|
||
```
|
||
|
||
### Bundle pour Play Store
|
||
```bash
|
||
flutter build appbundle --release
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 Commandes Utiles
|
||
|
||
### Gestion des Appareils
|
||
```bash
|
||
# Lister tous les appareils
|
||
flutter devices
|
||
|
||
# Infos détaillées ADB
|
||
adb devices -l
|
||
|
||
# Déconnecter un appareil WiFi
|
||
adb disconnect [IP:PORT]
|
||
|
||
# Redémarrer ADB
|
||
adb kill-server
|
||
adb start-server
|
||
```
|
||
|
||
### Nettoyage et Réparation
|
||
```bash
|
||
# Nettoyer le projet
|
||
flutter clean
|
||
|
||
# Réinstaller les dépendances
|
||
flutter pub get
|
||
|
||
# Régénérer les fichiers
|
||
flutter pub run build_runner build --delete-conflicting-outputs
|
||
|
||
# Vérifier l'installation Flutter
|
||
flutter doctor
|
||
```
|
||
|
||
### Logs et Débogage
|
||
```bash
|
||
# Voir les logs du téléphone
|
||
adb logcat
|
||
|
||
# Logs Flutter uniquement
|
||
flutter logs
|
||
|
||
# Capturer une capture d'écran
|
||
adb shell screencap -p /sdcard/screenshot.png
|
||
adb pull /sdcard/screenshot.png
|
||
```
|
||
|
||
---
|
||
|
||
## 📱 Tests sur le Mobile
|
||
|
||
### Vérifications Visuelles
|
||
- [ ] **AppBar** : Logo Geosector + Logo Amicale (si disponible)
|
||
- [ ] **Navigation** :
|
||
- Admin : Bordure rouge, menu sélectionné en rouge/gras
|
||
- User : Bordure verte, menu sélectionné en vert/gras
|
||
- [ ] **Menu Mobile** : Icônes uniquement en bas (sans texte)
|
||
- [ ] **Responsive** : Adaptation portrait/paysage
|
||
|
||
### Tests Fonctionnels
|
||
- [ ] Connexion/Déconnexion
|
||
- [ ] Navigation entre les pages
|
||
- [ ] Formulaires et validations
|
||
- [ ] Synchronisation des données
|
||
- [ ] Mode hors-ligne
|
||
|
||
### Performance
|
||
- [ ] Temps de chargement
|
||
- [ ] Fluidité du scroll
|
||
- [ ] Réactivité des boutons
|
||
- [ ] Consommation mémoire
|
||
|
||
---
|
||
|
||
## 🆘 Résolution de Problèmes
|
||
|
||
### Appareil Non Détecté
|
||
```bash
|
||
# Vérifier les drivers USB
|
||
adb devices
|
||
|
||
# Relancer ADB
|
||
adb kill-server
|
||
adb start-server
|
||
|
||
# Vérifier Flutter
|
||
flutter doctor -v
|
||
```
|
||
|
||
### Erreur de Connexion WiFi
|
||
```bash
|
||
# Vérifier le réseau (même WiFi PC et mobile)
|
||
ping [IP_MOBILE]
|
||
|
||
# Réassocier l'appareil
|
||
adb pair [IP:PORT] [CODE]
|
||
|
||
# Forcer la reconnexion
|
||
adb disconnect
|
||
adb connect [IP:PORT]
|
||
```
|
||
|
||
### Build Échoué
|
||
```bash
|
||
# Nettoyer et reconstruire
|
||
flutter clean
|
||
flutter pub get
|
||
flutter run
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 Tips & Astuces
|
||
|
||
1. **Gardez le téléphone déverrouillé** pendant les tests
|
||
2. **Désactivez l'économie d'énergie** pour éviter les déconnexions
|
||
3. **Utilisez le mode Release** pour tester les vraies performances
|
||
4. **Activez "Rester éveillé"** dans Options développeur
|
||
5. **WiFi stable** : Préférez le 5GHz au 2.4GHz si disponible
|
||
|
||
---
|
||
|
||
## 📊 Exemple de Session Type
|
||
|
||
```bash
|
||
# 1. Connexion WiFi
|
||
adb connect 192.168.1.103:33503
|
||
|
||
# 2. Vérification
|
||
flutter devices
|
||
|
||
# 3. Lancement en debug
|
||
flutter run -d 192.168.1.103:33503
|
||
|
||
# 4. Tests et hot reload (touche r)
|
||
|
||
# 5. Test performance
|
||
flutter run -d 192.168.1.103:33503 --release
|
||
|
||
# 6. Build final
|
||
flutter build apk --release
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 Notes Spécifiques Geosector
|
||
|
||
- **Environnement** : L'app détecte automatiquement DEV/REC/PROD
|
||
- **Logos** : Le logo amicale s'affiche si disponible en base64
|
||
- **Rôles** : Admin (rouge) vs User (vert) dans l'interface
|
||
- **Cache** : Utilise Hive pour le stockage local
|
||
|
||
---
|
||
|
||
*Guide créé pour Geosector v3.0.6 - Flutter 3.32+* |