# 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).