Deep Radio – Native Radio-App für iOS, macOS und Android - Media, Entertainment & Audio Streaming case study door Score Agency
    Alle cases
    Media, Entertainment & Audio Streaming

    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.

    Die Herausforderung

    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

    • 1
      Die App sollte sich wie ein echtes Markenerlebnis anfühlen und nicht wie ein generischer Radioplayer
    • 2
      Live-Audio musste auch im Hintergrund zuverlässig weiterlaufen
    • 3
      iOS, macOS und Android sollten dieselbe Qualität und visuelle Konsistenz bieten, ohne native Plattformvorteile zu verlieren
    • 4
      Now-Playing Informationen, Coverart, Showdaten und zuletzt gespielte Tracks mussten in Echtzeit verfügbar sein
    • 5
      Dynamic Island, Live Activities, Lockscreen Controls und Control Center mussten nativ unterstützt werden
    • 6
      Chromecast, AirPlay und lokale Wiedergabe mussten ohne doppelte Audioausgabe oder verwirrende Zustände zusammenspielen
    • 7
      Die App musste korrekt mit Telefonaten, Systemunterbrechungen, anderen Audio-Apps und Netzwerkproblemen umgehen
    • 8
      Die Android-Version musste iOS visuell und funktional entsprechen und eine moderne Material3 UI bieten
    • 9
      Analytics sollten Playback, Trackwechsel, Casting und Interaktionen messbar machen
    • 10
      Die technische Basis musste skalierbar für zukünftige Shows, Features und Integrationen sein
    Unser Ansatz

    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.

    Resultaat
    3
    Plattformen
    iOS, macOS und natives Android
    3 states
    Dynamic Island
    Compact, expanded und minimal
    AirPlay + Cast
    Casting
    Natives Streaming zu Speaker, TV und Auto
    24/7
    Live-Audio
    Zuverlässige Hintergrundwiedergabe
    24 fps
    Realtime UI
    Synthetisierte VU-Meter Animation
    Type-safe
    Analytics
    Playback, Casting und Interaktionen messbar

    Techniek & Aanpak

    SwiftUIxcodegenproject.ymlActivityKitLive ActivitiesDynamic IslandWidget ExtensionAVAudioSessionAVAudioEngineAVPlayerGoogle Cast SDK

    Vergelijkbare uitdaging?

    We bespreken graag hoe we jouw project tot een succes kunnen maken.

    Neem contact op

    Gecertificeerd & Compliant

    Score Agency is ISO 27001 gecertificeerd en volledig AVG/GDPR compliant.