enlarge your screen: introducing the google tv

37
Enlarge your screen :-) Matteo Bonifazi - Stefano Sanna GDG Roma Florence - 2012/10/19 Introducing the Google TV

Upload: stefano-sanna

Post on 09-May-2015

1.455 views

Category:

Technology


1 download

DESCRIPTION

This talk, presented at GDG DevFest Florence 2012, provides an overview of the Google TV platform from a developer's perspective.

TRANSCRIPT

Page 1: Enlarge your screen: introducing the Google TV

Enlarge your screen :-)

Matteo Bonifazi - Stefano Sanna

GDG Roma

Florence - 2012/10/19

Introducing the Google TV

Page 2: Enlarge your screen: 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

Page 3: Enlarge your screen: introducing the Google TV

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)

Page 4: Enlarge your screen: introducing the Google TV

Enlarge your screenMatteo Bonifazi - Stefano Sanna

For most people Android is...

Page 5: Enlarge your screen: introducing the Google TV

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

Page 6: Enlarge your screen: introducing the Google TV

Today

Page 7: Enlarge your screen: introducing the Google TV

Tomorrow

Page 8: Enlarge your screen: introducing the Google TV

Enlarge your screenMatteo Bonifazi - Stefano Sanna

Today

Page 9: Enlarge your screen: introducing the Google TV

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

Page 10: Enlarge your screen: introducing the Google TV

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

Page 11: Enlarge your screen: introducing the Google TV

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...

Page 12: Enlarge your screen: introducing the Google TV

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

Page 13: Enlarge your screen: introducing the Google TV

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! :-)

Page 14: Enlarge your screen: introducing the Google TV

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

Page 15: Enlarge your screen: introducing the Google TV

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

Page 16: Enlarge your screen: introducing the Google TV

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

Page 17: Enlarge your screen: introducing the Google TV

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>

Page 18: Enlarge your screen: introducing the Google TV

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!

Page 19: Enlarge your screen: introducing the Google TV

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

Page 20: Enlarge your screen: introducing the Google TV

Enlarge your screenMatteo Bonifazi - Stefano Sanna

Let them find each other... :-)

AndroidDev:~ gdx$ adb connect GTV_IP_ADDRESS

set-top box

host

Page 21: Enlarge your screen: introducing the Google TV

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

Page 22: Enlarge your screen: introducing the Google TV

Size, density and distance

30-50cm

300cm

smartphone5” - 320dpi

TV Full HD30” - 320dpi

Page 23: Enlarge your screen: introducing the Google TV

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)

Page 24: Enlarge your screen: introducing the Google TV

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

Page 25: Enlarge your screen: introducing the Google TV

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

Page 26: Enlarge your screen: introducing the Google TV

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

Page 27: Enlarge your screen: introducing the Google TV

Enlarge your screenMatteo Bonifazi - Stefano Sanna

DEMO

a photo viewer

Page 28: Enlarge your screen: introducing the Google TV

Enlarge your screenMatteo Bonifazi - Stefano Sanna

Photo viewer “views”Album selection

Album overview

Picture browser

Page 29: Enlarge your screen: introducing the Google TV

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... ;-)

Page 30: Enlarge your screen: introducing the Google TV

NavigationCENTER

CENTER

NAV:LEFT/RIGHT

CENTER

BACK

BACK

MENUNAV:

UP/DOWN

NAV:UP/DOWN/LEFT/RIGHT

MENU

NAV:LEFT/RIGHT

Page 31: Enlarge your screen: introducing the Google TV

Enlarge your screenMatteo Bonifazi - Stefano Sanna

Beyond the TV

Page 32: Enlarge your screen: introducing the Google 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

Page 33: Enlarge your screen: introducing the Google TV

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...)

Page 34: Enlarge your screen: introducing the Google TV

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

Page 35: Enlarge your screen: introducing the Google TV

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/

Page 36: Enlarge your screen: introducing the Google TV

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

Page 37: Enlarge your screen: introducing the Google TV

Thank you