Skip to content

Add iOS native app handoff doc - #71

Open
MMagTech wants to merge 2 commits into
masterfrom
claude/ios-alchemyfm-setup-d322e0
Open

Add iOS native app handoff doc#71
MMagTech wants to merge 2 commits into
masterfrom
claude/ios-alchemyfm-setup-d322e0

Conversation

@MMagTech

@MMagTech MMagTech commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Adds docs/IOS_APP_HANDOFF.md — the context document for starting native iOS app development on the Mac. Covers why native (the iOS PWA suspension bug), the listener API surface, AVPlayer/background-audio implementation notes, suggested repo layout (ios/ folder), and v1 milestones.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Building the app against this doc surfaced two traps it pointed straight
into, both of which fail silently — the station connects, the server counts
a listener, the UI shows a healthy stream, and no audio comes out.

The doc recommended `stream_url` over `/listen` for the player. That is
backwards on iOS: iOS sniffs a media resource with a small `Range: bytes=0-1`
probe before opening the real playback connection, and Icecast ignores the
range and answers with an endless 200, so the probe never completes. The
backend endpoint already handles exactly this (`_probe_range_end`), which is
why it exists.

Also added a warning against setting automaticallyWaitsToMinimizeStalling to
false. It reads as the obvious choice for live radio, but it drops any
play() issued before the item is .readyToPlay and never retries, leaving the
player buffering at rate 0 while reporting .playing.

Milestone 3 now says to confirm playback is audible rather than connected,
since that distinction is the whole difficulty here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant