Conquistato il mercato degli smartphone e avviato l'attacco al mondo dei tablet, Android si appresta a diventare protagonista del display più grande e più diffuso: la televisione. La piattaforma Google TV, recentemente aggiornata nel software e nell'hardware, rappresenta un'evoluzione importantissima e allo stesso tempo estremamente accessibile per gli sviluppatori Android: senza neppure una API aggiuntiva, il sistema operativo consente di scrivere app perfettamente adattate alla nuova UI e ai nuovi controller. Il talk presenta la piattaforma, il set-top box Sony e un'app dimostrativa.
2. Agenda
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Presentazioni
• Panoramica su Android
• Google TV
• storia
• come funziona
• sviluppo di app
• DEMO & Conclusioni
3. Speaker
Google TV - Stefano Sanna gerdavax AT gmail DOT com
Responsabile Android Lab @ Open Reply
Co-autore del libro “Android Programmazione Avanzata”
• (con E. Di Saverio, Ed. FAG)
Autore del libro “Java Micro Edition”
• (Hoepli)
Supporter @ Codemotion since 2005 (JIP Day!)
4. Per gli utenti Android è...
Google TV - Stefano Sanna gerdavax AT gmail DOT com
5. Android è altrove!
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Android non è solo il sistema operativo: è un
progetto opensource, è una community di
sviluppatori, è un’arena di manufacturer sempre
più agguerriti...
• Le sue fondamenta basate su Linux lo rendono
un’alternativa ideale a molte distribuzioni
sviluppate ad hoc per i sistemi embedded e
internet appliances
9. Google TV nella storia della piattaforma Android
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• 2007/11: Android è annunciato
• 2008/09: T-Mobile G1 è il primo device Android
• 2009/10: Arriva Android 2.0 Eclair e il Motorola Droid
• 2010/05: Arriva Android 2.1 Froyo
• 2010/06: Lancio della Google TV di prima generazione (piattaforma chiusa)
• 2010/12: Android 2.3 Gingerbread introduce NFC
• 2011/02: Android 3.0 e il Motorola Xoom aprono il mercato dei tablet
• 2011/08: È pubblicato il Google TV SDK (beta)
• 2011/10: La Google TV ora include l’Android Market
• 2011/11: Android 4.0 Ice Cream Sandwich unifica tablet e smartphone
• 2012/06: La nuova Google TV 2.0 compare su nuovi device
• 2012/07: Arriva Jelly Bean 4.1
• 2012/11: Arriva Jelly Bean 4.2
10. Disponibilità
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Tra i device Android “non convenzionali”, la
Google TV è la piattaforma ufficiale per i (futuri?)
servizi interattivi oltre smartphone e tablet
• Benché non ancora disponibile in Italia, la Google
TV è stata lanciata in Europa (UK) nel 2012 ed è
prevista la progressiva diffusione in altri Paesi
11. Due generazioni
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Prima generazione
• Sony NSZ-GT1 (Blu-ray Player)
• Sony NSX-40GT1 (Internet TV)
• Logitech Revue (set-top box)
• Seconda generazione
• LG 47G2/55G2 (Internet TV)
• Sony NSZ-GS7 (set-top box)
• Vizio Co-Star (set-top box)
• ... altri in arrivo!
12. Setup domestico
Google TV - Stefano Sanna gerdavax AT gmail DOT com
TV con ingresso HDMI
Qualsiasi decoder DVB-T, DVB-
S, DVB-C con uscita HDMI
HDMI IN HDMI OUT
Accesso ad Internet via USB 2.0 Host, con
Ethernet o Wi-Fi supporto USB storage
13. Prima generazione
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Logitech Revue
• Basato su CPU Intel ATOM
• Aggiornato a Honeycomb 3.2 a fine 2012
• Supporta ADK, HLS e USB storage
• Piuttosto economico (circa €150 con tastiera wireless)
• Non è più in vendita (Logitech ha abbandonato Google TV),
ma è possibile trovarlo ancora su ebay nuovo o usato
14. Seconda generazione
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Sony NSZ-GS7
• Primo set-top box lanciato in Europa (Luglio 2012)!
• Basato su CPU ARM
• A bordo Android Honeycomb 3.2
• Non esattamente economico
(circa €250), ma con un
controller molto potente
15. Google TV per gli sviluppatori
Google TV - Stefano Sanna gerdavax AT gmail DOT com
•
Android
• Honeycomb 3.2
• Second-screen app (Anymote)
• Native USB Host
https://developers.google.com/tv
16. Google TV API
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• La piattaforma Google TV introduce
0 (ZERO) NUOVE API
rispetto alla piattaforma standard!
• Un nuovo Content Provider e alcune costanti
forniscono gli strumenti per accedere alla lista dei
canali (solo TV) e per filtrare la piattaforma
rispetto a smartphone e tablet
17. Target Google TV: si decide tutto sul manifest
Google TV - Stefano Sanna gerdavax AT gmail DOT com
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.example.phototv" android:versionCode="1" android:versionName="1.0" >
<uses-sdk android:minSdkVersion="13" android:targetSdkVersion="15" />
<supports-screens
android:anyDensity="true" android:largeScreens="true"
android:normalScreens="false" android:smallScreens="false"
android:xlargeScreens="false" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="com.google.android.tv" android:required="true"/>
<uses-permission android:name="com.google.android.tv.permission.READ_CHANNELS">
<application
android:icon="@drawable/ic_launcher" android:label="@string/app_name" >
<activity android:screenOrientation="unspecified"
android:name=".PhotoTV" android:label="@string/app_name">
<intent-filter> [...] </intent-filter>
</activity>
</application>
</manifest>
18. Ambiente di test
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• La scelta migliore è dotarsi di un STB vero
• Se non disponibile, si può ricorrere al Google TV
Add-on:
• Gira su Linux 64bit con kernel KVM
• Non può essere eseguito su ambiente virtuale
• Non supporta streaming video (Platform 1.0)
• No STB? No emulatore? Forse c’è la via...
19. Configurazione del set-top box
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Effettuare la configurazione iniziale (lingua,
dimensione schermo, rete, Google Account...)
• Il deployment delle app avviene attraverso la rete:
le porte USB sono in modalità host e non sono
accessibili ad adb
• Fortemente consigliato avere IP statici per STB e
workstation di sviluppo
• Configurare il remote debugging (prox slide)
• Se si utilizza un Logitech Revue, impostare
l’output a 720p (sigh!) per fare screenshot
20. Configurazione adb
Google TV - Stefano Sanna gerdavax AT gmail DOT com
set-top
box
host AndroidDev:~ gdx$ adb connect GTV_IP_ADDRESS
21. Dimensioni e densità
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Le TV sono classificate come display “large”
• Schermi:
• HD Ready (720p) classificati come tvdpi, 213 dpi
• Full HD (1080p) classificati come xhdpi, 320 dpi
• 720p e 1080p realizzano la medesima risoluzione
“indipendente”: 960x540dp
22. Dimensioni, densità e distanza
Google TV - Stefano Sanna gerdavax AT gmail DOT com
TV Full HD
30” - 320dpi
smartphone
5” - 320dpi
30-50cm
300cm
23. The 10ft environment
Google TV - Stefano Sanna gerdavax AT gmail DOT com
La UI è a 10ft (circa 3m) dall’utente che
• è in un ambiente rilassante o di svago
• è in compagnia di amici, marito/moglie, figli...
• è in un ambiente debolmente illuminato
• potrebbe disporre di un impianto audio di alta qualità
• non ha una tastiera né un mouse, ma uno o più telecomandi
più o meno equivalenti
• si distrae prendendo una bibita, guardando il cellulare,
parlando con un amico
24. Un’occhiata al telecomando
Google TV - Stefano Sanna gerdavax AT gmail DOT com
D-PAD, BACK, MENU,
HOME, PiP
Un accelerometro disabilita la tastiera
QWERTY mentre si usa il trackpad e viceversa
TRACKPAD con click fisico
(come sul MacBook Pro)
Tastiera QWERTY
illuminata
25. UI
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• È assolutamente consigliato l’uso di layout dinamici
• Schermi diversi possono avere aree diverse di overscan: mai,
mai, mai... e poi mai! affidarsi a dimensioni assolute in pixel!
• La view dell’app dovrebbe essere suddivisa in tre aree:
Source:
https://developers.google.com/tv/android/docs/gtv_android_patterns
26. Good practice
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Navigation
• Le app devono prevedere l’utilizzo del D-PAD
• Tutte le viste devono essere accessibili senza touch pad
• Controlli
• Evitare la digitazione: fornire, se possibile, suggerimenti o
scorciatoie...
• Limitare l’uso del sistema di puntamento
• La trappola: “è come un grosso tablet”. Falso! Manca la
gesture “swipe”
• Si riscopre il valore del BACK fisico
27. Good practice
Google TV - Stefano Sanna gerdavax AT gmail DOT com
Source:
https://developers.google.com/tv/android/docs/gtv_android_patterns
28. Oltre le guideline (Photo TV @ GDG Fest Firenze)
Google TV - Stefano Sanna gerdavax AT gmail DOT com
NAV:
CENTER UP/DOWN/LEFT/RIGHT
MENU
NAV:
UP/DOWN
BACK
CENTER
MENU
CENTER
NAV:
LEFT/RIGHT
NAV: BACK
LEFT/RIGHT
29. È arrivato il momento di divertirsi! :-)
Google TV - Stefano Sanna gerdavax AT gmail DOT com
30. Un occhio alla domotica
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Il set-top box della Google TV...
• è sempre a casa e nella stessa stanza (altro che “mobile”!)
• è sempre nella stessa stanza
• ha una UI gigantesca e comodamente accessibile
• è sempre alimentato
• è sempre connesso alla Rete
• Può diventare l’hub per i servizi di domotica:
• interfaccia tra la casa e i suoi occupanti
• gateway della casa verso il web
31. Un sistema domotico “casereccio”
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Hardware:
• Arduino UNO rev3 o Arduino MEGA ADK rev3
• Termometro digitale 1-wire Dallas DS18B20
• Potenziometro lineare multigiri
• Sensore di umidità (opzionale)
• Electronic Brick Shield v 4.0 Pro (opzionale)
• Software:
• usb-serial-for-android
• Gauge Widget by F. Martens
33. Ok, facci vedere la demo!
Google TV - Stefano Sanna gerdavax AT gmail DOT com
MO
DE
34. Diario di bordo...
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• La Google TV ha le sue specificità:
• Lo storage USB non è montato su /mnt/sdcard o simili, ma
su un path che contiene l’ID del device connesso. Meglio
affidarsi al broadcast Intent di notifica
• Il chip FT232RL di Arduino 2009 e Arduino 10000 non
riesce a comunicare con la libreria usb-serial, dichiarata
compatibile. Arduino Uno e Mega ADK funzionano
• È consigliabile chiudere esplicitamente la connessione di
adb verso il STB: adb disconnect
I sorgenti Android e Arduino dell’app Home Control saranno
pubblicati entro due settimane sul blog dello speaker
http://www.gerdavax.it
35. Conclusioni
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Smartphone e tablet hanno stuzzicato idee
brillanti, la Google TV offre nuovi spazi e contesti
praticamente inesplorati
• “Enlarge your screen”! :-)
• è possibile raggiungere nuovi contesti di utilizzo (molto
social) e di integrazione con i device mobili (2nd screen)
• grande opportunità di coinvolgere utenti non avvezzi all’uso
di computer, tablet e smartphone
• la Google TV si candida ad essere l’hub di servizi di home
automation e ausilio alle attività domestiche
36. Ringraziamenti
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Mara Marzocchi, Ugo Landini, Marco Casario, Gosia
Sosnowska, Chiara Russo e tutto il team di Codemotion per
l’enorme lavoro che fanno ogni anno per la community
italiana degli sviluppatori software
• Matteo “dekra” Bonifazi per la preparazione della prima
versione di questa presentazione
• Freddy Martens (atstechlab.wordpress.com) per il
componente Gauge
• Il team di Arduino, per aver creato questo meraviglioso
strumento di prototipazione
37. Riferimenti e risorse
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• Google TV
• http://www.google.com/tv/
• https://developers.google.com/tv/
• http://googletv.blogspot.it/
• http://code.google.com/p/usb-serial-for-android/
• Hardware and community
• http://store.sony.com/p/NSZ-GS7/en/p/NSZGS7
• http://www.vizio.com/costar/overview
• http://www.gtvhacker.com/
38. Contatti
Google TV - Stefano Sanna gerdavax AT gmail DOT com
• mail: gerdavax AT gmail DOT com
• blog: http://www.gerdavax.it
• twitter: @gerdavax
• slideshare: http://www.slideshare.net/gerdavax
• Linkedin: http://www.linkedin.com/in/gerdavax