TIMOTHY JORDAN: So this is a talk about Glass--
in specific, building new experiences for Glass.
I'm Timothy Jordan--
that's me.
Hi.
I'm a developer advocate at Google on Glass.
If you want to get in touch online after this, go ahead
and check out google.com/+timothyjordan.
So what are we going to talk about today?
Project Glass, of course, which is part of Google X, the
moonshot factory at Google.
Moonshots are these radical ideas for changing the world
and improving the way that we live.
For more on Google X and moonshots, you really should
check out Astro's talk tomorrow.
He'll be here in the afternoon.
This particular moonshot, Project Glass, is about our
relationship to technology.
It's about technology that's there when you want it but out
of the way when you don't.
What do I mean by that?
Last night I went to this event.
How many of us went to parties last night?
Just a few?
OK, everyone.
So as people were taking the stage,
this weird thing happened.
And it happens at South By, but it happens at other
places, too-- all of these screens went up into the air.
Tablets and phones--
all of these things mediating these people's experience with
what was in front of them.
It's weird because it felt like they were watching the
screens instead of the event.
I mean, we all love technology and what it can give us-- the
ability to take and share pictures--
but it feels like tech is often getting in the way more
than it needs to.
And that's what we're addressing with Project Glass.
It's so that you can still have access to the technology
that you love but it doesn't take you out of the moment.
I'm going to play a video.
Many of you have already seen this video, but I want to play
it because I love it.
But also, it's really good at showing you what it's like to
wear Glass.
Oops, I think I need to hook in a cable for the video.
OK, that'll take just a second.
How is everyone?
[LAUGHTER]
AUDIENCE: Do you see anything with those glasses right now?
TIMOTHY JORDAN: I will answer those questions in a moment.
Why don't I tell you a joke?
This is a joke that I've been thinking about a lot lately
because we've been doing demos.
You want to hear it?
It's a computer science joke.
AUDIENCE: Yeah.
TIMOTHY JORDAN: OK.
So a mechanical engineer, an electrical engineer, and a
computer scientist are riding along in a car and the car
starts making this really funny noise.
And the mechanical engineer's like, well, why
don't we pull over?
I'm going to pop the hood and hit it with a big old hammer.
The electrical engineer says, that's kind of crazy.
How about we pull over and I'll hook up my computer.
We'll see what code it's giving and we'll
know what to do then.
The computer scientist says, oh, all that is
just so much work.
We're going to stop the car, turn it off, get out, get back
in, turn it on, and see if it's still making the noise.
[LAUGHTER]
TIMOTHY JORDAN: OK.
I think we have audio.
[WIND BLOWING]
[FLAMES WHOOSHING]
[ROCK MUSIC PLAYING]
MALE SPEAKER: OK, Glass, record a video.
FEMALE SPEAKER: This is it.
We're on in two minutes.
MALE SPEAKER: OK, Glass.
Hang out with the flying club.
MALE SPEAKER: Google photos of tiger heads.
Hmm.
MALE SPEAKER: You ready?
You ready?
FEMALE SPEAKER: Right there.
OK, Glass.
Take a picture.
CHILD: I got it!
[ROCK MUSIC PLAYING]
MALE SPEAKER: Go!
Woohoo!
MALE SPEAKER: Being upside down.
MALE SPEAKER: Holy [BLEEP].
That is awesome.
CHILD: Whoa, look at that snake!
FEMALE SPEAKER: OK, Glass, record a video!
Whooo!
[SCREAMING]
MALE SPEAKER: After this bridge, first exit.
MALE SPEAKER: [INAUDIBLE].
MALE SPEAKER: Kelly!
Up!
[ROCK MUSIC PLAYING]
MALE SPEAKER: OK, 812, right there.
[ROCK MUSIC PLAYING]
[APPLAUSE]
MALE SPEAKER: Yeah.
Celebrate!
FEMALE SPEAKER: Wow.
MALE SPEAKER: Google, say delicious in Thai.
GOOGLE GLASS: [FOREIGN LANGUAGE].
MALE SPEAKER: Mm, [INAUDIBLE].
FEMALE SPEAKER: Google jellyfish.
MALE SPEAKER: Ha.
Oh, let's see.
It's beautiful.
[APPLAUSE]
TIMOTHY JORDAN: You can clap.
It's OK.
So this is the idea, that by bringing technology closer we
can get it more out of the way.
It seems a little ironic and it's a bit of a crazy idea but
that's why it's a moonshot.
All right.
So let me frame this talk just a little bit.
For more information on the product, Glass, go to
google.com/glass.
We've got a bunch of information up there.
Today, I'm going to be talking to developers, those
interested in building new experiences for Glass.
So for the rest of this session, I'm going to be
talking about APIs and building with Glass.
And you might ask, why are we doing this now, because we're
not selling Glass and we're not releasing any APIs today.
In fact, I should let you know-- we're not done.
It's early days yet, and some things that you see today
could change before we release the API.
But we're here because at South by Southwest, it's
filled with builders and visionaries and thinkers and
the conversation that you have out in the public is an
inspiration to us as we continue to work on Glass.
So we want your feedback and we want to kickstart the
conversation with some more information about how these
APIs are going to work.
Does that sound like fun?
AUDIENCE: Woo!
TIMOTHY JORDAN: OK.
Let me talk a little bit more about that conversation,
because I think this is a really key point.
So at Google I/O last year, we had people sign up for what we
called the Explorer program and it was a chance to get
early access to Glass.
As they came up and they signed up, we gave them a
glass bar, something that looked a little bit like this.
And I was so excited.
They gave me one, too.
This is mine and I'm number 2182.
It's a high number, I know.
I went home and I took a photo of this glass bar and I put it
on Google+.
I posted it to all my friends.
I posted it publicly so that everybody could see how
excited I was.
And it was interesting.
This weird thing happened right after that-- we started
seeing a whole bunch of these photos go up, and people were
doing this crazy thing.
They weren't just taking a photo of the bar or talking
about the Explorer program--
they put the bar out there where they live and took a
photo, or in front of the people that they love, or in
front of things that they care about, or the places that made
them feel home.
And it was then that we started to figure out that
this was more than just a group of people
signing up for a device.
It was a bunch of people that wanted
to be part of something.
OK.
This is going to be kind of crazy, but I'm going to ask
you a few questions.
Maybe the people up here and I'll repeat you say.
Why did you come to this session today?
AUDIENCE: I knew about the technology and I wanted to see
it in person.
TIMOTHY JORDAN: You wanted to see the technology.
What else?
Anyone, just shout it out.
AUDIENCE: Wondering how it's going to change UX.
TIMOTHY JORDAN: Wondering how it's going to change user
experience.
Yes?
AUDIENCE: Learn something new we don't already know about.
TIMOTHY JORDAN: Learn something new that you don't
already know about.
Yeah, what else?
AUDIENCE: Wanted to be on your spank bank.
TIMOTHY JORDAN: I don't know what that means, so I'm not
going to repeat it.
Over here?
AUDIENCE: Get to try Google Glass.
TIMOTHY JORDAN: You won't get to try Google Glass today.
Come on, seriously-- what else?
AUDIENCE: Because this is the next thing, right?
We're going from-- technology is getting closer
and closer to us.
TIMOTHY JORDAN: Technology is getting closer and closer to
us and this is the next thing.
It's where things are going.
Do something great.
Now the thing is that I have this conversation a lot, and
there's a couple new things today.
Again, I don't know what you said, but I--
[LAUGHTER]
AUDIENCE: He wants to be close to you.
TIMOTHY JORDAN: Yeah.
There's a few things that come up time and time again.
How is this going to change the user
experience and what's next?
People keep talking about the future of technology.
And that's the thing is that we as a group, we're the
pioneers that get to decide how this fits into our lives.
And with your help, we can do that.
This is about a conversation of all of us together thinking
about this new generation of technology, thinking about
something that doesn't compete with but
blends into your life.
After all, this is the future that we're talking about, and
that's where we're going to start, that one big theme,
that we're building new paradigms for how technology
and information works for people.
So let's start there.
These are the four things that we're going
to talk about today.
I'm going to give you a demo.
That's exciting, no?
OK.
It's exciting for me.
I'm going to show you a demo and I'm going to give you a
quick look at the Glass UI live onstage.
We're going to look at the Google Mirror API.
I'm going to give you a sneak peek of what's going to be
available to developers.
It's not everything, but a quick overview.
And then we're going to go through some guidelines.
These are things that we've learned developing with Glass
over the last many, many months.
And these rules are going to help us all sort of navigate
this new technology.
And then finally, I'm going to go through some great examples
of new experiences that we've been building
with some of our friends.
Sound like fun?
AUDIENCE: Whoo!
TIMOTHY JORDAN: [CHUCKLE]
There's so many of you.
OK, demo.
Now, this is going to be interesting.
I was talking with the folks back home--
I really wanted to show y'all what it was like, what I was
seeing on Glass specifically.
To experience Glass, you really need to put it on but
I'm going to give you an overview and do my best to
give you the feeling live today.
To do it, we had to do some hacking.
I've got a cable connected to this demo device, the specific
device I'll be using for demos, and it's going to
transit my screen through the laptop and on there.
It's going to be a little bit more choppy and it's going to
be a little delayed.
It's way more swift and smooth actually on Glass.
But the team wouldn't let me bring 1,000 to Texas, so this
is what we've got to do.
All right.
Let me set this up.
I don't know what's going to happen.
Hopefully it'll be fun.
Ooh.
OK, I think it's going to work.
All right.
So first off, when I put on Glass, notice that it's not in
my line of sight.
That's really key.
Now, you've probably seen a few people walking around
South By wearing Glass.
And you'll notice that none of them have it right in
front of their eye.
And that's really important because as I'm wearing Glass,
I still want to be able to connect with you and make eye
contact, and I also don't want anything in the
way of what I'm doing.
But we want Glass in our field of vision, so all I have to do
is look up quickly and there's the screen.
So on the side here, as you may have
guessed, is a touch pad.
I'm going to go ahead and tap on that and it's going to take
me to the home screen.
If I go ahead and slide down, it'll dismiss--
kind of like the back button on your Android phone.
And it can also hear me.
OK, Glass, Google, how do you say thank you in Japanese?
Oh, arigato.
So you'll see that--
you can clap as much as you want.
It's totally fine.
[APPLAUSE]
TIMOTHY JORDAN: So that was a live Google search right
there, and it gave me a result on the screen
that I could see.
And it also said to me how to pronounce arigato.
You didn't hear it because that was audio just for me.
You notice I don't have anything in my ear so I still
hear all the ambient audio around me, but I can also hear
something from Glass.
All right.
Do you mind if I take a picture?
AUDIENCE: Go for it.
TIMOTHY JORDAN: OK, so we'll do this one.
OK, Glass, take a picture.
Hey, there we are.
So you'll notice I can turn Glass on by looking
up like I just did.
And if I want, I can scroll to that photo.
And if I do a quick, hey, how you doing, it'll nudge the
screen to dismiss it.
So with these input options-- voice, touch on the side, and
some basic head gestures--
I can control Glass in just about any situation.
Let's do a couple more things.
So I'm going to go to that picture I just took.
I'm here at the home screen.
I'm going to slide forward.
There's that picture--
don't you all look wonderful?
I'm going to tap right on that picture,
and I get card options.
Now, this picture is a timeline card.
And on there, when I tap, I can get options, including
Share and Delete.
I'm going to choose Share and I'm going to share it with my
friends on Google+.
Done.
These timeline cards, there's a bunch of them.
Sidney's taking some photos--
I'm getting some updates from him.
You'll notice that I have his picture,
I've got the arigato--
these are things that have happened in time.
We're going backward in time as I swipe forward.
If I swipe backward, we go forward in time, or to the
left, and I can swipe all the way over here to
some Google Now cards.
You can see that I've got the weather and
I've got some places.
Now a note about this special card.
You'll notice it has a fold in the upper right.
If I tap on a card like this, it expands into more items.
In this case, it's the three day forecast.
If I swipe down, I'll kind of back out of that.
This is what we call a bundle.
All right.
Now I think there's enough terminology for now.
We've got the timeline, swipe forward to go back in time,
swipe the other way to go to things that are
happening right now.
At any moment I can swipe down and tap and
I'm at the home screen.
Does that all make sense?
Super simple, right?
All right.
We're going to come back to this, I promise.
We're going to do more.
But first, let's talk through a few more things.
Let's talk about the Google Mirror API.
This is the first time that we're talking about the Google
Mirror API, and I have to say I'm really excited to actually
start talking about this in the public.
We built the Google Mirror API so people could build Glass
services quickly and easily.
It's not complex.
This is my fancy diagram.
It's got three things on it.
The only important thing for this talk is this section over
here, because that's all you have to build for.
The Google Mirror API is a cloud API and it works with
RESTful Services, OAuth2, and we transport the
data through JSON.
So a quick few questions for you.
We're going to know pretty quickly how many engineers we
have in the audience.
Who is familiar with OAuth2?
Ooh, a lot of you-- that's great.
Who is familiar with REST?
Also a lot of you.
And of course, JSON.
More.
Yes, OK.
So for those of you that didn't raise your hand, let me
go through each of these very quickly.
Now, they're open standards, they're all available on the
web, with much more information than I can explain
right here.
But let me, again, just give you a quick overview of each
so that you'll know what I'm talking
about as we move forward.
So first off, REST is a web architecture.
It's essentially a mechanism for transporting data between
two surfaces using HTTP, or the protocol of the web.
It typically works with resources or collections of
things that you can insert, update, delete, and list.
And you use HTTP methods for that.
You can use POST to insert, you can use PUT to update, you
can use DELETE to delete, and you can use GET to list all of
the items or any one item in a collection.
Does that make sense?
OAuth2 has sometimes been referred to as the valet keys
for the internet.
It's a way to allow a third party service to do things on
your behalf.
In this case, if I want to install a service for Glass, I
give it permission through OAuth2 to write
things to my timeline.
Again, really simple, right?
You can think of that as the install
process for Glass services.
And finally, JSON, or JavaScript Object Notation, is
just an encapsulation.
We did XML for a long time as a community, but now JSON's
really the thing.
And it all centers around these timeline cards, so let's
start there.
The timeline card is just a discreet bit of data that you
send to Google and then Google syncs to the
user's Glass for you.
Now remember that diagram--
all that syncing and knowing whether the device is online
or offline, that's all done for you by Google, up to and
including how to display these things on Glass and actually
rendering that UI.
Now these timeline cards can be text, images, rich HTML, it
can be video.
And it can also be bundles of things.
Remember, we saw this with the weather card.
Whenever you see that fold in the upper right hand corner
and you tap on it, it'll expand into sort of a
subtimeline, if you will, and you can see
multiple items there.
And that's really great for Glass, because you can kind of
have a very efficient timeline but then you can drill deeper.
Now this is what it looks like in code.
And it could be just as simple as this, is you've got a text
variable set to "Hello world," you send that to Google, and
we push a timeline card to the user that says "Hello world."
You can insert images this way using a multipart request, and
you can insert rich HTML as well.
Now these items can be by themselves or you can do
bundling, and there's two ways to do bundling.
The first way is through something that's kind of like
pagination.
It's a single card that you insert into the timeline
collection that includes an HTML cover
card and HTML pages.
Those are the multiple pages that you tap into.
This is really great if you have sort of a single item
that you want to represent in more than one screen.
And it could also be multiple timeline cards that are all
linked together with a bundle ID.
So you just set a common bundle ID across multiple
cards that you insert and we'll put them together in a
single bundle.
If you want to do an update, just do a PUT request.
You'll notice on the endpoint there I'm also specifying the
item's ID at the end of timeline.
And I'm just going to update that again to hello world,
this time without an exclamation mark.
You can do delete--
this is a DELETE request.
And of course, you can list any single item or the whole
list of items.
So those are cards.
You can insert them, they can be lots of different types.
There's also these card options.
Now remember, I tapped on that picture and I
got Share and Delete.
Well, you can specify that menu when you insert a
timeline card and it's really easy to do.
There's two types of these timeline card
options, if you will.
There's Reply and there's Read Aloud.
Those are system options.
You can also do custom options, which are whatever
you specify.
They have your display name, your icon, and they do what
you want them to do.
To insert system options, all you have to do is name them.
So you can see we're back to this timeline card insertion,
and we're specifying in the JSON hello world, and I'm also
specifying an array of card options.
And the one that I specify, I'm just naming it Read Aloud,
and that will add Read Aloud to this timeline card.
If I want a custom option, I've got to specify just a few
more things.
You'll see the action here is custom, but then I'm
specifying an ID, a display name, and an icon URL--
in this case, love, as if you were to love an item on a
service, because we're in Austin.
No?
Come on, so much love around here.
We've got some share entities.
Remember when I tapped on that picture and then I tapped on
Share and I got my Google+ Circle for friends?
Well, Google+ is a Glass service using the API.
It added that share entity for me.
Any Glass service out there can add their own set of share
entities so that when I take a picture or a video on Glass, I
can send it to any one of those services.
To insert a share entity, it's a POST request.
But this time it's on the share entities endpoint
instead of the timeline endpoint, right?
So we're just sending this to a different URL.
And I'm specifying an ID, a display name, and an image to
show along with that.
OK, subscriptions.
So this is the last big thing.
For subscriptions, this is important for your card
options and your share entities, because what the
user is going to do is they're going to perform an action,
Glass will tell Google, and then Google will notify your
Glass service, and it happens real quick.
To do that, you first need to subscribe to the timeline
collection or whatever collection we make available.
And you specify your subscription this way, by
doing, again, a POST request, using the RESTful protocol to
say, hey, I want a subscription.
Here's the user token or the verify token to repeat back to
me so I know what you're talking about, and here's a
callback URL.
This is where I want you to send the data.
And then what Google's going to do is every time it gets a
user action, it's going to send you a
lightweight ping in JSON.
It's going to include things like the timeline ID.
So in the case of a picture, you'll get that timeline ID
and then you'll do a GET request on the timeline like
we saw earlier and download the photo.
Does that make sense?
All right.
The lightweight ping's going to look a
little bit like this.
OK.
So that was a mouthful, mostly, for me.
It was a lot of technical stuff about how the API works.
And it's really important because these are sort of the
major building blocks for creating Glass services.
I'm going to go through them one more time.
You have the timeline cards, and these are things that you
can insert for the user and they'll see them on Glass.
Those cards can have options and those options can be
system options, like Reply or Read Aloud, and we'll see
those in a demo in a moment, or they can be custom options,
in which case you specify what it's called and what the icon
is and then you handle that for the user.
The share entities--
and these get added to the share menu for any media
created on Glass like pictures and like videos.
And then finally, subscriptions.
By subscribing to updates to the timeline, you get notified
with lightweight JSON pings whether the user hits a card
option or if they hit a share entity.
All make sense?
OK.
Next up, guidelines.
So this is really key because it's a new platform.
It's a new form of technology, so we need some new
rules for the road.
We've done a lot of thinking and playing and experimenting
and here's just four quick things that we found make a
Glass service really great.
First, design for Glass.
Glass is a unique platform that's mobile, but it's
fundamentally different than existing platforms like your
phone or your tablet.
And you want to build for Glass with this in mind, that
it's for Glass.
You wouldn't want to take an experience somewhere else and
just stamp it out for Glass.
And you'd also want to take the time to experience it on
Glass so that you know what it feels like and you
know that it works.
For example, you wouldn't want to read an entire
news story on Glass.
When we think about Glass, we don't think about staring at
the screen all day.
Again, it's not directly in front of my eyes.
We think about these quick interactions.
So what is a good experience is reading a headline or
seeing a picture coming out there from the world and
getting these headlines throughout my day--
those short, quick interactions,
whenever I want them.
The next thing is that you don't want to get in the way.
Glass users expect the technology to be there for
them when they want it and out of the way when they don't.
You want to make sure that your service supports this by
not being too frequent and loud with notifications and
provide appropriate controls for the user experience.
And most of all, you don't want to take precedence.
You don't want to override or require.
If the user misses a notification, it should be OK.
And an example here is that you wouldn't want to do any
motile dialogues, for our UX friends out there, with Glass.
If the user misses the notification and doesn't
respond, it should decay quietly and easily and
silently and the user should keep getting notifications
like usual.
And the reason is they're wearing Glass
throughout their day.
And when they're doing
something, let them do something.
They'll get back to Glass when they want.
Keep it timely.
When you think about it, your laptop or your desktop
computer, you work with data that's maybe over the course
of the last few months or year.
When you're working on your phone, you can really think
about that as sort of the day or the week.
Glass is a very right now device.
So when you deliver data to the user, you want to do it in
the moment and keep it up to date, especially, like the A+,
is if it matters to them for what they're doing right now.
And a real time notification system is provided, right--
those subscriptions that we saw.
So when you get those notifications, you'll want to
respond right away and provide that user with the experience
that they're expecting, which is right there
with them, right now.
An example here is that you wouldn't want somebody to send
a timeline card to you about an email from a week ago.
You probably already saw that.
You want the email that happened just now and happens
to also be important.
Then finally, avoid the unexpected, especially the
unexpected and unpleasant.
You want to be transparent to the user and give them the
functionality that they expect, because unexpected
functionality is typically bad on any platform, but it's
especially bad when it's on Glass because the user is
wearing Glass.
An example here is if I signed up to be able to share images
with your service but you end up sending me timeline cards
about all your wonderful new features every day, that will
be a bad experience.
You would want to use a traditional channel like email
or something like that to let me know what's happening with
the service and on Glass, I just want that interaction.
So those are the big guidelines.
Let me just highlight them one more time on the screen here.
You want to design for Glass, specifically for the Glass
experience.
You don't want to get in the way--
we provide an experience for the user that's there when
they want it.
You want to keep it timely-- make sure it's up to date and
matters to them in the moment.
You want to avoid the unexpected-- you want to keep
away from anything that's going to jar them or shock
them out of their life.
So we've been working with a few friends to test this new
API and how these new experiences
fit into our lives.
You've got to play with it and use it and see how it works.
I'd like to share with you just a taste of what we've
been playing with lately.
Does that sound like fun?
I'm going to keep asking you these
questions this whole time.
Does that sound like fun?
AUDIENCE: Yeah.
TIMOTHY JORDAN: OK.
First, let's start with "The New York Times." Now as you
know, "The New York Times" is a leading global multimedia
information company.
It enhances society by creating and collecting and
distributing high quality news and information.
And if you're like me, that means you sit down every
Sunday morning and read the "Times."
But I also want news throughout my day during the
work week, but I don't really ever have the time to sit down
and read a newspaper.
What really works for me and what we found is a great
experience on Glass is getting headlines throughout the day
that are there whenever I look for them.
And that's what we built.
Let's take a look at what that looks like.
So here is a bundle of news that I got from "The New York
Times" right before I got up on stage.
It's an article about the Harlem Shake.
And you'll notice it has the curl in the upper right hand
corner there, that fold.
If I tap on this item, I get a bundle of all these different
headlines and rich images.
And if I tap on any one of these, I can get a card option
for read aloud.
So this is really great for me, actually,
because I can hear it.
Uh huh.
OK.
The cool thing about that is that I typically wouldn't do
that in front of an audience--
listen to a news article-- but I thought it would be fun.
But I would do that when I'm walking in between meetings or
I'm going for a short walk to take a break, because then I
can kind of look at the world around me and I'm also hearing
something about what's going on in the
greater world that me.
So let's take a look at the detail flow there.
What "The New York Times" is doing is they're inserting a
timeline card.
In fact, they're inserting several timeline cards and
they're setting a few properties in there.
They're using the rich HTML so that it displays with these
beautiful photos and headlines.
They're creating the speakable text, which is a little bit
different than I see on the screen.
What they're giving me is a summary of the story, so I can
see the headline if I want and I can have the whole summary
read aloud to me.
And they're adding the Read Aloud card option, so that I
can actually choose to hear it.
And finally, they're setting the bundle ID on each of these
so that every hour--
which is what we've been playing with--
I get a new bundle of news items.
And the cool experience here is that as I'm going about my
day, I might see that this comes in and take a look at
the news right there.
Or maybe I'm waiting at the bus stop and I can see the
latest articles.
So let's go through the guidelines one by one.
There's four of them, remember.
First, design for Glass.
What's cool about this is it's simple, it's there when I want
it, and I'm able to have this read aloud to me so I can go
about my day.
It doesn't get in the way.
If at any point I miss one of these bundles, that's fine.
The world keeps generating news-- that doesn't stop--
so I can just see the next one.
It's up to date with fresh data.
So "The New York Times" is really great about publishing
that news throughout the day as it becomes relevant and
then delivering to me every hour the top news stories
right then.
And then finally, avoiding the unexpected.
And this is really easy--
I'm getting the news that I expect regularly.
In fact, we're trying out this other flow that's really great
as well where you get breaking news.
And that just can happen right away, and I get a
notification.
And with Glass, using the head gestures, I can just look up
and I can see that breaking news.
And "The New York Times" is already really great about
delivering breaking news to users when it's relevant, when
it's actually breaking and important, and otherwise just
putting it into the news cycle.
OK, let's do another--
my favorite email service, Gmail.
Let's try this demo again.
So far it's worked good.
I'm going to go ahead and tap here.
And it looks like I got an email just a moment ago from
Jenny, my colleague back in Mountain View.
Unfortunately, she couldn't be here today, but we've got game
night this Saturday and I'm going to kick her butt.
Let me just go ahead and reply to this email,
if you don't mind.
Are you kidding?
I can't wait.
Smiley face.
And it's going to send that message to her.
What it went into was a voice dictation mode there.
I started a little bit too early-- that's why it had that
"remind" word.
But then it heard what I said as I said it, showed it to me,
had the option to cancel that if I wanted to, but I didn't.
It went ahead and sent it and she'll get an email that has
the text of what I just said as well as the audio file.
So let's look at this in a little bit more detail again.
So this flow starts when I authorize Gmail to insert
timeline cards on my Glass.
Remember that OAuth process that I told you about?
Again, this is really sort of the install
process for Glass services.
I go over to the Gmail website and I say, I want you to send
the most important emails as they happen to Glass.
And it jumps into the OAuth flow, I give permission, it
calls back to Gmail, and it's done.
But at that moment, Gmail does a quick thing.
It inserts a subscription for all updates on my timeline.
Remember we talked about subscriptions?
Essentially, it's subscribing to everything I do on the
timeline that concerns it.
OK, so now we fast forward to I'm getting my emails
throughout the day.
It inserts timeline cards.
And on those timeline cards, it includes just some simple
text and a creator-- in this case, Jenny--
and some speakable text so that I can have it
read aloud to me.
It includes those card options for Reply and Read Aloud.
And when I get that email as a user, I tap on Reply.
Glass goes into voice dictation, records what I say,
and then it notifies Gmail's subscription endpoint.
Remember, it subscribed and then it sends the
notifications.
The lightweight notification just includes some JSON
specifying the timeline item that has all that
text that I just said.
Gmail will then retrieve that item, download the audio,
compose an email, and send it to Jenny.
Again, very simple flow, all cloud based, something that
you could build and do a first version of in just a day.
Let's go through the guidelines.
First off, design for Glass.
It's a simple, quick interaction, and it's easy to
do while on the go.
It doesn't get in the way.
And this is really key for Gmail is that I'm not getting
every email message that comes into my inbox.
I wouldn't want that.
But I do get the important ones, and Gmail is already
good at figuring out which ones those are and sends just
those to my Glass.
And it's, of course, fresh.
I get the new messages as they come in.
It's very timely.
And it avoids the unexpected.
I get emails and I send replies whenever I want.
It's just a simple flow.
All right.
Let's do a couple more.
The next one is Evernote.
So Evernote, as you know, is a family of apps that help you
remember everything, communicate effectively, and
really just get things done.
In this case, I'm going to be talking about two of them--
Evernote itself and Skitch.
Who here is familiar with Skitch?
A lot of you.
I think Skitch is great.
It's just a really quick way to take an image or a
screenshot and mark it up with text and arrows so that I can
communicate how I feel about something, whether it's a UI
design or architecture planning, whatever
it happens to be.
The interesting thing about Skitch, though, is that I find
myself, if I'm in a meeting and I take a photo of
something that we're talking about, I don't want to sort of
Skitch it up right then.
Why?
Because I'm in the meeting and, like, we're talking and
we're communicating about next steps.
Rather, I'd like to be able to quickly give feedback at the
right time.
So let's try that, shall we?
So I'm going to swipe over to the picture I took of y'all
and I'm going to tap.
I get my card options there.
I'm going to tap on Share, and I'm going to swipe to Skitch
and I'm gong to tap on Skitch.
Now what's happened here is that Skitch was just notified
that I took an image and I shared it with it.
And again, how that happens is I tap on the card option as
Skitch had previously inserted a subscription and said, I
want you notify me at this point whenever the user hits
the share entity.
So I hit that share entity.
It goes up to Google, Google bounces that down to Skitch,
and then Skitch then takes that information, downloads
the image, and sends an Android notification to my
tablet, which is right here.
I can't believe I'm screen sharing multiple devices in
this demo-- it's cool.
And this is Skitch.
It just opens up with that image.
I'm going to go ahead and buzz out my friends from
Engadget over here.
Oh, I'm just kidding--
I love you guys.
And let's go ahead and say awesome press.
That's cool, right?
So these would, in any other case, be my
notes during a meeting.
I'm going to go ahead and hit Done here and save it.
And Skitch right now, as it usually does, is going to
upload this into Evernote so it's a note that I can access
whenever I want.
Now what I like about this flow and how I've started to
use it in my daily life is that I end up at these
meetings getting caught between
feedback and paying attention.
I can pay attention and with Glass I can easily take photos
as things happen.
And then as I'm walking back to my desk or going for a walk
later, I just share that with Skitch on my tablet and I can
mark it up and save it to Evernote.
And as you can see, there it is right there in Evernote.
I've also got some Skitches about fish and this talk,
because that's what this talk needs is some more fish.
All right.
Let's go back to the presentation here and go
through that again in detail.
So starting with the OAuth flow again, when I authorize
Evernote to do things on my behalf, right afterwards it
inserts a share target for Skitch, or a share entity, and
it adds a subscription for timeline updates.
Later, I take a picture.
I choose to share it with Skitch.
Google then notifies Skitch there's an update.
Skitch pushes that to one of my devices.
I mark it up, save to Evernote, and that's my day.
And the guidelines-- let's go through each of
those, one at a time.
This one will go quick, though,
because it's really simple.
You design for Glass.
Again, being able to take a picture without interrupting
what I'm doing and then be able to take notes on that
picture whenever I want is a very cool
interaction for Glass.
And it doesn't get in the way because I can use the share
target whenever I want.
And as far as being timely and avoiding the unexpected, I'm
making this happen by choosing that share entity.
So really, I, as the user, I am in control
of this whole flow.
All right.
Should we do one more?
AUDIENCE: Yeah.
TIMOTHY JORDAN: OK.
So who here is familiar with Path?
Great.
So Path, for those of you that didn't raise your hand, is a
smart journal.
It lets you share your life with those you love and do
photos, thoughts, more stuff than that.
But one of my favorites is simply adding an emoticon to a
friend's post when it comes in.
I can look at my Path timeline throughout the day--
the path, if you will.
And as I see pictures that my friends have shared, I can tap
on them and hit like Smile or Frown or Love.
And I do this all the time because it's a quick way I can
interact with them and yet still go about my day.
This is a really great experience on Glass.
So let's go ahead and see.
Oh, I got a timeline card right at the front there that
I took a photo.
This is a demo device, so that's why
there's multiple mes.
Anyway, this is really an excellent photo.
I know, I took it.
I'm going to go ahead and tap on it, and I get card options
for all of these emoticons.
And in fact, all the way at the end, I also have the
ability to reply, which will add a comment to this post.
Again, super simple, quick interaction that I can do
while I'm going about my day.
I'm going to choose on Smile.
And that's done.
Path is going to get that notification and it's going
add a smile from this demo account to that photo.
Let's look at that flow.
Let's start one more time at the OAuth portion.
I as a user go to Path and I say, I want you to
send stuff to Glass.
I give permission, and then Path immediately inserts a
subscription to timeline updates.
Then, as I'm going about the rest of my day or the week or
the whatever, Path is sending me pictures from the people
that I know really well, the people that I love.
And I can tap on any one of these as they come in and I
can add a comment or I can choose one of those emoticons
without really even breaking my stride.
Now, the design guidelines are pretty clear as well.
And we've been over these a lot of times.
Let me do them one more time.
Design for Glass.
Love the way emoticons work on Path.
It's just that quick interaction.
It's a really great experience on Glass because I hardly even
have to take a moment beyond appreciating that photo and
being able to tell my friends how I feel about it.
It doesn't get in the way.
I get these pictures as my friends take them.
And because it's Path, they're only people that
I know really well.
It's very timely.
I just get the pictures as they come in.
And it's never really unexpected.
This is the community that I've already curated on Path,
and I'm getting the photos that I love.
I'm just getting them on Glass now.
So those were the demos.
Let me say one more quick thing to kind of
pull this all together.
And this really calls back, again, to those glass bars,
that feeling of the developer community coming together and
wanting to do something together on this new form of
technology.
We looked at all of these things in detail.
The demo--
I gave you a quick look at the Glass UI.
And we talked about the Mirror API.
Remember, the four major components were timeline
cards, menu options on those timeline cards, share entities
to be able to share images and video, and subscriptions to
get updates about both those timeline card options and the
share entities.
And we looked deeply at each of these guidelines that we've
been discovering as we've been building these new
experiences for Glass.
There was designing for Glass, making sure the experience
makes sense for a Glass user.
Not getting in the way, making sure that the experience
you're giving your user makes sense for them right then at
that moment.
Being timely or staying up to date--
making sure that what you give the user and how you respond
to them is in the moment.
It's right now.
And avoiding the unexpected, especially the unexpected and
the unpleasant.
You want to make sure that the user is getting the experience
they signed up for, and you give them the right settings
so they can adjust it for them, like being able to turn
it off on the weekend or when they go to sleep.
And finally, we looked at some examples.
And this is just where we started, with a few friends to
test out the API in its early stages.
And that's the thing.
This is where we're starting.
You've got to remember--
and I'll leave you with this thought--
that Glass is in early days yet.
We're really just getting started, and the reason we're
talking about this today, the reason we want to start having
this conversation, is that every time we say something
and you guys respond with your dreams and your visions for
using this new technology, it's such a huge inspiration
to us, and it really affects the work that we do on Glass
day to day.
So please, keep that coming.
Thank you.
[APPLAUSE]