Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Photo credit: TheVerge.com
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
About myself
Chua Zi Yong
Developing Android for about 5 years
Founder of Stream Media
Founder of CodeAndroid Singaporehttps://www.facebook.com/groups/codeandroid/
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
What we will cover today on Glass
This session will cover more on high level development consideration – less emphasis on design and technical discussions
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Basics of Google Glass
Introduction FrameworkConstraints
and Possibility
Resources
What is Glass? How to use Glass?
How it Feels [through Google Glass]_hd720.mp4 Google Glass How to use Glass hands-free_hd720.mp4
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Getting Started: https://developers.google.com/glass/
1) Take note of the design principles (very small screen!)
2) Choose your poison: Mirror API or GDK
3) Check out the samples and demos
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Developing with GDK
1) Run from Glass itself (offline!) unlike Mirror API
2) Based on Android 4.0.2, apps compiled as APK
3) Download using ADT (GDK Sneak Peak)
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
How is GDK related to Android development?
Introduction FrameworkConstraints
and Possibility
Resources
You can port your Android code and redesign the interface for Glass, supposedly - At this stage, not everything works, e.g. Play Services, default Share API
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
How is your app triggered?
Introduction FrameworkConstraints
and Possibility
Resources
- Command line (that’s how it was done in XE11)
- Voice trigger
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Voice trigger
Introduction FrameworkConstraints
and Possibility
Resources
- Voice trigger is used to launch your app
- You can use any commands during development
- Glassware only support standard set of voice commands (https://developers.google.com/glass/develop/gdk/input/voice)
- You can submit new commands for approval (which you will hear back in around 2 weeks)
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Contextual voice commands
Introduction FrameworkConstraints
and Possibility
Resources
- Sometimes, voice commands is more than “Take a Picture”
- Add voice prompt in voicetrigger.xml (“Ok glass, get directions to, home”)
<?xml version="1.0" encoding="utf-8"?><trigger keyword="@string/glass_voice_trigger"> <input prompt="@string/glass_voice_prompt" /></trigger>
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
3 types of interfaces
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Static Cards – appear to the right of Timeline
Right now it does nothing except “show you something”- Please help upvote issue 320 https://code.google.com/p/google-glass-api/issues/detail?id=320
Introduction FrameworkConstraints
and Possibility
Resources
Static cards
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Live Cards – appear to the left of Timeline - “live” interaction and card can update itself- User can interact with other cards while active
Introduction FrameworkConstraints
and Possibility
Resources
Live cards
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Immersions – takes over the whole screen- Like a normal Android app- Outside of Timeline- User cannot interact with cards unless they close your app
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
How to use the Interfaces- Immersion – standard Android app architecture
- Static Card – use TimelineManager from either running app or service (insert, update, query, delete)
- Live Card – will talk more next slide
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Live Card Architecture- Unlike an app, your default launch is a Live Card Service- Keeps on running- Need to create pendingintent to launch menu activity to
close the live card- 2 types of rendering – Low and Hi Frequency
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Live Card Architecture – Low Frequency Rendering- Small set of views and low update rate- For example, match score
Introduction FrameworkConstraints
and Possibility
Resources
Launch live card service
User says “Ok Glass, <trigger>
Remote View
Live Card
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Live Card Architecture – High Frequency Rendering- Dynamic rendering- For example, timer
Introduction FrameworkConstraints
and Possibility
Resources
Launch live card service
User says “Ok Glass, <trigger>
Drawing Logic, other services
SurfaceView
Live Card
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Other things to take note of- You can specify touch gestures (like a D-Pad)- Sensors: Voice Input, GPS, Accelerometer,, Camera- Glass heats up very fast and have low battery life
- Design your app to be as light weight as possible to reduce load
- Continuous video recording is about 45-60 minutes
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
See some code?
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
What is available by default- Google Search- Call/SMS/Hangout- Get Directions/POI Searches- Take Picture/Video- Google Music- Gmail- Google Now….
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
What interesting apps developers are building- Wolframalpha - “OK Glass, Compute, Population of
Finland”
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
What interesting apps developers are building- DriveSafe – Detects if you are dozing while driving and
give directions to nearest rest area
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
What interesting apps developers are building- WeMoGlass – Control Belkin WeMo devices at home
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
What limits developers right now?- Band-Aid everywhere – check issues often on the project
page, may take time to fix- E.g. mediascanner only works on reboot, share not working,
no GCM
- Certain features are Mirror API only, notification, action for static cards
- No emulator
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Resources for developers- Main Page https://developers.google.com/glass/- Project Home (https://code.google.com/p/google-glass-api/) for
list of bugs and upcoming enhancements- Stackoverflow (http://
stackoverflow.com/questions/tagged/google-gdk)- Unofficial Glassware list (http://
glass-apps.org/google-glass-application-list)
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Getting Glass- USD$1500 + tax- Must be over 18 and resident of United States- Must self collect at Google Office either in NYC or SF
- Choose color- Go through fitting process- Setup on your phone
- Need to get invite from Google (Register your interest through http://www.google.com/glass/)
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
What if I can’t get Glass?- You can emulate Glass on your Android device with the
instructions from http://www.elekslabs.com/2013/11/google-glass-development-without-glass.html (Or search “Glass development without Glass”, 3rd result)
- You can emulate the screen resolution on your device (caution: please get familiar with adb commands before you try)- Above 4.3: adb shell wm size 640x360- Below 4.3: adb shell am display-size 640x360
Introduction FrameworkConstraints
and Possibility
Resources
Developing Glass Apps Using GDK (XE12 Update) Follow me @chuazy
Questions?
Introduction FrameworkConstraints
and Possibility
Resources