Android e Android Auto · 2025 — oggi
CoolZone WebRadio — app mobile
CoolZone WebRadio è l'app Android per ascoltare in diretta la web radio di Tom Palmer su telefono, cuffie Bluetooth e Android Auto. La sviluppo dal 2025 con Ionic, React e Capacitor e un plugin nativo in Kotlin che gestisce notifica, uscite audio e integrazione con l'auto. Si avvia anche su Android TV; il supporto Google Cast è in sviluppo.
Contesto
CoolZone WebRadio trasmette un unico canale in diretta, con il palinsesto preparato da Tom Palmer, autore della radio. App e sito condividono la sorgente audio e l'immagine grafica, ma sono progetti separati. La parte grafica (icona, palette, identità visiva) è di Tom Palmer; dal suo materiale ho ricavato le icone dell'app e la schermata di avvio.
Sono l'unico sviluppatore: ho scritto il codice con l'assistenza di agenti di programmazione AI, mentre analisi dei problemi, scelte tecniche e verifiche su dispositivi Android reali sono mie.
Obiettivo
Serviva un'app che segua chi ascolta sul telefono, in cuffia e in auto. Essendo una diretta, "stop" ferma davvero lo stream e "play" riparte dal momento attuale. Brano, artista, programma e copertina devono restare allineati nell'app, nella notifica, sulla schermata di blocco e sullo schermo dell'auto.
Cosa ho fatto
Com'è costruita l'app?
L'interfaccia è in React e TypeScript con Ionic, e Capacitor la trasforma in un'app Android. L'audio di sistema passa da un plugin Capacitor creato apposta, coolzone-android-auto-bridge, scritto in Kotlin: gestisce la MediaSession, il servizio media che Android Auto legge e la scelta dell'uscita audio.
Su quali dispositivi e uscite funziona?
L'app funziona sui telefoni Android e si avvia anche su Android TV, con una schermata semplificata per il telecomando. Il selettore delle uscite propone altoparlante del telefono, Bluetooth e Android Auto. Il Bluetooth resta sul profilo media A2DP, per non scendere alla qualità delle chiamate, e con l'auto collegata l'uscita resta bloccata su Android Auto. È in sviluppo l'uscita verso i dispositivi Google Cast.
Come funziona l'app in auto?
In Android Auto CoolZone compare tra le app multimediali: la diretta si avvia dallo schermo dell'auto, che mostra titolo, artista, programma e copertina. L'ho verificato con il Desktop Head Unit (DHU), l'emulatore di Android Auto di Google, collegato a telefoni Android reali.
Da dove arrivano titolo e copertina?
Titolo e artista arrivano dal server di streaming. La copertina arriva da un'API versionata del sito coolzonewebradio.it, che la chiede a IskRadioPlayer, il player del sito, separato dal motore audio dell'app (vedi CoolZone WebRadio — sito web). L'API restituisce sempre l'indirizzo completo dell'immagine, così un restyling del player non richiede un aggiornamento dell'app. Se il sito non risponde, l'app cerca la copertina su iTunes o mostra un'immagine predefinita.
La parte più difficile
La parte più difficile è stata Android Auto, con due problemi emersi a settembre 2026 nei test sul DHU. Il primo: con Spotify aperto in pausa, l'auto mostrava Spotify invece di CoolZone, anche con la radio in riproduzione. Analizzando le sessioni media del telefono ho visto che la MediaSession dell'app si dichiarava sempre "remota", come se suonasse su un altro dispositivo, e Android Auto le preferiva Spotify. Ora la sessione è locale quando l'audio esce da telefono, Bluetooth o auto, e remota solo verso un dispositivo Cast.
Il secondo: con l'app in secondo piano la copertina in auto non si aggiornava. Android rallenta il JavaScript di una WebView non visibile, quindi nessuna correzione lato React poteva bastare. Ho spostato l'aggiornamento di brano e copertina in Kotlin, nel servizio media, attivo solo mentre l'auto è collegata. Con il telefono bloccato per diversi minuti, la copertina cambia a ogni brano.
Risultato
La versione 0.5.3 è in produzione su Google Play, con le due correzioni per Android Auto, il nuovo recupero delle copertine e la migrazione a Capacitor 8 e targetSdk 36 (Android 16), richiesta da Google Play entro il 31 agosto 2026. Capacitor 7 non supporta quel livello, quindi è servito aggiornare anche Gradle e Kotlin.
È un progetto piccolo, pensato per gli ascoltatori della radio. I prossimi passi sono il supporto Google Cast e una versione iOS, in programma.
Il sito della radio è raccontato nella scheda CoolZone WebRadio — sito web.