An introduction to Google Glass and Glassware design and development. It includes a prototype built by Nurun SF using the Google Mirror and Fitbit APIs.
A few notes on the slides:
Slide 2: video URL http://bit.ly/125gztQ. This video shows the basics of navigating and reading content. It’s a good introduction, but there are a few more things to know...
Slide 4: An a advantage of Glass as a wearable device is hands free operation. For example, when a new card arrives, an audio chime is played and the user can open the card either by touching the temple or by tilting your head back.
Slide 5: In addition to gestures, voice commands are sometimes available to support hands free use. Speaking to Google Glass is entirely optional, all voice commands are also available through the touch pad.
Slide 8: The form-factor has great potential to present content without pulling you out of context. It is readily available, not in your bag or pocket. It overlays image and audio over the environment.
Slide 9: The Mirror API is the standard way to develop applications today. The interaction model strictly follows the core UX of Glass (timeline cards and actions). Web applications offer a way to break through the boundaries of the Mirror API and Native Android applications (API level 15) are useful for prototyping more extensive Glassware experiences. It is currently unknown how native apps will be discovered, installed and launched on the device.
Slide 11: A Glassware server sends content to Glass via Google servers. Google also manages responses from the user, posting data back to the Glassware server based on specifics provided in a subscription created using the API.
Slide 12: These cards are in the Mirror API documentation as examples of typical layout and information density.
Slide 17: video URL http://vimeo.com/74146772
Slide 19: The dashboard is inserted when you install the prototype. A pinned card is easier to find in the future (it appears to the left of the home screen). The card cannot be pinned by default, the user must pin it themselves.
Slide 21: When a card is shared, a copy is made and inserted into the Glass timeline, Google+ is given ownership and updates it as needed to work with their Glassware application.
Slide 28: Rather than inserting multiple dashboard cards, we update a single card. We can also use it to prompt the user to do different things (such as pin the card, or link their Fitbit account).
Slide 29: In our prototype, we confirm that water has been logged by updating the status screen. An alternative would be to insert a card with the confirmation, but that would be unnecessarily noisy.
Google Glass and the Mirror API is ideal for delivering glanceable displays of data at key moments throughout the day, adding a layer of feedback and encouragement to the Fitbit experience.
Thank you.
3. GOOGLE GLASSWARE
Nested cards
3
A white dog-ear in the corner of
a card indicates that additional
cards are bundled with it.
Touching the temple displays a
nested timeline of cards.
4. GOOGLE GLASSWARE
Head gestures
4
Tilt head back to wake Glass,
nudge head up to sleep Glass.
Provide basic hands-free control
for user initiated actions and
opening new cards.
5. GOOGLE GLASSWARE
Voice Commands
5
“Ok Glass” appears when voice
commands are available and saying
it will open a list of the commands.
Currently “Ok Glass” appears on
the home screen and on newly
arrived Cards.
Voice commands accessible by saying “OK Glass”
on the home screen.
6. GOOGLE GLASSWARE
The basics of the Glass UX
6
• The display is typically off
• The right temple is a touch pad
• Activate Glass with a touch or a head tilt
• The clock is the home screen
• Information is displayed as cards in a timeline
• Left of home is Google Now
• Right of home are items from the past
• Cards can be bundled
• New cards trigger an audio chime
• Voice control starts with “Ok Glass”
8. GOOGLE GLASSWARE 8
Glassware should take advantage of its unique
wearable form factor.
Experiences should be lightweight, timely, and
whenever possible hands-free.
9. GOOGLE GLASSWARE 9
Mirror API
Server applications can use the
Mirror API to interact with a
user’s Glass timeline.
Glassware using the API can
create and update cards and
subscribe to user actions.
The Mirror API is well suited to
delivering timely information
and common Glass interactions.
Web
Glass includes a modern web
browser.
By linking to browser based
applications, cards can extended
the standard interactivity of the
timeline.
Standard HTML, CSS and JS
development techniques are
supported.
Native
Glass runs the Android OS and
standard Android applications
are supported.
Native apps provide the most
flexibility for Glassware, but
are not yet integrated into the
overall Glass experience.
A Glass specific SDK (GDK) will
be released by Google in the
future.
Three options for Glassware development
11. GOOGLE GLASSWARE 11
Mirror API
Web-based services can use the
Mirror API to send and receive
content from the user’s Glass.
No code runs on the device, all
updates and interactions are
mediated by the API.
Google
Glass
Mirror API
HTTP (REST)
Glassware
Glass sync.
12. GOOGLE GLASSWARE 12
Card layouts use HTML and CSS
A selection of recommended card layouts leveraging default CSS.
13. GOOGLE GLASSWARE 13
What can a card do?
Each card that does not contain a bundle can
include options for further interaction.
The following standard actions are available:
• Reply
• Reply All
• Delete
• Share
• Read Aloud
• View Website
• Call (voice)
• Navigate
• Pin/Unpin
Additionally, custom actions can be defined.
Card actions menu
Actions for a card are scrolled through much like a
timeline.
14. GOOGLE GLASSWARE 14
What can the server do?
The Mirror API supports the following interactions between the
server application and the Glass user’s timeline:
• Submit cards and bundles to the user's timeline
• Attach media to cards
• Subscribe to notifications that the user has done something with the card
• Get last known location or a list of recent locations
• Generate maps formatted for display on Glass (with points and polylines)
• Read, edit, delete and add contacts
16. GOOGLE GLASSWARE 16
The Fitbit Glassware prototype delivers
Fitbit data to the Glass timeline using the
Mirror API and Fitbit's public API.
It is designed to help users reach their
personal goals with timely, easily accessible
microinteractions.
19. GOOGLE GLASSWARE 19
The dashboard
The dashboard includes key data points
and is updated as content is synched to
Fitbit (but no more than once an hour).
Users are able to log water consumption
using a custom action.
The card can be pinned into the Now
section of the timeline for easy access.
20. GOOGLE GLASSWARE 20
Badge cards
Badges are inserted into the timeline
as they are earned.
Two standard actions are included in
the card: “Read aloud” and “Share.”
If you share a Badge, the user’s Glass
presents contacts registered – by this
and other Glassware apps – to receive
text content.
21. GOOGLE GLASSWARE 21
Shared badge card (Google+)
Once a card is shared the receiving Glassware owns the card and updates it to the appropriate format.
23. GOOGLE GLASSWARE 23
Fitbit Glassware architecture
The application is a servlet based Java
application running on AppEngine and
communicating to the Mirror and Fitbit
APIs through REST calls.
Data related to the application is stored in
the AppEngine datastore.
Google
Glass
Mirror API
HTTP (REST)
Glass sync.
Glassware
(AppEngine)
Fitbit
HTTP
(REST)
24. GOOGLE GLASSWARE 24
Mirror API Basics
The API is a simple REST based set of
services for managing timeline cards for our
application.
The API allows us to do CRUD operations
on cards and manage their menu items.
Wrappers are available in Java, Python and
other languages.
Raw HTTP
Java
25. GOOGLE GLASSWARE 25
Subscriptions
The API supports subscription to the standard
(delete, share, etc.) and custom actions (log
water).
User actions cause the Google servers to make
an HTTP post to an endpoint in the Glassware
server app defined in the subscription.
The post contains information required to
identify the user, card and action.
{
"collection":"timeline",
"itemId":"----",
"operation":"UPDATE",
"userToken":"----",
"userActions":[
{
"type":"CUSTOM",
"payload":"drink_water"
}
]
}
JSON object for the custom “drink water” action
26. GOOGLE GLASSWARE 26
An example, installing and logging water.
• The user installs our glassware
• Our app inserts a card (e.g. the dashboard) with actions using
the Mirror API
• Our app subscribes to user actions using the Mirror API,
defining an endpoint to receive notifications
• User triggers the “log water” action on their Glass device
• Google sends a JSON document to our server
• Our app updates the user’s Fitbit account
• Our app confirms action by updating the dashboard card in
their Glass timeline
28. GOOGLE GLASSWARE 28
Take advantage of the update API
Cards within a particular Glassware's
collection (cards it inserts or that are shared
to it) can be updated.
Updates can be partial or complete. They
can add children cards, creating a bundle.
We use a single card for the dashboard,
updating it over time.
29. GOOGLE GLASSWARE 29
All feedback is provided via cards
The only way for an app to give feedback to
the user is by inserting a card or updating an
existing card.
Installation and other key interactions
should be confirmed by inserting new cards
or updating existing ones.
The Elle Glassware sends a card to confirm
installation before sending any content.
https://www.elleforglass.com/
30. GOOGLE GLASSWARE 30
The playground facilitates design iteration
Previewing designs in the
playground makes iterations
easy.
JSON defining the layout is
generated and can be copied
to application templates.
https://developers.google.com/glass/playground
31. GOOGLE GLASSWARE 31
The web plays a key role in Glassware
App installation happens online and the process
finishes on a page served by the Glassware.
At a minimum, this page should confirm
installation and set expectations.
Elle is a good example of how the website can
extend the Glassware experience. It includes
settings and provides access to content
bookmarked while reading cards.
https://www.elleforglass.com/
33. GOOGLE GLASSWARE 33
What can not be done?
To protect privacy and improve quality, Google will be
reviewing applications.
Google’s terms of service restrict what a developer can do
with Glassware, most notably (at this time):
• You can’t show ads
• You can’t use or resell data collected for ad selling purposes
• You can’t charge for Glassware
• You can’t use the camera or microphone to recognize anyone
other than the registered Glassware user
34. GOOGLE GLASSWARE 34
Some Glass FAQs
• Screen size? 640×360 -- equivalent to a 25” TV screen from 8 feet away.
• How does it get online? WiFi and via paired Android phone (bluetooth).
• How does it text and place calls? via paired Android or iOS phone (bluetooth).
• Sensors? Camera, Mic, Light, Proximity, Gyroscope, Magnetometer, and Accelerometer.
• Warby Parker partnership? Potentially, according to NYTimes.
• Scrolling within a card/screen? In general no. The “Ok Glass” menu does scroll and pages in
the web browser scroll. Cards do not scroll, they paginate.
• Augmented Reality? Conventional, real-time AR use-cases are possible within Native apps,
but not the mirror API.
• Cost? Currently $1500 (invite only), the media and tech pundits expect it will be less at launch.