59 lines
2.6 KiB
Markdown
59 lines
2.6 KiB
Markdown
# mymuseum-visitapp
|
|
|
|
App Flutter pour les visiteurs finaux, installée sur leurs propres devices (smartphone/tablette).
|
|
|
|
## Fonctionnement
|
|
- Le visiteur peut scanner un **QR code** pour afficher le détail d'un contenu
|
|
- Les **beacons** servent à suggérer l'affichage de contenu selon la position du visiteur
|
|
- Accès au contenu configuré dans `manager-app` pour son instance
|
|
|
|
## Stack
|
|
- Flutter mobile (Android + iOS)
|
|
- State management : **Provider** + **GetX** (hybride)
|
|
- `ChangeNotifier` pour le contexte global (VisitContext)
|
|
- `Get.put()` pour les contrôleurs GetX (ex: `RequirementStateController`)
|
|
- Gestion des langues via `translations.dart` (Helpers) : les langues sont récupérées depuis le backend, pas depuis la locale du device — c'est pourquoi on n'utilise pas `flutter_localizations` pour le contenu
|
|
- SQLite (`sqflite`) pour le cache local
|
|
- Firebase Messaging + Local Notifications (push notifications)
|
|
|
|
## Client API
|
|
Dépendance locale sur le client généré dans `manager-app` :
|
|
```yaml
|
|
manager_api_new:
|
|
path: ../manager-app/manager_api_new
|
|
```
|
|
**Ne pas copier/dupliquer le client** — toujours pointer vers `manager-app/manager_api_new`.
|
|
|
|
## Structure
|
|
```
|
|
lib/
|
|
├── api/ # Intégration OpenAPI
|
|
├── Components/ # AppBar, language selector, scanner, image/video viewers
|
|
├── Helpers/ # DatabaseHelper, networkCheck, translationHelper, modelsHelper
|
|
├── l10n/ # ARB files présents mais non utilisés pour le contenu (voir translationHelper)
|
|
├── Models/ # VisitContext, beaconSection, articleRead, agenda, weatherData
|
|
├── Screens/
|
|
│ ├── Home/ # Liste des configurations, écran d'accueil
|
|
│ ├── ConfigurationPage/ # Setup avec détection beacon
|
|
│ └── Sections/ # Agenda, Article, Game, Map, Menu, PDF,
|
|
│ # Quiz, Slider, Video, Weather, Web
|
|
└── Services/ # apiService, assistantService, downloadConfiguration,
|
|
# pushNotificationService, statisticsService
|
|
```
|
|
|
|
## Particularités vs tablet-app
|
|
- Langues gérées via `translationHelper` + données backend (pas via ARB/flutter_localizations pour le contenu)
|
|
- Push notifications (Firebase Messaging)
|
|
- Scanner QR (`mobile_scanner`) + support beacons
|
|
- Speech-to-text (`speech_to_text`)
|
|
- Pas de MQTT
|
|
- GetX en plus de Provider pour certains contrôleurs
|
|
|
|
## Commandes utiles
|
|
```bash
|
|
flutter run # Lancer sur device/émulateur connecté
|
|
flutter build apk # Build Android
|
|
flutter build ios # Build iOS
|
|
flutter gen-l10n # (peu utile, langues gérées via backend)
|
|
```
|