tablet-app-new/CLAUDE.md

55 lines
2.1 KiB
Markdown

# 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
```