2.6 KiB
2.6 KiB
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-apppour son instance
Stack
- Flutter mobile (Android + iOS)
- State management : Provider + GetX (hybride)
ChangeNotifierpour 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 pasflutter_localizationspour 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 :
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
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)