Il 2015 ha visto la nascita della seconda versione di Chromecast, un dongle che permette di visualizzare contenuti multimediali online su un normale televisore, pilotando il tutto tramite i propri dispositivi elettronici, mobile e non. Essendo prodotto da Google, non è strano che Android sia l'ambiente ideale per sviluppare applicazioni che interagiscano con Chromecast, sebbene ciò sia comunque possibile anche sfruttando dispositivi Apple, il browser Chrome e molti altri contesti.
Per utilizzare Chromecast, è sufficiente collegarlo ad un televisotre tramite connettore HDMI, ed alimentarlo collegandolo alla rete elettrica tramite l'alimentatore in dotazione o agganciandolo con un cavetto ad una porta USB della TV.
Intuitivo ed economico
I motivi del successo di Chromecast sono da ricercare nel suo prezzo contenuto (39 euro è il prezzo consigliato da Google) nonchè nella semplicità di installazione. Una volta connesso il dispositivo al televisore, si potrà procedere con la configurazione mediante la Chromecast App, scaricabile dagli store ufficiali dei principali sistemi operativi mobile. Dopo l'installazione di tale applicativo, verranno rintracciati i dispositivi Chromecast presenti nella rete locale. Si dovrà selezionare quale di essi configurare e, per sicurezza, apparirà il medesimo codice alfanumerico sia nella Chromecast app sia sul televisore connesso al dongle: noi dovremo confermare che le due stringhe siano effettivamente identiche.
Da questo momento, Chromecast entrerà a far parte della rete LAN di casa, rimanendo raggiungibile mediante WiFi. L'app Chromecast offre inoltre altre due importanti funzionalità: il mirroring, grazie al quale è possibile riprodurre il contenuto del dispositivo mobile sul televisore, e la modalità ospite che permette ad un visitatore occasionale di trasmettere contenuti al dongle direttamente, senza conoscere la configurazione Wi-Fi della rete locale.
Programmare su Android per Chromecast
Lo scopo di questa guida è mostrare come un'app Android possa interagire con un dispositivo Chromecast sfruttando gli ambienti che Google stesso mette a disposizione. Lo scopo principale di un'app del genere è sfruttare l'effetto multiscreen, che consiste non tanto nel creare una specie di "doppio schermo" tra smartphone e TV, quanto piuttosto nella possibilità di utilizzare il televisore come display principale, mantenendo quello del dispositivo mobile libero di poter essere dedicato ad altro.
Questo nuovo livello di esperienza utente è permesso da Google Cast, una tecnologia offerta da Mountain View per la quale è previsto un vero e proprio SDK corredato da una console on line per la gestione dei progetti: tutti strumenti con i quali familiarizzeremo nelle prossime lezioni.
Lavorare con Google Cast prevede l'interazione tra due diverse componenti:
- l'applicazione Sender, eseguita sul dispositivo mobile, è quella utilizzata direttamente dall'utente finale. Noi ne realizzeremo una che avrà la forma di un'app Android. Si consideri comunque che, grazie agli SDK disponibili, può essere realizzata anche per iOS e Chrome. Il ruolo principale dell'applicazione sender è quello di gestire remotamente la fruizione di contenuti sul televisore;
-
l'applicazione Receiver viene eseguita all'interno del Chromecast e, potenzialmente, potrebbe prendere vita anche in altri tipi di dispositivi in grado di interagire con la tecnologia Cast: in generale, infatti, si parla di device Google Cast Ready. Mentre l'applicazione sender viene realizzata con le tipiche tecnologie dello sviluppo "nativo", quella receiver non è altro che un'app HTML5/CSS/Javascript come lo sono le comuni applicazioni web. Proprio la radice "Chrome" nel nome del dispositivo di cui stiamo parlando rivela che in realtà il motore che dà vita al receiver nel dongle è mutuato dal browser di Mountain View.
Esistono tre tipi di receiver, due dei quali, per poter essere utilizzati, richiedono l'iscrizione alla Google Cast SDK Developer Console:
- il Default Media Receiver: è utilissimo perchè già predisposto da Google e pronto all'uso. Per usare questa opzione non è richiesto nessun processo di registrazione;
- lo Styled Media Receiver consiste in un'app web, già strutturata, per la quale si può fornire un foglio di stile CSS che modifichi a piacimento l'aspetto grafico che visualizzerà l'utente. Per poterla utilizzare è necessario iscriversi alla piattaforma del Google Cast SDK ed in fase di registrazione dell'app si dovrà fornire l'indirizzo del documento CSS abbinato. L'URL cui esso dovrà essere reperibile deve essere accessibile tramite protocollo HTTPS. Dal momento che non tutti dispongono di uno spazio hosting che rispetti tale caratteristica, Google permette di esporre il file richiesto tramite il proprio servizio Google Drive;
- il Custom Media Receiver va oltre la stilizzazione del formato e consiste in una vera e propria applicazione web tramite la quale lo sviluppatore potrà stabilire qualsiasi tipo di dialogo con il sender, sfruttando le API Javascript messe a disposizione.
Sender e receiver dialogano mediante un protocollo di comunicazione facente parte della tecnologia Cast. Il canale di comunicazione che viene a crearsi tra le due componenti prende il nome di Channel ed è contraddistinto da un identificativo detto namespace. Il formato di quest'ultimo è costituito da un prefisso standard urn:x-cast:
seguito da una stringa univoca come tipicamente può essere il package Java dell'app sender. Esiste un protocollo di comunicazione standard, predisposto per i contenuti multimediali, denominato Media Channel, il cui namespace è urn:x-cast:com.google.cast.media
. Il framework è comunque totalmente aperto, pertanto sarà possibile progettare il proprio protocollo di comunicazione, adatto agli scopi delle applicazioni che si vogliono sviluppare.
Nelle prossime lezioni vedremo alcuni esempi che si baseranno su molti dei concetti visti finora.