Puls'Radio web radio player
A dedicated Android player for the Puls'Radio dance and trance stream.
- Role
- Author
- Period
- 2010 — 2012

One of the first dedicated Android clients for the Puls'Radio dance/trance stream.
Background playback with a MediaPlayer-based pipeline that handled MP3 and AAC streams equally.
Lightweight notification controls before that was a stock Android pattern.
Shipped through the early Android Market when "publish" still meant uploading an APK by hand.
Context
This was the project that taught me what shipping really means.
Puls'Radio was a French association running a web radio dedicated to dance and trance music. The stream was easy to play in a browser, harder to play on the move. In 2010 that meant building an Android app — and "Android app" in 2010 meant Java, Eclipse, and an emulator that took five minutes to boot.
What I built
A small, focused player. The whole app did exactly one thing: open the stream, play it, keep playing it through screen lock and incoming calls. Underneath it was Android's MediaPlayer wired to two stream URLs (MP3 + AAC fallback), with a tiny state machine for connecting / buffering / playing / paused, and a foreground notification with play/stop controls — written before that was a stock pattern, when you hand-rolled the layout in XML and prayed manufacturers didn't break it.
The hardest parts had nothing to do with the audio:
- Wake-locks done right. Letting the device sleep without killing the audio meant figuring out the difference between
PARTIAL_WAKE_LOCKand the stream that just-keeps-playing, and being honest about battery drain. - Lifecycle. Android's activity/service split was new, the docs were thin, and the stream needed to survive screen rotation, calls, and Bluetooth disconnects.
- Distribution. The Android Market accepted whatever APK you uploaded, signed with whatever keystore you happened to generate. Forgetting that keystore means losing the listing forever — a lesson I learned the hard way two devices later.
Outcomes
- The app shipped to the Android Market and stayed installed on a small but loyal listener base for the lifetime of the original Puls'Radio brand.
- It taught me to design for the device, not the desktop emulator.
- More importantly, it was the first project I shipped publicly that other people actually used. Everything I've shipped since has the shape of that lesson.
Status today
Archived. The original Google Code listing is preserved at the link above. The audio pipeline I'd build today looks nothing like this — ExoPlayer exists, foreground services have proper APIs, and Compose-based UIs read like prose. But the lesson — ship the thing, listen to the people who use it, fix what they actually run into — is still load-bearing.
Want something like this?
Available for freelance and contract work. The fastest way to start a conversation is email.