TIMOTHY JORDAN: Hello. [AUDIENCE APPLAUSE] TIMOTHY JORDAN: You haven't
even heard anything yet. That's OK. You can applaud as much as you
want for the next hour. So I'm Timothy Jordan. I'm a Developer Advocate
on Project Glass. A couple of things before we get
started, just to set some context, though many of
you will already know some of this detail. Google[x] is the moonshot factory
at Google. It's about these radical ideas
for changing the world and improving the way we live. And Project Glass is one
of those moonshots. It's a moonshot about our
relationship to technology. This is strange standing up on
this little step back here. Let's just pretend it
doesn't happen. It's about technology that's
there when you need it and out of the way when you don't. And what do I mean by that? Some of you have heard this
story, but I'm going to tell it again, because it's really
impactful for me. When you're at a concert and
the band takes the stage, nowadays 50,000 phones and
tablets go into the air, which isn't all that weird, except
people seem to be looking at the tablets more than they are
the folks on stage or the experience that they're
having. And it's crazy. Because we love what technology
gives us. But it's a bummer when it gets
in the way, when it gets in between us and our lives. And that's what Glass is
addressing is, how do we have those benefits of technology and
yet get it out of the way at the same time? Now up until recently, you had
to take our word for that. But we've started selling
devices to people outside of Google. In fact, I see a lot of them
in this room today. Could you raise your hand
if you have Glass? Oh, a bunch of you. And it's a heck of an adventure
we're on together. Who would have thought a year
ago we'd be in this room adopting this new technology
together and building it together? And that's really what this
session is about, that and my really cool roller
coaster video. Fair warning, there are not
going to be any airships or parachuting today. We did that, and we did
it pretty well. Today we're going to focus on
developers, that's you, and what you're doing with Glass
and the conversation that we're having together. Now this session, I'm going to
cover the general landscape of building for Glass,
the platform and design and examples. I'll talk about that
in a moment. There are some other sessions
that you'll want to come to at Google I/O today. One of them is "Building
on the Mirror API". Alain and Jenny are going to go
into detail about using the mirror API to deploy
your Glass service. There's going to be a session on
"Voiding Your Warranty", if you want to tinker around
with Glass and have some fun that way. And then at the end of the day,
we have a fireside chat with some of our leadership,
and that's going to be a lot of fun. We'll answer a lot of
your questions then. For right now, we've got three
things on the menu. First off, I'm going to talk
about platform, what you can do today with a Mirror API
and a little bit more. Next, I'm going to talk
about design. Now the platform, for those of
you that have checked out the documentation, is
the easy part. It's JSON over REST. It's not new technology. We're just using
it in new way. And that's where design
comes in. This is the interesting
challenge with Glass right now, and this is where we're
innovating, building the service for a user that
makes sense on Glass. And to that end, we're also
going to take a look at some examples, some of the early work
people are doing in the area of Glass, building these
Glass services for users. All right. Now before we jump into all
that material, I'd like to give you a demo. Who here has not seen a
live demo of Glass? There's still a few of you. OK. And I understand that we have
another room and a livestream. So this is for all of you. I'm just going to go over some
of the basic concepts. This is always fun
to do live demos. We'll see if Wi-Fi works. Either way, it'll be fun. I have a cable attached to this
demo device so that you can see my screen. We did a little bit of hacking
so you could see what I see. Now it's going to be more
choppy and a little more delayed on that screen. It's much more smooth
on Glass. And if you can make a new friend
at Google I/O here who has Glass, you can ask them very
nicely if you can demo their Glass. I recommend that you do that. Because putting Glass on and
seeing this rich display and experiencing it is so much
different than just seeing it on the projection screen here. But I'll give you a
quick tour anyway. Now the first thing that you
note when I put on Glass-- and this speaks to my point about
the purpose of Glass-- is that it's not in the way. It's not in my line of sight,
but it is in my field of view. And the key thing there
is that it's not between me and my life. It's not that tablet at the
concert where I'm looking at that instead of what
I'm doing. But at the same time, whenever I
want Glass, all I have to do is look up, and there it is. By bringing technology
closer, we can get it more out of the way. So when you do put on Glass,
when you do get a chance to demo, make sure that
you take that step. It's really key. There's two ways to wake
up or activate Glass. One of them is with
the touchpad here. I'm just going to tap on the
side there, and you'll see I come to this home screen. It's got a clock. Now if I swipe down on that
touched right at my temple, it's going to dismiss it. It's kind of like the Back
button on your Android phone. Another way I can activate Glass
is by looking up with my head, and I get the
same screen. Cool? Right. Voice commands. Mind if I take a picture? I'll take that as a resounding,
sure, go ahead. OK, Glass, take a picture. And there we are. Aw, you all look so beautiful. Now let's go ahead and share
that with the world, shall we? Swipe forward, tap
on that item. I get this menu, tap on Share. I'm going to swipe my
Google+ friends circle and tap to share. That's it. So what you saw there
is I took a picture. That picture was then
put on my timeline. I swiped forward to get the
last item on my timeline. As I swiped forward,
I go back in time. If I tap on any of those
items, I get a menu. In this case, there was
an option for sharing. I took that. I saw my sharing contacts,
and I chose my Google+ circle for friends. I'm going to come back to
all these concepts. OK, Glass, google, how do you
say welcome in German? Did you all just start Wi-Fi? Oh, there we go. Well, it recognized
what I said. Now if I had a strong connection
in this conference room, it would then come back
and showed me willkommen and would have said it to
me at the same time. Now you notice I don't have
anything in my ear, but I can still get audio. And it's relatively
private to me. If you were right next to me,
you might hear a murmur. But otherwise, it's
just for me. Pretty cool, huh? All right. So that's your quick demo. Let's get back to the
slides, shall we? All right. So let's start with platform. What we have out there today
is the Google Mirror API. I want to go through some of the
concepts I just showed you in the demo and how you
can affect those with the Mirror API. This is how the Mirror
API works. It's RESTful architecture. JSON is the payload encoding,
and OAuth is the install process. Now this is a developer
conference, so I'm expecting to see a lot of hands here. Who knows what REST is? A lot of hands. Great. Who knows what JSON is? A lot of hands again. Excellent. And who knows what OAuth is? Slightly fewer, but still
a lot of hands. OK. That's great. Let me just touch on each
of those for the audience playing at home. OAuth is an authentication
mechanism. And for the Mirror API,
it's analogous to the install process. The user gives permission to
the Glass service to write into their timeline
and get updates. JSON is the encoding, JavaScript
Object Notation. It's pretty much the language
that we send over REST, which is the protocol. And that's just HTTP. It's like submitting a web form,
but in the background. And all that work happens
right here. And this is what I think is
really key about the Mirror API is that it's super simple
to develop for, and yet you could also build powerful
services. All your work is going to be
right here between your service and Google. And then Google handles the sync
to Glass, dealing with any connectivity issues and
actually rendering things on the client on Glass. And there's a handful of
major topics we're going to talk about. First, we're going to talk
about the Timeline. You saw that. We're going to talk about
Share Contacts. You saw those. It's my Google+ friends
I shared with. We're going to talk about
Subscriptions. This is how your service
gets updates when a user performs an action. And I might touch a little
bit on Location. You can get Location updates
periodically from Glass as well. OK So first off,
Timeline cards. Now Timeline cards
can be text. It can be images, video. It can be rich HTML. And they can also be bundles. So now you saw, when I was on
the Timeline there, there was a single item . It was an image. I tapped on it, and
I got a menu. If that item had a page scroll
in the upper right, like this Timeline item here, and I tapped
on it, it would open up into a sub-timeline. This is how you can group
multiple Timeline cards together into a single top
level Timeline item. And this is good for a couple
different things, and I'll discuss in detail some
best practices here in the design section. But you might want to do
pagination with this. Or you might want
to do threading. For example, if I'm going to
have a conversation over SMS, that's going to be in a threaded
bundle with my latest message back or forth on top. I tap in, and I can go through
the whole conversation. Or maybe I want to show a little
bit more of a summary than just on one
Timeline card. So I insert a long text string,
and it automatically paginates for me. Now menu items, like the Share
menu item that you saw when I tapped on the image, you
can add these yourself. And they can be of two kinds. One, they can be a
system menu item. And that you just
have to name. And it uses some built-in
functionality of Glass. This could be Reply,
Read Aloud. These are system menu items. Reply will put the user into
voice dictation mode, take transcription, send you that
text and the audio file, and then you can use that as
you do in your service. For Read Aloud, Glass will read
aloud to speakable text or the text that it finds
on the Timeline item. There can also be custom
menu items. These are still going to be
simple, quick interactions that you build. But they can have your name and
your icon, and they can do whatever your service
wants them to do. Now Shared Contacts. Shared Contacts can be for
sharing, like I shared to my Google+ circle for friends, and
then they see that image moments later, or something like
Ice Breaker, which I'm going to talk about a
little bit later. Some of you might have been
playing while you're here at Google I/O. Now that's just a
service that takes an image and does something different
or interesting with it. Now much like the Timeline,
which is a RESTful collection that you can insert, update, and
delete items from, Shared Contacts is also a collection. And typically how you would do
this in the flow of your service is the user
would OAuth-- say, hi, I wanted to give
you permissions to do stuff for me. And then immediately your
service would insert a shared contact and subscribe to updates
from that shared contact, or anything else the
user does in the Timeline that the service wants to
pay attention to. Now the way those subscriptions
work, again another collection. You insert a subscription, and
then you start to get updates on the endpoint that
you specify. All right? So we have three major
collections so far, Timeline, insert cards, add menu items,
Shared Contacts for the sharing menu, and
Subscriptions. The one last one is Location. I'll talk about that
in a moment. For Subscriptions, think
of it this way. If you've done pubsubhubbub
before, it's sort of similar. You're going to subscribe by
inserting a request into Google that creates an item in
the subscription collection. And then as the user takes
actions covered by that subscription, Google will inform
you by calling the endpoint that you specify. It's a lightweight ping,
so it doesn't take a lot of network traffic. And most of the time all you
need is that lightweight ping, because it includes a
Timeline ID that you likely already know. But if you want more
information, you can then pull that item from the Timeline
item collection. Now Location is very similar. You can subscribe to Location. And then as the user's location
gets updated, you get a notification. You pull from the Location
collection to get the actual latitude and longitude. That make sense? All right. So that's the platform as we
know it today, the Google Mirror API. Let's talk a little bit about
what the Google Mirror API is good for and some of the use
cases that will feel a little bit forced. In our conversations about
building stuff on the platform, we're always thinking,
as we do around Google, what's good
for the user? What's going to provide
an excellent Glass experience for the user? And in those conversations,
about 80% to 90% of the ideas we come up with are great Glass
services for the Google Mirror API. These include being able to send
content to the user and microinteractions with that
service, like being able to reply, or being able to add an
emoticon to something or +1 something, and being able to
share out from Glass images and video, either to be posted
on a social network or for your service. All those things work
incredibly well on the Mirror API. You can develop them
very, very quickly. But there's a handful of things
that you might want a different kind of aspect
to the platform for. Those can be when you want your
service to work offline. Now if I get updates from "The
New York Times," I can see them, even if I don't
have a connection. But to actually get those
updates, I needed a connection at that time, or to do those
microinteractions. Well, what if I have something
like Navigation, as you see here, where I want to be able
to interact and get an immediate response from Glass? Or what if I want to access
hardware features, like the Location, in real
time on Glass? Well, for something like that,
you need a native API. And that's something we're
working on right now. It's called the Glass
Development Kit. We don't have a lot of details
about this right now, because we're actively building it. And since we're in the explorer
period and we're building it at the same time,
it's actually a really unique place for a product to be,
because we're having a conversation right now about
what we need to make sure that we add to the Glass
Development Kit. So my ask do you-- I make an announcement, and
then I ask you to do something for me-- is to tell us, what are your
dreams for Glass that would use the Glass Development Kit
but not the Mirror API? And what do you want to make
sure we cover in that? Later in the day, if you go to
the hack your Glass session, HY and PY might talk a little
bit more about the GDK. And we might talk about
in the Fireside Chat. And of course, if you want to
come up and ask me later, we can talk about it
in more depth. And I'll take questions
at the end. All right. So we've talked about
platform. We've talked about the Google
Mirror API, which is what you build with today to get services
to users and play with the Glass experience and
really understand the design and user experience of Glass. And we've talked a little bit
about the GDK that'll be coming some time in the future,
where you'll be able to do things like offline and
immediate access to hardware. The user experience, this big
next section of my talk, is about design. It's about how do you make an
excellent Glass service for the user, not just
technically? But what are the paradigms
that you use? What are the user patterns
that you use? And to start with, we have four
guidelines that you've heard me speak about before-- I've covered these in more depth
elsewhere, but I want to touch on them, because they
really add context to all of the other items that
talk about today-- the first of which is
to design for Glass. And this is really key, and
there's a remarkable amount of depth in here. Because at the top level, you
don't want to take an experience on mobile or
on the web and just stamp it out on Glass. It's not going to work,
because Glass is fundamentally different. And the one essential
thing that you must do is test on Glass. Use Glass in your daily life. Add your service, and use your
service in your daily life, and then you're really
going to know what works and what doesn't. The second big thing here
is don't get in the way. Remember I talked about what are
the things that are good for a Glass user. Well, getting in the
way is not good. Getting in the way takes them
out of their life and puts a barrier between them and
what they're doing. And that's not what we're
doing with Glass. We want your service to
improve their life. And sort of a corollary here is
that you never would want to take precedence over
the user's experience. So you would never want to send
them a notification that if they didn't respond would
degrade their experience with your service. They should be able to ignore
notifications, and your service keeps chugging along,
giving them what they want when they need it. Keep it timely. Glass is a very now device. Your phone, you might do stuff
over the last week. Look at your calendar
four days from now. Your laptop, you've got data
on there from the last few months or year. But Glass is really about what
are you doing right now. And when you think about that
your service, you want to deliver content to the user
that's important to them at that moment. And then one last one. Avoid the unexpected, especially
the unexpected and the unpleasant. And this is bad on
any platform. But it's particularly dangerous
on Glass when the experience is so intimate
to the user. They're wearing your
experience. So you really need to respect
that relationship, and don't do anything unexpected. Just Be honest about the
intention of your application, about your Glassware. And give them preferences to be
able to get notifications maybe during certain times or
know how many they're going to get before they sign up. All right. So those are our four
guidelines. And those are things that
you can kind just stick in your pocket. And when you look at your Glass
service and you have a question, is this going to be
right for the user, you can measure it against those four
things really easily. And we've talked about those
before, but since that time we've been spending more and
more time with our partners. And we've gotten a lot of little
lessons as well, a lot of user patterns that work
really well and a lot of learnings around the different
paradigms in Glass that I'd like to share with you. So here are the types
of Timeline cards that you might use. You've got text, HTML templates,
images, and video. I'm going to touch on some
notes for each of these. Now we also document these on
our documentation, and we'll continue to expand these best
practices, these tips and tricks, as we move forward and
as we learn together in this explorer period. First off, if you're only
sending text, just send text. Don't use an HTML template. And the cool thing here is that
if the text is too long for one Timeline item. it's going to autopaginate. So a user can tap on that
Timeline item, and there'll be a Read More menu item, and
they'll be able to swipe through that text. If what you're sending to the
user is text, this is the easiest and quickest and
most powerful way to get that to them. And it looks a little
bit like this. Again, you'll see that text,
tap on it, get to the Read More, and you can swipe through
multiple pages of text, in this case,
the dramatically interesting Lorem Ipsum. OK. HTML. Now this is when you once more
rich or flexible designs. And maybe you want to combine
both text and images on one item. Now HTML is a little bit
tricky on Glass. You really need to
test on Glass. And we do have a great tool
called the Developer Playground. It's got the CSS built in. You can edit HTML inline and
see it right there the web browser and hit send and have
it go straight to Glass. That's really helpful. And we also have these
templates. We've taken some time just like,
OK, what are some of the big categories of usage
for Timeline items? We've provided these templates
for you to go in and edit and make your own. However, if you want to break
past those templates and do something a little bit more
stylized and specific, you can also add a style tag inline
with the HTML. Now it won't do JavaScript. But you can add your
own CSS, your own custom IDs and classes. Just remember to always
test on Glass. Start with the Playground, and
keep sending those to Glass to make sure it renders the
way you want it. And also, if you use custom
HTML, make sure that as we upgrade the system software on
Glass that you keep testing that to make sure
nothing changes. We have a couple UI grid
templates here to get you thinking about what's the
padding and the spacing that will make your Glassware
consistent with the rest of the Class UI so that it's
familiar and easy to use for the users. Photos and video attachment. There's a couple best
practices in here. First, it's 16 by 9, and the
resolution is 640 by 360. You want to use that resolution,
if you can. And the reason is it's going to
transfer to Glass faster, and it'll be the perfect size
for showing full screen. It doesn't need to be
resized on Glass. It's going to look
as you intended. And for videos, they
should be short. This is for two reasons. One, you're sending it to
Glass over the air. It's going to use the user's
data connection. But another reason is that,
again, we don't want Glass to get in the way of the
user and their life. So getting a video and looking
for 30 seconds or maybe up to a minute makes sense. I can take that pause when I'm
walking between meetings, and that can be really magical
experience. But if you push me 30 minutes
of video, I'm never going to watch it, for one. And it's going to be
distracting and confusing to the user. It's about short interactions. It's not about staring
up all day. It's about living your life. And another thing that I'd
like to announce today-- this will be available in
the documentation soon-- is video streaming. So what you know about the
Mirror API so far is that if you want to upload an image or
a video, you add it as an attachment to a Timeline item
that you insert into the Timeline collection. You do this once
for every user. So if you have 1,000 users and
you want one video to go to all of them, you upload that
video 1,000 times. It makes more sense to do that
for the video intended for that user specifically
and update to them from your service. If you're going to broadcast
things to users, what makes the most sense is to
do video streaming. Now we're going to add some more
details about video types and quality in our
documentation, and that's best place to reference it. But you so you know how this
works is this is a URL attachment. So when you insert the Timeline
item into the user's Timeline collection, instead
of adding a multi-part attachment with the video
content inline, you can add just a URL. And then Google's going
to handle the rest. That's pretty cool, right? Everybody's who's been inserting
videos on the Mirror API is nodding. And that's nice. All right. Let's talk about bundling. Bundling is super powerful
but tricky. There's a few tips I can give
you to do this right so it's going to be really obvious to
the user and it's going to make a lot of sense to them. First off, there's many
kinds of bundles. There's single item bundles,
and there's multiple item bundles. Now what do I mean by that? A single item bundle is where
you insert a single Timeline item, you specify the HTML
attribute as the cover card, and then HTML pages is
an array of strings. They're your subsequent
pages when the user taps into the bundle. This is a single Timeline item,
so it should logically be a single item with
multiple pages. That's really straightforward,
right? The multiple item one, this
could be for threading, or it could be a collection. There's a couple great
examples of this. You've seen "The New York
Times" on Glass. That's a bundle of the latest
top headlines from "The New York Times" for the last hour. You tap into it, and you'll
see those multiple items. Threading is something like
SMS or messaging back and forth in a service. All you need to do is insert
additional items. You set the bundle ID. In the case of "The New York
Times", the way they insert them will constitute
the order. In the case of threading, you
don't even worry about that, because the latest items are
always going to appear on top. Now a trick for all of these
things, especially the multiple item bundles, is
to have a digest cover. This is a cover not where you
say what's in the bundle but you show the user what's
in the bundle. And "The New York Times" does
a great job of this. You'll see this digest cover has
images for a number of the headlines contained within. Menu items, a couple short
notes about this. Menu items are one line, and
there's just a few characters. This is on purpose, because
they're short and actionable. I can easily scan through a good
menu and choose what I want in just a few moments. That means that not only is it
really easy to recognize what this menu item does, because
it's clear in one or two short words, but there's also a
handful of menu items, not more than that. Always make sure to
specify an icon. And be careful with Dismiss
and Delete. These are similar, but they're
a little different. Most the time you're not
going to want Dismiss. It doesn't make a lot
of sense on Glass. Because the way the Timeline
works, for those of you that have Glass, is you know
when updates come in and time moves on. You just don't go all the
way back on Timeline. It just kind of decays
over time. You're only looking at
your recent stuff. So they sort of automatically
dismiss, in a way. So you wouldn't want to get
the user in the habit of having to just dismiss, unless
you wanted to give them the option, like I don't want to
see this on my Timeline Or maybe that's an indication to
your service of what kinds of updates they like or
they don't like. Delete, on the other hand, when
you do this it shouldn't just remove it from the
user's Glass Timeline. It should also delete that
item on your service. A great example of this is
when I share an image to Google+ and there's
that Delete Item. I tap that Delete Item. It deletes it from my Glass
Timeline, and it deletes the post on Google+. It's very clear to the
user what it does. OK. Let's talk about Shared
Contacts. A couple notes here. Make sure that when you insert
a shared contact that the image that you use
is 640 by 360. That way, if it's the one, it'll
show full screen and it'll be beautiful. Make sure to always specify
acceptTypes. Now these are MIME types that
say what your shared contact can be used for. So maybe you do image slash
asterisk, in which case any images that the user finds and
they tap on that image and the Share menu, your shared
contact will show up. Maybe you also want
to do video. Now when the user does share
items on your service, we have two things that people have
started to use which make a lot of sense, #throughglass
and Sent through Glass. So with your service, it makes
sense to include a hashtag, like it's a post on
your service. Adding #throughglass is a great
way to have a through line of what that user
is sharing while on the go from Glass. If you're doing messaging,
however, where maybe it doesn't make sense to have a
hashtag, but you still want to indicate to somebody that
somebody was saying this while they were walking between
meetings, then Sent through Glass makes a lot of sense
there, just to append at the end of the message. Add these, and there'll be a lot
more clarity, as messages are going to go through
and similar to the other Glassware. OK. Some of those details all
on one screen for you. There are numbers. It's all really straightforward. I've been saying the sizes a
lot, by the way, because that's one of the things that
we've noticed as we've been doing hackathons and building
our own software that it was one of those things that's
easy to forget. But you really do want
to play to the size of the Glass screen. All right. Let's talk about some
examples, shall we? Examples are really important
right now. And the reason is that we were
all, collectively, me and everybody else with Glass in
this room, figuring out what the best experience
is on Glass. And we're building up a lot of
collective knowledge about these best practices. And even though it's early,
some of these Glassware already have the
one out there. And I'm going to talk
about some of those. You know about some of the
Google products that are already available on Glass,
like Google+ and Gmail and Google Now. These are awesome experiences
on Glass, and we've added to those with some of
our friends. We also know that "The New
York Times" and Path are available on Glass. There's a few more folks that
we've been working with to build this early Glassware,
these V1s that people are able to use on Glass. I'd just like to mention a few
of those that are going to be available to Glass
users today. I like that slide. It's OK. You can applaud. No? [AUDIENCE APPLAUSE] TIMOTHY JORDAN: So this has
been a lot of fun, because we've gotten to work with a
lot of really cool people innovating in this space and
building these really amazing Glass experience for users. Now it's still early, but some
of these experiences on Glass really illustrate some
excellent paradigms. And I'd like to call out just a
few of those and talk about the cool stuff that
they're doing. First off, Google+. There's a lot to Google+
on Glass. There's a lot that you
can do with Google+. You can share pictures
and video. You can get notifications. You can comment on posts. Or my favorite, you can start
or receive Hangout on Glass. If you haven't tried it,
it's really fun. You can join that Hangout, and
people see what you're seeing wherever you are in the world. I'd like to take a look at one
feature in particular. This is getting a Google+
notification. Here my friend and colleague,
Ossama, has plus mentioned me yesterday in a Google+ post. And I get this notification
on Glass. If I tap on that notification,
I see two items. One, I can comment
or I can plus 1. Plus 1 is great, because I can
just kind of do that on the go, and that's it. Or maybe I want to add a comment
to the post, in which case I tap on Comment and
I just speak out loud. And that will appear on the
Google+ post on the web, and the item in my Timeline
gets updated. And this makes sense, because
Google+ owns that Timeline item, and they can keep
the comments as sort of a threaded bundle. Now I see the post
Ossama made. I tap inside there, and I can
swipe through the comments. And as other people add
comments, either through Glass or on the web or on
mobile, that item keeps getting updated. And we have that conversation. This is a lot of fun. And one of the things that I
really like Google+ is that since we've got this concept
of circles and the plus mentioning, I end up getting
the posts that I care about with people that I want to
communicate with, whether I'm on the go or not. And being able to do that
on Glass is a really fun experience. The next one, CNN. CNN and us have been working
together on this really cool experience that you may have
checked out in the Sandbox. They're out they're
showing you. And of course, you'll be able
to use it later today. The first thing that you'll
notice when you sign up for the CNN Glassware is
this Settings page. I love this Settings page. They're doing some really
cool things here. First off, they're letting me
send alerts between two times. I just want to get updates from
CNN during working hours, or working hours plus a
few in the evening. And I can set that right here. Also, I can select which topics
I want to get on Glass, which ones are interesting
to me. And I get an immediate
indication of approximately how many updates I'm going
to get per day. That's super valuable
on Glass. Because maybe I just want to dip
my toes in the water with some sports and politics
alerts. Or maybe I want to go whole hog
and get the top stories throughout the day. Now once I start getting items
from CNN, they look like this. They're a bundle that
represents a story. I tap into that bundle, and the
first item is some text for that story that I
can have read aloud. I swipe forward, and I
have a short video. This was a really cool one about
a taqueria in Florida that serves lion tacos. I don't know how I feel about
that, but I thought it was interesting. Now what's neat about this is
that when you put on Glass, the first thing that
you notice is how brilliant the screen is. You can see images in really
high fidelity, and videos look really cool on Glass. And having CNN send me these
short video from everywhere in the world throughout the day,
and I can look at them whenever I want, is really
a unique experience. Twitter. Twitter and Glass, they just
work so well together. There's a bunch of stuff
that you can do with the Twitter Glassware. You can get tweets from
plus mentions. You get the tweets that you
have mobile notifications turned on for. So if I have mobile
notifications turned on for my friend, Sydney, as he tweets,
I get those on Glass. You get direct messages,
and you can respond to those messages. And you can share
a picture from Glass directly to Twitter. And it'll post it as
a photo tweet. A tweet on Glass looks
a bit like this. As you know, our friends from
NASA just returned to Earth. And it was really fun watching
all of their updates getting retweeted by NASA astronauts
and getting that on Glass throughout the day. Because they're updating about
their return and their tests and seeing their family. And if I want, I can reply to
these tweets, I can retweet, and I can favorite
right from Glass. Super simple. And because Twitter is that
short message model, it just makes a lot of sense on Glass. Another thing that I really
love about the Twitter Glassware is this direct
messaging capability. Now here Alain sent me a DM
asking if I was ready for the afters hour party. To which I replied,
most certainly. Because of course I was. It was awesome, right? Yeah. It was a good party. I think that might be the
best I/O party yet. Anyway, I hit Reply. I saved that message. And that gets added to
the thread on Glass. Remember, I talked about these
bundles and threaded bundles? All Twitter had to do was insert
one more item, set the bundle ID for that bundle--
which is any arbitrary string it decides. Maybe it's an internal
representation of this conversation-- and that bundle grows. And it keeps growing as
we reply back and forth to each other. It's pretty neat, huh? All right. Let's talk about Evernote. Evernote, as you know, is
great for taking notes, capturing ideas and experiences,
and collaborating with your friends. One of the things that I do,
one of my patterns with Evernote, is I'll take
notes and then I'll reference those notes. I do shopping lists all the time
on Evernote, my common shopping list every week. And then I add items,
remove items. And then I'm in the store, and
I have my phone out, and I'm looking at that shopping list. And it's much cooler having
that experience on Glass. So here's my shopping list for
Google I/O. I'm not sure that I got that last item, but I
did get the extra socks. Now on this Evernote note, if
I tap on that Share arrow, I get all the places I can
share this note to. And of course, I'm going
to tap on Glass to send this note to Glass. Now Evernote, since this is
primarily text, they do that thing where they insert a
Timeline item that's text, and it autopaginates. In this case, it's the
shopping list. It's simple, and it's easy. I can see it on Glass, so I can
go through the store and buy these extra socks or
unhealthy energy drinks without having to go back
and forth to my phone. It's a really cool experience. All right. Let's talk about Facebook. Facebook for Glass lets you
share your photos on Facebook. And you can choose who you want
to share with, and you can say something to
add a description. In this case, we've got
this photo that I've taken on Glass. Now I'm going to tap that image,
and I get options for Share and Delete. This is just, at this point,
a picture on Glass. When I tap on Share,
I get my whole list of sharing contacts. And one of them, once I've set
up the Facebook Glassware, is going to be much friends
on Facebook. Now you can also share with
public or with just yourself. I'm going to tap on this
sharing contact. And what Glass does is it
creates a new image on my Glass Timeline. This time it's owned by the
Facebook Glassware. They get a notification I tapped
on that Share target. And what Facebook is doing is
it's going back to that Timeline item and adding a new
menu item, Add Description. So this is immediately posted to
my Facebook Timeline, but I can tap here and add a
description, say these are white stargazers. And then Facebook will update
that Timeline item to also include that caption,
that description. And it updates the post
on Facebook as well. Now that picture is going to
show up on Facebook, so my Facebook friends can see it when
they visit my profile. This pattern here is the ability
to share a photo, delete it right away if
it's an oops moment. But then add a description
is really key. Because I can do all those
things with Glass and sort of just having that quick
experience or add a little bit more information to it. I really recommend
this pattern. All right. Let's talk about "Elle." Now I
am not the target consumer for "Elle." But what they're doing
with Glassware I think is just really cool. They also have this great
Settings page. And they're a really important,
maybe the number one, fashion magazine out there
in the world, part of the Hearst collection
of magazines. And it's a neat experience
on Glass. You can select on the Settings
page for all these different topics, much like
you do on CNN. But "Elle" does something
else that's really cool in the moment. As I get these items on Glass
throughout the day-- and this is a bundle with
multiple pages-- and I tap on any one of those
pages and I get this menu, I can have this read aloud, I can
share it, or right there in the middle I can add
to my reading list. Now I love this flow
for three reasons. First off, I think it's
cool for the user. As I'm reading "Elle" or other
articles on Glass, a lot of the time having that headline
or that little bit of information is exactly
what I wanted. I'm good. But sometimes it's like,
oh, I want to read more about this later. Or maybe I want to bring it up
on my computer at work on a big screen and share
it with my friends. How do I do that? Well, I tap on Reading List,
and "Elle" adds this to the Reading List on that Settings
page I showed you, right at the bottom. And it's all of the links that
I've saved throughout my day. So it's cool for the user. It also helps me, as a user,
spend more time with "Elle." because now I'm also on
their web product. And finally, it helps "Elle"
know what are some of the articles that I want to spend
more time with later, not just the updates throughout
the day. So it's really good for the
user, and I think it's really good for the brand. All right. I want to do one more example. And I love this story. Ice Breaker is here at Google
I/O. Whereas this isn't released on MyGlass website,
you can go to this website, and you can install it while
you're at I/O and play with each other. This is a game. A lot of what we've talked
about so far is very productive, and sharing
with friends, and it's a lot of fun. But also, I want to
have a whimsical experience with Glass. Now these three guys got
together at one of our Glass Foundry events, met each other,
built some awesome Glassware, and won
first prize. And afterwards, we were hanging
out, and we came up with this idea of Ice Breaker. And they built it
for Google I/O. This is what you do. You land on their page, the
icebreaker.io, and it's going to walk you through
the whole flow. But let me just touch
on what happens. First off, they send
a welcome card. And this is something
"Elle" does as well that I really like. When you sign up for the
Glassware, it immediately inserts a card into your
Timeline, so you know it all worked, and the user gets that
kind of warm, fuzzy feeling, like now I'm signed up
for Ice Breaker. And it tells you a little
bit about what's going to happen next. As Ice Breaker gets location
updates for where you are, it'll find somebody else also
playing Ice Breaker and sends you a card with their photo
and their name and the encouragement to go meet them
and have a conversation, or break the ice. You can get directions to this
person, you can pin or unpin this card, and you can
also give up if you can't find them. Now let's talk a little bit
about those last two items. First, the pinning, what this
does is when I pin a card, it's a System Menu item. It takes that card and
puts it on the left side of the Timeline. That's the space reserved for
things going on right now. Google Now is over there. You've got your weather card,
maybe some stocks that you're following, or other third party Glassware that you've pinned. In this case, I'm looking
for Jonathan. I want to make this new friend,
so I'm going to keep it pinned to the left side of me
Timeline so I can look back and like, OK, have
I found him yet? It's like a fun person
scavenger hunt. The third option there
is to give up. Glass is a very now device. Remember that? So in the patterns of doing
something with Glassware, like breaking the ice and finding
people to do that, what happens if I can't
find Jonathan? And in fact, Ice Breaker knows,
since it's getting location updates, if we get too
far away from each other, it'll send me a new person still
at the conference that I can find and make new
friends with. It's really cool, because it's
in the moment, and it matters to me right now. Now I find Jonathan, and
we have a conversation. We get to know each other, and
I take his picture, and I share it with Ice Breaker. He then gets a notification
being like, did Timothy really find you? And did you have a good
conversation? If the answer is yes, then
I get more points. And I keep looking to make new
friends who have Glass here at Google I/O. Again, I really
recommend you try this. It's a lot of fun. All right. Let's talk a little bit about
next steps, shall we? We've talked about developing
for Glass. That was this session. There's three more sessions
today, details about the Mirror API, building Glass
services right away. "Voiding Your Warranty." If
you want to go off-roading with Glass, cut loose, and
do some crazy stuff-- or do some not-so-crazy stuff,
they'll talk about that too-- you can go to the "Void Your
Warranty" session. Now when I mentioned the GDK,
that's something you're like, oh, that's what I really need
for my service, which might happen for a few of you, that's
a good place to go and get some more material to
start dreaming up those experiences and give us some
feedback about that GDK. The Fireside Chat with
the Glass team. That's at the end of the day. That's going to be
a conversation. I'll answer just a couple
questions here today. But some of the bigger
questions, I might be like, come to the Fireside Chat. And of course, please do bring
your big questions there. We also have a Sandbox
out here on the floor at Moscone Center. So if you are live with us here
at Google I/O, please come by and say hi. And let's have a conversation
about this stuff. And visit some of our partners
who are showing off their Glassware there in
the Sandbox. Now we have some resources
as well. If you have questions,
go to Stack Overflow. There's a Glass tag. If you want to download some
code and get started with some starter projects, GitHub
is the place to go. And of course, we have an issue
tracker for any bugs that you might find. Remember, we're in the developer
preview period. So these conversations that you
have on these resources are really helping us get this
API ready for the real world. And the Mirror API is if you
want to develop Glass services that people are going to use
and that you'll be able to distribute to users soon, then
that's where you start. And if you want to get in
depth with some more conversations about Glass, we
have a general community. For those of you that do have
Glass, you have access to this site, glass-community.com. Thank you so much. [AUDIENCE APPLAUSE] TIMOTHY JORDAN: All right. So we have about seven
minutes for just a handful of questions. Please head over to
the microphones. There's one over here as well. Please know that if you ask
about feature requests, I definitely want to hear them. That's what this explorer
period is all about. However, I'm not going to be
able to comment on any future releases or plans. Yes. AUDIENCE: Hi. Know John Blossom, Shore
Communications. On the API where you're showing
the ability for individual apps to have command
cards, are those commands specific to the app
or specific to the content? Because it doesn't look as if we
really have the ability to do the equivalent of tapping
on hyperlinks in that HTML. So is anybody thinking about
how do you disambiguate between buying this and
buying that, say? TIMOTHY JORDAN: That's
a great question. So I think the question is
really about the Menu options on the Timeline item. So the way you do that is that
when you insert the Timeline item, part of that JSON in that
structure is all the Menu items that you want to appear
with that Timeline card enumerated. AUDIENCE: OK. So it's content-specific? TIMOTHY JORDAN: It's
content-specific. But you can build this however
you want in your app. So if you have a template of
menu items for every certain kind of Timeline item that you
insert, and you just slap that into your JSON every time,
you can do that. It's really under the control
of the Glass service. And those can be the System Menu
items, like Reply or Read Aloud, or they can be any
custom items that have whatever name you choose. AUDIENCE: OK. TIMOTHY JORDAN: So let's say
you want to include a hyperlink and you want to give
the user the option to save that for later, for when they're
at their computer, you can add that as a Menu item. AUDIENCE: Cool. And will the GDK, as it's
conceived today, include signals from the headset? Can you read from the headset
things besides what are on the command cards? TIMOTHY JORDAN: So
there will be. I don't have any details
about exactly what. But there will be access to some
of the hardware features of Glass exposed in the GDK. Now the GDK itself-- I'll add a little bit more
information for those of you that didn't rush off to
another session-- is essentially developing for
Android with an extra library. So if you've already use Android
and you know those paradigms really well, you'll be
able to download additional code to target against that'll
give you more functionality specific to Glass. AUDIENCE: Cool. Thank you. TIMOTHY JORDAN: You're
welcome. Question over here. And then we're just going
to go back and forth. AUDIENCE: Hi. Steve Ogden from Starz. TIMOTHY JORDAN: Hi, Steve. AUDIENCE: Wondering, are you
adding any new sensors? And also, could you go
over the existing sensors within Glass? TIMOTHY JORDAN: So I can
tell you what the user has access to today. There is sort of an
accelerometer. They know if you look
up to turn on Glass, like I just did. There's a camera, and there's
a location built in to the paradigm as well. When it comes to the GDK, the
best thing to do is if there's a specific sensor that you want,
make sure that you let us know on Stack Overflow. Here's my idea. I want to make sure I
have access to this. And then we'll work on that. AUDIENCE: OK. Thank you. TIMOTHY JORDAN: We'll
do our best. Thank you. AUDIENCE: Hi, Tim. Antonio [INAUDIBLE] from [INAUDIBLE] Apps. TIMOTHY JORDAN: Hi. AUDIENCE: Hi there. You were my target for Ice
Breaker, by the way. So I need to take a picture
of you right now so I can send it to them. Awesome. So two quick questions. You insisted that the image
resolution should be 640/360, but everything we send
to Glass goes through Google, right? TIMOTHY JORDAN: Mm hmm. AUDIENCE: So is Google doing
some processing of the images, like if we send something that
is too big, you would reduce it for us so that it gets the
right resolution for the user? TIMOTHY JORDAN: There's a lot
of optimization that we do before the user sees
something on Glass. And I'm sure there's more that
we could do over time. But the reason I say you should
set the resolution to full screen is that that gives
you the most control over resizing and how it's going to
look when it's full screen. And that's always better. AUDIENCE: OK. The second question is you
showed a few apps, like Facebook, Twitter, Path,
"New York Times". Are you going to have an app
store or a place where you can actually publish your app? TIMOTHY JORDAN: Yeah. AUDIENCE: As an app developer,
I'm interested in publishing my apps there. TIMOTHY JORDAN: That's a
really great question. As everybody here knows, because
we're all developers, a healthy ecosystem involves
some story around discovery. And right now, if the user
wants to add one of these Glassware or Glass services,
they go to MyGlass, they've got cards, and they
can turn them on. And we believe that that's a
great paradigm for showing users how Glassware is there. At the moment, we're still in
developer preview, so we're still working on the details
about how that's going to evolve and how additional
third-party Glassware is going to get in there. And those details will come. But we're definitely going
to have something. AUDIENCE: Cool. Thanks. AUDIENCE: Hi. I'm Danny [INAUDIBLE]. I had a question about
best practices. I was speaking with CNN, and
they mentioned that in their Glassware app they were
advised not to use the Delete function. And I was wondering, why would
Google advise them not to use that function? Because you mentioned it. TIMOTHY JORDAN: That's
a great question. Yeah. I talked about Delete
and Dismiss. Now in the case of sending
data to the user that the user's going to look at and be
like, hey, this is cool, having them be able to delete
them encourages sort of a user paradigm of curating
their Timeline. Which doesn't really make
sense on Glass, because, remember, there's this
single Timeline that stretches into the past. And since it's such a now
device, I'm going to be looking at the recent
few cards. I'm not going to scroll
to a week ago. So why would I need
to curate it? AUDIENCE: Exactly. OK. Makes sense. TIMOTHY JORDAN: Yeah. AUDIENCE: Hi. I'm Lucas from [INAUDIBLE]. And you talked about you should
test the Glass in our apps as much as possible. But how much earlier will get
the other developers the Glass before the customers
will get them? TIMOTHY JORDAN: So you're
asking, are we going to make more Glass available before
we're selling to consumers? I don't know. AUDIENCE: OK. TIMOTHY JORDAN: Right now, we've
just sort of finished fulfilling and inviting people
that have signed up at I/O last year. And we're going on to the "If
I Had Glass" winners. That's the next big thing. What's next? I'm not sure. I'm sure we'll let you know. A way that you can make sure we
let you know is if you go to google.com/glass, in there
is a web form where you can indicate your interest and say
that you're a developer. AUDIENCE: OK. Thanks. TIMOTHY JORDAN: Thank you. AUDIENCE: Hi. I'm Sebastian from
[INAUDIBLE]. I'm just wondering what features
you're going to allow us in the GDK. One of them that would be
interesting is, are you going to allow us to have access to
the video stream so they we can display information directly
on what we are seeing, something similar
to layers on Android, but for Glass? TIMOTHY JORDAN: As I said
before, I can't comment on any feature requests. But I like hearing them. I think right now the right time
to think about this is use the Mirror API. Your dream for Glass, can you
build that in the Mirror API? And what that's immediately
going to tell you is, is this going to be a simple and quick
user experience that makes sense on Glass? And if it becomes really
complicated really quick, sometimes that might make sense
for GDK, or maybe it makes sense that it doesn't
work on Glass. But please do go through that
process of design thinking about how this would work
on Glass, and let us know in the forums. AUDIENCE: OK. Thanks. TIMOTHY JORDAN: Thank you. And I think, with that, we're
just out of time. Remember that we have
the Sandbox area. Please come up afterwards. And let's keep having
this conversation. Thank you so much.