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>
Jalon 2 — Lecture audio
Objectif
Lire un épisode audio en streaming : lecture, pause, suivant/précédent, position, le tout derrière une interface de domaine propre et pilotable depuis l'UI.
Périmètre
- Lecture d'une URL audio (streaming).
- Contrôles : play/pause, suivant/précédent, seek, progression.
- Lecture en arrière-plan / écran verrouillé (
audio_service). - Testable avec un flux/épisode « en dur » (pas besoin de J3).
Hors-périmètre
- Téléchargement hors-ligne (exclu v1).
- File d'attente avancée / aléatoire : on garde une liste ordonnée simple.
Étapes
- 2.1 — Domaine de lecture
- 2.2 — Service audio (just_audio + audio_service)
- 2.3 — UI lecteur + contrôleur Riverpod
Definition of Done (jalon)
- Un épisode de test se lit, se met en pause, avance/recule ; la progression s'affiche.
- Domain/use cases testés sans dépendance Flutter/audio.
tool/check.shpasse ;ROADMAP.md2.1→2.3 cochées.