
Deep Radio – Native Radio-App für iOS, macOS und Android
Deep Radio
Doorlooptijd
1 maand
Team
4 specialisten
Sector
Media, Entertainment & Audio Streaming
Context
Deep Radio ist seit fast 20 Jahren ein bekannter Name in der niederländischen Dance-Szene. Der Online-Radiosender läuft 24 Stunden am Tag und steht für Energie, Beats, Shows, Classics, neue Releases und eine Community, die Musik nicht nur hört, sondern lebt. Score Agency entwickelte für Deep Radio eine native Radio-App, die weit mehr ist als ein einfacher Play-Button. Die App bringt das vollständige Deep Radio Erlebnis auf iOS, macOS und Android: Live-Streaming in hoher Qualität, direkte Now-Playing Informationen, zuletzt gespielte Tracks, ein vollständiger Wochenplan und nahtlose Wiedergabe über AirPlay oder Chromecast. Die Stärke der App liegt in der Kombination aus tiefer technischer Integration und starker Markenexperience. Dynamic Island und Live Activities zeigen in Echtzeit, was gerade läuft. Lockscreen und Control Center machen Deep Radio zu einem natürlichen Teil des Betriebssystems. Die Hintergrundwiedergabe bleibt stabil, Netzwerkunterbrechungen werden intelligent abgefangen und die App arbeitet sauber mit Telefonaten und anderen Audio-Apps zusammen. Auch visuell erhielt die App einen eigenen Charakter. Realtime Metadaten, Coverart, ein synthetisierter VU-Meter und sogar ein DJ Scratch-Effekt machen die App zu einer echten digitalen Erweiterung der Marke Deep Radio statt zu einem generischen Radioplayer. Score Agency entwickelte keine kompromissbehaftete Cross-Platform App, sondern eine ausgereifte native Produktlinie: iOS und macOS mit SwiftUI und xcodegen, Android mit Kotlin, Jetpack Compose und Material3. Das Ergebnis ist schnell, zuverlässig und plattformspezifisch, während die Deep Radio Identität überall konsistent bleibt. Deep Radio. We Are Dance.
Deep Radio benötigte eine App, die die Energie des Senders in ein hochwertiges, stabiles und natives Hörerlebnis für iOS, macOS und Android übersetzt.
Specifieke uitdagingen
- 1Die App sollte sich wie ein echtes Markenerlebnis anfühlen und nicht wie ein generischer Radioplayer
- 2Live-Audio musste auch im Hintergrund zuverlässig weiterlaufen
- 3iOS, macOS und Android sollten dieselbe Qualität und visuelle Konsistenz bieten, ohne native Plattformvorteile zu verlieren
- 4Now-Playing Informationen, Coverart, Showdaten und zuletzt gespielte Tracks mussten in Echtzeit verfügbar sein
- 5Dynamic Island, Live Activities, Lockscreen Controls und Control Center mussten nativ unterstützt werden
- 6Chromecast, AirPlay und lokale Wiedergabe mussten ohne doppelte Audioausgabe oder verwirrende Zustände zusammenspielen
- 7Die App musste korrekt mit Telefonaten, Systemunterbrechungen, anderen Audio-Apps und Netzwerkproblemen umgehen
- 8Die Android-Version musste iOS visuell und funktional entsprechen und eine moderne Material3 UI bieten
- 9Analytics sollten Playback, Trackwechsel, Casting und Interaktionen messbar machen
- 10Die technische Basis musste skalierbar für zukünftige Shows, Features und Integrationen sein
Score Agency entwickelte eine native Produktlinie mit Fokus auf Performance, Plattformintegration und Markenerlebnis. Für Apple-Plattformen nutzten wir SwiftUI, ActivityKit, AVAudioSession, MPNowPlayingInfoCenter, Google Cast und moderne Observation APIs. Für Android entstand dieselbe Experience nativ mit Kotlin, Jetpack Compose, Material3, Media3 und ExoPlayer.
Native Produktlinie
Kein generischer Wrapper, sondern eine gezielt entwickelte Produktlinie für iOS, macOS und Android. Apple-Plattformen wurden mit xcodegen und project.yml strukturiert, Android nativ mit Kotlin, Jetpack Compose und Material3.
Premium Live-Audio
Die App unterstützt Background Audio Mode, eigene AVAudioSession-Konfiguration und stabile Live-Wiedergabe, damit Deep Radio auch beim Multitasking oder gesperrtem Gerät weiterspielt.
Dynamic Island & Live Activities
Für iOS 16.1+ entwickelten wir eine eigene ActivityKit Widget Extension. Compact, expanded und minimal states zeigen Deep Radio Logo, Waveform-Icon, LIVE-Badge, Artist und Titel.
Gemeinsamer Now-Playing State
App und Widget teilen den Live-Status über DeepFMNowPlayingAttributes, wodurch Dynamic Island, Live Activities und App-Interface synchron mit dem Sender bleiben.
Chromecast Integration
Mit Google Cast SDK 4.8.4, Bonjour Discovery über NSBonjourServices und custom GCKMediaMetadata können Hörer den Livestream inklusive Titel, Artist und 512x512 Artwork casten.
Intelligentes Cast Session Management
Wenn Casting startet, pausiert die lokale Wiedergabe automatisch. Nach dem Disconnect setzt die App die lokale Wiedergabe über GCKSessionManager intelligent fort.
Nativer SwiftUI Cast Button
Casting ist über einen erkennbaren SwiftUI Button mit SF Symbol tv Icon verfügbar, verbunden mit presentCastDialog() für einen vertrauten nativen Flow.
Lockscreen & Control Center
MPNowPlayingInfoCenter und MPRemoteCommandCenter liefern native Mediensteuerung, Live-Stream Status, Shownamen, elapsed playback time und dynamisch gerendertes Artwork.
Reconnect ohne Frustration
Eine 8-Sekunden Grace Period und ein 15-Sekunden Cooldown verhindern Playback-Flapping bei kurzen Netzwerkunterbrechungen und sorgen für ein ruhigeres Erlebnis.
Realtime Audio Visualisierung
Der VU-Meter ist als synthetisierte 24 fps Animation mit sinusförmiger Drift und Jitter aufgebaut und funktioniert dadurch auch mit Live HLS und MP3 Streams ohne MTAudioProcessingTap.
DJ Scratch-Effekt
Der Scratch-Effekt nutzt ein duales AVAudioEngine Setup: AVPlayer für den Hauptstream und eine separate Engine mit AVAudioUnitTimePitch.
Moderne iOS-Architektur
Die App nutzt @Observable und @State auf iOS 17+ für modernes State Management ohne Combine-Boilerplate. Now-playing und History werden per async/await Polling geladen.
Platform Conditional Compilation
#if os(iOS) trennt Cast, ActivityKit und Firebase sauber von der macOS-Build, wodurch jede Target fokussiert und wartbar bleibt.
Realtime Datenintegrationen
Die App nutzt die Backstage API für Live-Trackmetadaten und verarbeitet den deep.radio Sendeplan über Regex Parsing für Shownamen, Zeiten und Artwork.
Type-safe Analytics
Firebase Analytics wurde mit type-safe Events für Trackwechsel, Playback, Casting und Scratch-Interaktionen umgesetzt.
Android Parity
Die Android-App nutzt Media3 1.5.0, ExoPlayer, adaptive bitrate streaming, ICY Metadata Extraction, MediaSession, MediaSessionService und Coil für Artwork Caching.
Techniek & Aanpak
Vergelijkbare uitdaging?
We bespreken graag hoe we jouw project tot een succes kunnen maken.
Neem contact op