1.5 KiB
1.5 KiB
Brainstorm & Implementation Plan — Android 24/7 Radio
Date: 2026-03-09
Task Description
Brainstormed and designed a personal-use Android radio streaming app from an IDEA.md spec. Produced a full design document and a 15-task implementation plan.
Key Decisions
- Custom raw audio pipeline (Approach B) over ExoPlayer, for absolute minimum latency (~26ms per MP3 frame vs ExoPlayer's ~1-2s floor)
- Pipeline: OkHttp → IcyParser → Mp3FrameSync → MediaCodec → AudioTrack, single-threaded
- Kotlin + Jetpack Compose + Material 3, targeting API 28 (Android 9) minimum
- Room DB with future-proofed schema (MetadataSnapshot, ListeningSession, ConnectionSpan tables for future recording/clips)
- PLS/M3U import/export with
#EXTIMGsupport for station default artwork - Album art fallback chain: MusicBrainz → ICY StreamUrl → EXTIMG → Station favicon → Placeholder
- Dual timers on Now Playing: session time (never resets) + connection time (resets on reconnect)
- Latency indicator estimated from ring buffer + AudioTrack write/play head delta
Changes Made
docs/plans/2026-03-09-android-247-radio-design.md— Full design document (6 sections)docs/plans/2026-03-09-android-247-radio-implementation.md— 15-task implementation plan with TDD steps- Initialized git repository with 2 commits
Follow-Up Items
- Execute the implementation plan (15 tasks, starting with project scaffolding)
- Execution options: subagent-driven (this session) or parallel session with executing-plans skill