Gearing Up Google Glass Development - August 2013

Preview:

DESCRIPTION

Slides for the talk given at Frontend Conference Zurich, Switzerland

Citation preview

max(imiliano) (@firt)man

GEARING UP

WITH GOOGLE GLASS

DEVELOPMENT

Zürich, Aug 29th, 2013

¡-­‐)Thursday, August 29, 13

mobile+web developer

maximiliano @firt

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

we’ll talk about glass

1- Experience2- Glassware3- Timeline 4- Browser5- Code!

Thursday, August 29, 13

questions

yes, please

At the end or during the conference

Thursday, August 29, 13

DISCLAIMER

Thursday, August 29, 13

Thursday, August 29, 13

HOLES

Thursday, August 29, 13

Thursday, August 29, 13

1- glass experience

Thursday, August 29, 13

quick video( )

Thursday, August 29, 13

MYTHS

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

Noti!cations on your head

Thursday, August 29, 13

Noti!cations on your head

Thursday, August 29, 13

Your content is not so important

Thursday, August 29, 13

specs

nHD transparent 640x36025" - 2.5m / 8 away

Thursday, August 29, 13

specs

Sensors

Thursday, August 29, 13

specs

Camera

Thursday, August 29, 13

specs

Multi-touch panel

Thursday, August 29, 13

specs

wi!bluetooth

Thursday, August 29, 13

specs

Android 4.0

Thursday, August 29, 13

specs

bone conductiontransducer

Thursday, August 29, 13

quick demo( )

Thursday, August 29, 13

the experience

- different device- not transparent apps - limited AR

Thursday, August 29, 13

2- glassware

Thursday, August 29, 13

Thursday, August 29, 13

nativevs

web

Thursday, August 29, 13

today =cloud

Thursday, August 29, 13

today =cloud

Mirror API

Thursday, August 29, 13

tomorrow =native

vscloud

Thursday, August 29, 13

tomorrow =native GDK

vscloud Mirror API

Thursday, August 29, 13

quick demo( )

Thursday, August 29, 13

Thursday, August 29, 13

Thursday, August 29, 13

https

Thursday, August 29, 13

httpscontent

Thursday, August 29, 13

httpscontent

actions

Thursday, August 29, 13

https

http(s)

content

actions

Thursday, August 29, 13

glassware

Thursday, August 29, 13

glassware

Thursday, August 29, 13

glassware

- today vs tomorrow- Mirror API- GDK- create a new architecture

Thursday, August 29, 13

3- timeline

Thursday, August 29, 13

timeline

past, now, future

Thursday, August 29, 13

quick demo( )

Thursday, August 29, 13

timeline

timeline items = card

Thursday, August 29, 13

timeline

card

Thursday, August 29, 13

timeline

standard cardpinned card

system card pastpastfuture

Thursday, August 29, 13

httpscontent

Thursday, August 29, 13

it's probable that the user will never see ourcard

(

)

Thursday, August 29, 13

timeline

content type

Thursday, August 29, 13

timeline

textcontent type

Thursday, August 29, 13

timeline

imagevideo

content type

Thursday, August 29, 13

timeline

htmlcontent type

Thursday, August 29, 13

timeline

card actions = menu items

Thursday, August 29, 13

timeline

menu items 1011 or 2 words & iconno argumentssystem vs custom

Thursday, August 29, 13

How can I listen to actions?

Thursday, August 29, 13

http(s)actions

Thursday, August 29, 13

How to reply?

Thursday, August 29, 13

httpscontent

Thursday, August 29, 13

timeline

contextual eventsgeolocation

Thursday, August 29, 13

timeline

contextual eventsgeolocationshare

Thursday, August 29, 13

timeline

contextual eventsgeolocationsharelaunch "ok glass" menu

Thursday, August 29, 13

http(s)actions

Thursday, August 29, 13

timeline

Invocation voice commands

take a notepost an update

Thursday, August 29, 13

timeline

- card is the king- menu items <> endpoint- contextual events - server-side intelligence

Thursday, August 29, 13

4- the browser

Thursday, August 29, 13

browser

invocationgoogle searchcard's action

Thursday, August 29, 13

quick demo( )

Thursday, August 29, 13

browser

interactionscrollpoint and click

Thursday, August 29, 13

browser

responsive web designmobile user agentwidth: 427pxpixel ratio: 1.5

Thursday, August 29, 13

browser

html5video, audiodevicemotionscroll and touch eventsno geo, speech, camera yet

Thursday, August 29, 13

browser

- better than it looks like- experimental- new ideas will come- card + html5

Thursday, August 29, 13

5- code!

Thursday, August 29, 13

code!

Mirror APIOAuth 2.0RESTful servicesJSON

Thursday, August 29, 13

code!

1- Use HTTP2- Use official APIs

Thursday, August 29, 13

new cardPOST /mirror/v1/timeline HTTP/1.1Host: www.googleapis.comAuthorization: Bearer {auth token}Content-Type: application/jsonContent-Length: 26

{ "text": "Hello world" }

HTTP

code!

Thursday, August 29, 13

new card$card = new Google_TimelineItem();$card->setText("Hello World");

$parameters = array();$service->timeline ->insert($card, $parameters);

PHP

code!

Thursday, August 29, 13

new card{ "kind": "glass#timelineItem", "id": "1234567890", "created": "2012-09-25", "updated": "2012-09-25", "text": "Hello world"}

(just an example)

code!

Thursday, August 29, 13

html!

{ "html": "<h1>Hello world<h1> <p>Sorry, no marquee support</p> " }

JSON

code!

Thursday, August 29, 13

code!

static contentall semantic containerstables, listscustom cssno <script> <link> <iframe>

html5 on cards

Thursday, August 29, 13

map images{ "html": "<h1>Your wife's location<h1> <img src='glass://map?w=240&h=360&marker=0;42.369590,-71.107132&marker=1;42.36254,-71.08726 height=360 width=240>"

}

JSON

code!

Thursday, August 29, 13

menu items{ "text": "Hello world", "menuItems": [    {      "action": "REPLY"    }  ] }

JSON

code!

Thursday, August 29, 13

code!

built-in menu items

Thursday, August 29, 13

code!

built-in menu itemsshare

Thursday, August 29, 13

code!

built-in menu itemssharenavigate to

Thursday, August 29, 13

code!

built-in menu itemssharenavigate toread aloud

Thursday, August 29, 13

code!

built-in menu itemssharenavigate toread alouddelete

Thursday, August 29, 13

code!

built-in menu itemssharenavigate toread alouddelete

voice call

Thursday, August 29, 13

code!

built-in menu itemssharenavigate toread alouddelete

voice callreply

Thursday, August 29, 13

code!

built-in menu itemssharenavigate toread alouddelete

voice callreplytoggle pin

Thursday, August 29, 13

code!

built-in menu itemssharenavigate toread alouddelete

voice callreplytoggle pinview website

Thursday, August 29, 13

voice callreplytoggle pinview website

code!

built-in menu itemssharenavigate toread alouddeleteYOU CAN CHANGE TITLE AND ICON

Thursday, August 29, 13

code!

bundlesMulti-page card Different cards over time

Thursday, August 29, 13

I don't have a Glass!!!

Thursday, August 29, 13

I don't have a Glass!!!

Don't steal one

Thursday, August 29, 13

I don't have a Glass!!!

Don't steal one

Thursday, August 29, 13

I don't have a Glass!!!

Playground (official)

Thursday, August 29, 13

I don't have a Glass!!!Glasssim.com

Thursday, August 29, 13

I don't have a Glass!!!

Xenologer for AndroidMirror API Emulator by Scarygami

Thursday, August 29, 13

I don't have a Glass!!!

At the end, you will need onegoogle.com/glass

Thursday, August 29, 13

code!

- mirror API: HTTP & JSON- cards, menu items- experimental emulation

Thursday, August 29, 13

6- what's next

Thursday, August 29, 13

what's next

- GDK - Localization- More Invocation Voice commands

For Glass

Thursday, August 29, 13

what's next

- developers.google.com/glass- youtube.com/user/GoogleDevelopers

For You

Thursday, August 29, 13

wrapping up

Thursday, August 29, 13

glass

- understand the experience- mirror api vs gdk vs browser- Glassware cloud-based- it's just the beginning

Thursday, August 29, 13

Thursday, August 29, 13

you can reach a good experience

Pictures)from)freedigitalphotos.net)

Thanks!

!rtman@gmail.com@!rt

!rt.mobi/pmw

¡-­‐)Ask me for 50% off

Thursday, August 29, 13