# tablet-app App Flutter dédiée aux tablettes fixes (kiosks). Les visiteurs viennent à la tablette — elle ne bouge pas. ## Fonctionnement 1. Sélection de l'instance via **pincode** 2. Choix d'une **configuration** à afficher (configurée dans `manager-app`) 3. Affichage du contenu en boucle pour les visiteurs ## Stack - Flutter mobile (cible : tablette Android/iOS) - State management : **Provider** + `ChangeNotifier` - MQTT (`mqtt_client`) pour la communication temps réel avec le backend - SQLite (`sqflite`) pour le cache local - Firebase Storage + Core ## 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/ # Boutons, carrousels, loaders, players audio/vidéo ├── Helpers/ # DatabaseHelper, DeviceInfoHelper, MQTTHelper, translationHelper ├── Models/ # TabletAppContext, agenda, section, map-marker, WeatherData ├── Screens/ # Agenda, Article, Configuration, MainView, Menu, PDF, │ # Map (Google Maps + MapBox + Flutter Map), Puzzle, Quiz, │ # Slider, Video, Weather, Web └── Services/ # assistantService, downloadService, statisticsService ``` ## Fonctionnalités non supportées La tablette étant fixe, certaines features orientées mobilité ne sont pas implémentées : - **Escape game / parcours géolocalisé** — requiert un device mobile qui se déplace - Pas de scanner QR, pas de beacons - Pas de notifications push ## Particularités vs mymuseum-visitapp - MQTT activé (synchronisation device ↔ backend) - Langues gérées via `translationHelper` + données backend (même pattern que visitapp) - Support cartes : Google Maps, MapBox, Flutter Map ## Commandes utiles ```bash flutter run # Lancer sur device/émulateur connecté flutter build apk # Build Android flutter build ios # Build iOS ```