Files
Vincent Bourdon 16fd4c8c36 docs: cadrage initial Storytime (specs par jalon, roadmap, CLAUDE.md)
Lecteur d'histoires cadenassé pour le coucher (Android/Flutter).
- CLAUDE.md : principes craftsmanship/TDD/clean code/clean archi + decisions techniques
- ROADMAP.md : suivi haut niveau des 7 jalons, a tenir a jour par etape
- docs/specs/ : specs completes decoupees par jalon, etapes en sous-fichiers
- .gitignore Flutter (pubspec.lock versionne, projet applicatif)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 17:03:33 +02:00

29 lines
1.6 KiB
Markdown

# Jalon 1 — Verrouillage / épinglage ⚠️ BLOQUANT
## Objectif
Valider et implémenter la capacité de l'app à **empêcher la sortie facile** via le
Screen Pinning natif Android, et exposer cette capacité au reste de l'app par une
interface de domaine propre.
## Pourquoi bloquant
C'est l'exigence n°1 du produit. Tant que l'épinglage n'est pas prouvé sur la
tablette cible, on n'investit pas dans le reste. Si ni le plugin ni le fallback
natif ne tiennent, **on remonte au choix matériel** (tablette dédiée / mode kiosque
Device Owner) avant d'aller plus loin.
## Rappel des limites (à respecter dans l'UI)
- La sortie réelle dépend du mécanisme natif Android + PIN tablette, pas du code parental.
- L'épinglage ne survit pas à un redémarrage.
- Côté parent : prévoir un rappel pour activer « épinglage » + « exiger le PIN au désépinglage » dans les réglages Android.
## Étapes
1. [1.1 — Spike `kiosk_mode` sur appareil réel](01-spike-kiosk-mode.md) — **bloquant**
2. [1.2 — Service de verrouillage (domaine + use cases)](02-service-verrouillage.md)
3. [1.3 — Fallback natif Kotlin (platform channel)](03-fallback-natif-kotlin.md)
## Definition of Done (jalon)
- Sur la tablette cible : l'app s'épingle, l'enfant ne peut pas sortir par les gestes normaux, le désépinglage exige le PIN Android.
- `LockingRepository` + use cases `StartLockUseCase`/`StopLockUseCase`/`IsLockedUseCase` testés (impl. mockée).
- Décision tranchée : plugin suffisant **ou** fallback natif retenu — consignée dans le journal de la roadmap.
- `ROADMAP.md` : 1.1→1.3 cochées (1.3 « N/A » si le plugin suffit).