16fd4c8c36
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>
1.8 KiB
1.8 KiB
2.3 — UI lecteur + contrôleur Riverpod
Objectif
Offrir un lecteur utilisable par l'enfant : gros boutons lecture/pause, précédent/suivant, barre de progression, titre de l'histoire en cours.
Périmètre & hors-périmètre
- Inclus : contrôleur Riverpod (
AsyncNotifier/Notifier) consommant les use cases, widget lecteur. - Exclus : la liste des histoires (jalon 4) ; ici on teste avec une file en dur.
Dépendances
2.1, 2.2.
Conception
- Presentation (
features/playback/presentation/) :PlaybackController(RiverpodNotifier) : exposePlaybackState, méthodesplay/pause/next/previous/seekdéléguant aux use cases ; s'abonne àWatchPlaybackStateUseCase.PlayerView(widget) : grand bouton central play/pause (icône claire), boutons précédent/suivant,Sliderde progression, titre + vignette.- Composants tactiles larges, lisibles le soir (thème de 0.3).
- Pas de logique métier dans le widget : tout passe par le contrôleur → use cases.
Plan TDD
- Red :
playback_controller_test.dart— avec use cases mockés,play()appelleTogglePlayPauseUseCase; l'état du contrôleur reflète lesPlaybackStateémis. - Green : implémenter le contrôleur.
- Red :
player_view_test.dart(widget) — tap sur le bouton play déclenchecontroller.play(provider overridé par un mock) ; l'icône bascule play/pause selon l'état ; le titre s'affiche. - Green : implémenter le widget.
- Refactor.
Definition of Done
- Tests contrôleur + widget verts.
- Démo manuelle : avec une file en dur, lecture/pause/suivant/seek fonctionnent et l'UI suit.
tool/check.shpasse ; étape 2.3 cochée dansROADMAP.md.
Risques / notes
- Soigner l'accessibilité tactile (taille des cibles) dès maintenant : c'est l'écran que l'enfant manipule.