50
Google TV GDG@BCN

Google tv

Embed Size (px)

DESCRIPTION

Google Dev Fest Bacelona 11/2012

Citation preview

Page 1: Google tv

Google TV GDG@BCN

Page 2: Google tv

GDG@BCN

What is Google TV Developing for TV Developing for Google TV Developing Second screens

Adapting sites/webapps

Page 3: Google tv

What is Google TV

Page 4: Google tv

What is Google TV

Page 5: Google tv

What is Google TV

Page 6: Google tv

What is Google TV

Page 7: Google tv

What is Google TV

Page 8: Google tv

What is Google TV

Page 9: Google tv

TV

Page 10: Google tv

TV

Page 11: Google tv

TV

Page 12: Google tv

TV

Page 13: Google tv

GTV

Page 14: Google tv

GTV

Page 15: Google tv

GTV

px = dp * (dpi/160)

Page 16: Google tv

GTV

px = dp * (dpi/160)

dp=(px/dpi) * 160

Page 17: Google tv

GTV

px = dp * (dpi/160)

dp=(px/dpi) * 160

dp1 = (720 / 213) * 160

dp2 = (1080 / 320) * 160

Page 18: Google tv

GTV

px = dp * (dpi/160)

dp=(px/dpi) * 160

dp1 = (720 / 213) * 160

dp2 = (1080 / 320) * 160

dp1 = dp2

Page 19: Google tv

GTV

Page 20: Google tv

GTV

android.hardware.bluetooth android.hardware.sensor.barometer

android.hardware.camera android.hardware.sensor.compass

android.hardware.location.gps android.hardware.telephony

android.hardware.microphone android.hardware.touchscreen

android.hardware.nfc android.hardware.touchscreen.multitouch

android.hardware.sensor.accelerometer android.hardware.sensor.light

Page 21: Google tv

GTV

Page 22: Google tv

GTV

Page 23: Google tv

GTV

Page 24: Google tv

GTV

Page 25: Google tv

GTV

http://code.google.com/p/googletv-android-samples/source/browse/#git%2FLeftNavBarDemo http://code.google.com/p/googletv-android-samples/source/browse/#git%2FLeftNavBarLibrary

Page 26: Google tv

GTV

private LeftNavBar mLeftNavBar;...

private LeftNavBar getLeftNavBar() { if (mLeftNavBar == null) {

mLeftNavBar = new LeftNavBar(this); } return mLeftNavBar;}

Page 27: Google tv

GTV

Page 28: Google tv

GTV

Page 29: Google tv

GTV

Page 30: Google tv

GTV

Page 31: Google tv

GTV

<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>

Page 32: Google tv

GTV

<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>

<uses-feature android:name="com.google.android.tv" android:required="true"/>

Page 33: Google tv

GTV

<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>

<uses-feature android:name="com.google.android.tv" android:required="true"/>

<supports-screens android:largeScreens="true"/>

Page 34: Google tv

GTV

#F1F1F1

BOLD fonts

Dark background

Page 35: Google tv

GTV

#F1F1F1

BOLD fonts

Dark background

Short lines / Line Spacing

Page 36: Google tv

GTV

#F1F1F1

BOLD fonts

Dark background

Short lines / Line Spacing

UI feedback. StateListDrawable

Page 37: Google tv

GTV

#F1F1F1

BOLD fonts

Dark background

Short lines / Line Spacing

UI feedback. StateListDrawable

Low Volume

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Page 38: Google tv

GTV

#F1F1F1

BOLD fonts

Dark background

Short lines / Line Spacing

UI feedback. StateListDrawable

Low Volume

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Page 39: Google tv

Second-Screen Apps

Page 40: Google tv

Second-Screen Apps

Discovers a Google TV device (mDNS)

Page 41: Google tv

Second-Screen Apps

Discovers a Google TV device (mDNS)

Authenticates itself with the Google TV device.

Page 42: Google tv

Second-Screen Appsprivate void sendKeyEvent(final int keyEvent) { // create new Thread to avoid network operations on UI Thread new Thread(new Runnable() { public void run() { anymoteSender.sendKeyPress(keyEvent); } }).start();

Page 43: Google tv

Second-Screen Appsprivate void sendKeyEvent(final int keyEvent) { // create new Thread to avoid network operations on UI Thread new Thread(new Runnable() { public void run() { anymoteSender.sendKeyPress(keyEvent); } }).start();

final Intent intent = new Intent();intent.setAction ("com.example.googletv.myApp.VIEW_ACTION");anymoteSender.sendUrl (intent.toUri(Intent.URI_INTENT_SCHEME));

Page 44: Google tv

Second-Screen Appsprivate void sendKeyEvent(final int keyEvent) { // create new Thread to avoid network operations on UI Thread new Thread(new Runnable() { public void run() { anymoteSender.sendKeyPress(keyEvent); } }).start();

final Intent intent = new Intent();intent.setAction ("com.example.googletv.myApp.VIEW_ACTION");anymoteSender.sendUrl (intent.toUri(Intent.URI_INTENT_SCHEME));

final Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://<webpage_url>");anymoteSender.sendUrl (intent.toUri(Intent.URI_INTENT_SCHEME));

Page 45: Google tv

Second-Screen Apps

Google TV Remote: http://goo.gl/ViqXE

Page 46: Google tv

Chrome

Page 47: Google tv

Chrome

HTML5 / CSS3

jQuery - Clousure

Page 48: Google tv

Chrome

HTML5 / CSS3

jQuery - Clousure

Optimized Templates

Page 49: Google tv

Chrome

Page 50: Google tv

Q&A

References:https://developers.google.comhttp://code.google.com/p/googletv-android-sampleshttp://en.wikipedia.org/wiki/10-foot_user_interfacehttps://developers.google.com/tv/web/docs/spotlight http://code.google.com/p/anymote-protocol/https://code.google.com/p/google-tv-chrome-extensions/https://developers.google.com/tv/android/docs/gtv_presentations

Iñaki Villar [email protected]@inyaki_mwc+Iñaki Villar