google tv gdg_devfest_firenze2012
DESCRIPTION
Talk di Stefano Sanna e Matteo Bonifazi alla DevFest 2012 @ FirenzeTRANSCRIPT
Enlarge your screen :-)
Matteo Bonifazi - Stefano Sanna
GDG Roma
Florence - 2012/10/19
Introducing the Google TV
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Let’s talk about...• Speakers
• Android happens elsewhere• Google TV
• timeline
• how it works
• writing apps for the Google TV
• beyond the TV: second screen and Anymote
• DEMO
• Conclusion
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Ladies & gentlemen...
• Matteo Bonifazi• Android Developer @ Open Reply Android Lab
• Member of GDG L-Ab Roma
• Stefano Sanna• Head of Open Reply Android Lab
• Author (with E. Di Saverio) of “Android Programmazione Avanzata” (Ed. FAG)
Enlarge your screenMatteo Bonifazi - Stefano Sanna
For most people Android is...
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Android happens elsewhere
• “Beyond the product” (being an operating system), Android is a rich eco-system: open source, widely supported by manufacturers and developers...
• Its strong and stable Linux foundation makes Android an affordable alternative to “typical Linux distribution” for embedded systems
Today
Tomorrow
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Today
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Google TV
• Among these “unconventional” Android devices, the Google TV is the official platform for (upcoming?) interactive services “beyond smartphones and tablets”
• Although it has still not been announced in Italy, Google TV has landed in Europe (UK) this year and it will be available in other country later in 2012
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Timeline• 2007/11
• Android is announced
• 2008/09• T-Mobile G1 launched
• 2010/06• Launch of Google TV 1st gen as a “closed platform”
• 2011/02• Motorola Xoom officially brings Android into the tablet market
• 2011/08• Google TV SDK (beta) is published: the platform is now open!
• 2011/10• Google TV update includes Android Market
• 2011/11• Ice Cream Sandwich merges smartphone and tablets in a single platform
• 2012/06• Google TV 2.0 and Jelly Bean mark new Android evolution
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Google TV hardware
• First generation devices• Sony NSZ-GT1 (Blu-ray Player)
• Sony NSX-40GT1 (Internet TV)
• Logitech Revue (set-top box)
• New generation devices• LG 47G2/55G2 (Internet TV)
• Sony NSZ-GS7 (set-top box)
• Vizio Co-Star (set-top box)
• More to come later this year...
Enlarge your screenMatteo Bonifazi - Stefano Sanna
How it works
HDMI OUTHDMI IN
Any TV with HDMI input
Any DVB-T, DVB-S, DVB-C decoder with HDMI output
Internet connection via Ethernet or WiFi
Optional external storage via USB 2.0
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Logitech Revue• First generation of Google TV device• Based on Intel ATOM CPU
• Recently updated to Honeycomb 3.2• Supports ADK, HLS and USB storage• Affordable (about €150 with keyboard)
• Unfortunately it is no longer sold... but it can be easily found used or brand-new on ebay! :-)
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Sony NSZ-GS7• Second generation of Google TV• First STB launched in Europe (July 2012)!• Based on ARM CPU• Equipped with
Honeycomb 3.2• Not so cheap
(about €250) with enhanced remote controller
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Google TV main features
• For end-users• Rent movies and TV episodes on demand
• Youtube
• Chrome
• 3rd party apps
• Movies, pictures, music on local storage
• For developers• Honeycomb 3.2 platform
• Rich, powerful and well-known Android multiscreen API
• Google Play Store for distributing apps
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Google TV API
• The Google TV platform consist of
over the “standard” platform!• A new Content Provider and a few constants
provide the way to address channel switching and filter platform specific features
• Android SDK and Eclipse are the basic toolkit for targeting the Google TV!
0 (ZERO) NEW API
Enlarge your screenMatteo Bonifazi - Stefano Sanna
• The AndroidManifest.xml rules:
Targeting the Google TV
<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>
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Test environment
• The best is to have a real set-top box
• If not available, install the Google TV Add-on• Runs on Linux 64bit with KVM Kernel
• Can’t run on virtual environments
• Does not support video streaming (as for Platform 1.0)
• The DIY way: a old-fashioned Android 1.x device (HTC Dream, HTC Magic, Samsung Galaxy) with D-PAD can be used to test navigation!
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Configure the set-top box
• Run the initial configuration (language, screen size, network, Google Account...)
• Apps deployment and debugging is over the network connection. USB ports work in host mode.
• Try to have a fixed IP address for both Google TV STB and development workstation
• Enable remote debugging and assign remote debugging host IP• If using a Logitech Revue: set resolution to 720p (sigh!) to get
screenshots via ADB
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Let them find each other... :-)
AndroidDev:~ gdx$ adb connect GTV_IP_ADDRESS
set-top box
host
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Size and density
• The TV screen is classified as “large”
• HD Ready TV (720p) are classified as tvdpi density, 213 dpi
• Full HD TV (1080p) are classified as xhdpi density, 320 dpi
• 720p and 1080p have the same “independent” resolution: 960x540dp
Size, density and distance
30-50cm
300cm
smartphone5” - 320dpi
TV Full HD30” - 320dpi
Enlarge your screenMatteo Bonifazi - Stefano Sanna
The 10ft environment
• The UI is at 10ft (about 3m) from the user which• is in a relaxing/funny environment
• is shared with family and friends
• is in a dimmed environment
• provides (high quality) audio that is not (usually) optional
• has no keyboards and mouse/touchpads, that are (usually) replaced by compact remote controllers with simple 5-way navigation (aka D-PAD)
Enlarge your screenMatteo Bonifazi - Stefano Sanna
A closer look to the controllerD-PAD, BACK, MENU,
HOME, PiP
BACK-LIGHT QWERTY KEYBOARD
TRACKPAD with hard button (as in MBP)
An embedded accelerometer disables the QWERTY keyboard when using the trackpad, which is disabled when using
the back keyboard
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Good practices• UI
• Dynamic layouts and relative sizes are encouraged
• Different screens may have different overscan areas: never rely on physical pixels!!!
• App layout should be divided in three areas: global, contextual and detail
Source:https://developers.google.com/tv/android/docs/gtv_android_patterns
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Good practices• Navigation
• Every App should be implemented according to D-PAD navigability
• All the controls in each View has to be get through the D-PAD
• Controls• Avoid long typing: try, if possible, to suggest texts,
shortcuts...
• Limit use of pointing device
• False friend: “it seems abig tablet”. It is not.The user can’t swipe onit!
• BACK is your friend!Source:https://developers.google.com/tv/android/docs/gtv_android_patterns
Enlarge your screenMatteo Bonifazi - Stefano Sanna
DEMO
a photo viewer
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Photo viewer “views”Album selection
Album overview
Picture browser
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Main and sub navigation• The developer has to identify main navigation (on
the detail view, where the user spends more of his time) and sub navigation (contextual view, used less often)
• In the photo browser app:• Likelihood, the user will spend most of time browsing photos of an
album, instead of jumping between albums
• The main navigation is the photo browser within an album
• The sub navigation is the selection of an album
• The main navigation should performed using just the D-PAD
• The sub navigation could be accessed using secondary button (e.g., MENU and BACK)
Google will forgive us for this... ;-)
NavigationCENTER
CENTER
NAV:LEFT/RIGHT
CENTER
BACK
BACK
MENUNAV:
UP/DOWN
NAV:UP/DOWN/LEFT/RIGHT
MENU
NAV:LEFT/RIGHT
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Beyond the TV
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Second Screen applications• Enhance interactions between Google TV and
others device ( smartphone,tablets,etc.)• Adding more functionality for the Google TV
itself• Huge opportunities to develop new different
kind of application
Able Remote: Transform your Android device in a custom Google TV Remote
Multiplayer Games: Android device is the joystick and the TV is the controller
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Anymote• Anymote protocol is IP layer protocol
• Devices use TLS/SSL to avoid sniffing issues
• Thanks to Anymote service Google TV stb can receive and respond to Anymote messages
• In order to communicate with the Google TV, a remote app does:• Identifies Google TV
• Authenticates the device through Paring Protocol
• Sends events (connection, key, mouse, trackball...)
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Conclusions
• Have fun with smartphones and tablet, but don’t forget that it is only the beginning!
• Google TV enlarges “screens and opportunities”• new entertainment machine for people not so comfortable
with computers
• second screen applications may enhance UX and encourage gaming
• Google TV could be the cornerstone of new home automation application and services: the STB is always powered, always connected, always accessible
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Resources
• Google TV• http://www.google.com/tv/
• https://developers.google.com/tv/
• http://googletv.blogspot.it/
• Hardware and community• http://store.sony.com/p/NSZ-GS7/en/p/NSZGS7
• http://www.vizio.com/costar/overview
• http://www.gtvhacker.com/
Enlarge your screenMatteo Bonifazi - Stefano Sanna
Contacts
• Matteo Bonifazi• dekra06 AT gmail DOT com
• @mbonifazi
• Stefano Sanna• gerdavax AT gmail DOT com
• @gerdavax
• http://www.gerdavax.it
• http://www.androidavanzato.it
Thank you