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>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user