2. @altolabs
#Codemotion #GoogleGlass
Who I am…
●Alain Regnier
●alain@altolabs.com / @altolabs
●CTO Alto Labs
●Spent 10 years in Silicon Valley
●#GlassExplorer for the last 18 months
●Organizer GDG Paris and Paris Glass User Group
●Provide consulting service around several Google Technologies including Google Glass
●Develop POCs, Prototypes and Applications on Google Glass
3. @altolabs
#Codemotion #GoogleGlass
Agenda
●What it is…
●How it works…
●What can we do…
●Glass Explorer program
●Google Glass v2
●Programming for Glass
●Thoughts after 1.5 years…
●Glass World
●Questions
15. @altolabs
#Codemotion #GoogleGlass
the Timeline
●Everything that you’ve done and received
●The most recent appears on the left, the oldest disappears on the right
●Composed of Cards
16. @altolabs
#Codemotion #GoogleGlass
Voice
“OK, Glass” followed by a command
Trackpad
●Click : activate/select/OK
●Swipe down: go back
●Swipe left/right: navigate the timeline
●Swipe down with 2 fingers: exit
●Camera button: take a picture / record a video
●Power Button (several secondes): turn on / turn off
●Backwards head move : activate
Applications
MyGlass Web
MyGlass Mobile
Controls
18. @altolabs
#Codemotion #GoogleGlass
What we can do…
●Take a picture
●Record a video
●Search on Google
●Request directions and get GPS navigation
●Send a message
●Call a contact
●Participate in a hangout (!)
●Receive notifications (email, Google+, Google Now…)
●Install Glasswares
19. @altolabs
#Codemotion #GoogleGlass
MyGlass Mobile
●Link your Google+ account (for example to synchronize your pictures)
●Connect your Glass to your mobile using bluetooth (phone calls, configuration, GPS…)
●Configure Wifi access points
●Activate Glasswares
26. @altolabs
#Codemotion #GoogleGlass
Glass Explorer program
●Google Glass do not exist as a product YET
●2000 developers who registered during Google I/O 2012
●Around 8000 more users selected through the #IfIHadGlass contest beginning of 2013
●Originally available only in US by invitation
●Access to prototype since april 2013
●Presentation event on the Google Campus
●Access to the Mirror API and related forums
●Entry in the program available on Google Play Store in the US
●Available in the UK since June 2014
31. @altolabs
#Codemotion #GoogleGlass
New Version
●Headphones to hear better in noisy environment
●Allows Prescription Glasses to be mounted
●Newer version of the CPU (OMAP 4430) supposedly increasing a bit performances
●CE mark on the Glass
●Lightweight titanium frames for Glass
●2 GB memory in latest versions
37. @altolabs
#Codemotion #GoogleGlass
Programming for Glass
●Mirror API : programming server side in Go, Java, Python, .Net, PHP… (original method)
●GDK (Glass Development Kit) Preview : Android programming in Java, running directly on the device
●WearScript : Javascript for Google Glass created by Brandyn White allowing quick and easy prototyping of application (supports other wearable devices)
41. @altolabs
#Codemotion #GoogleGlass
Mirror API
●Original way to program Google Glass
●Composed of RESTful services
●No need to execute code on the Glass
●Calls need to be authenticated using OAuth 2.0
●Starters projects available in Java, PHP, Python…
42. @altolabs
#Codemotion #GoogleGlass
# Insertion into Timeline : Text
@Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { String userId = AuthUtil.getUserId(req); Credential credential = AuthUtil.newAuthorizationCodeFlow().loadCredential(userId); ...
if (req.getParameter("action").equals("addtext")) { LOG.fine("Inserting Timeline Item: text"); TimelineItem timelineItem = new TimelineItem(); timelineItem.setText("You've got mail! " + new Date().toString()); timelineItem.setNotification(new NotificationConfig().setLevel("DEFAULT")); Mirror.Builder mb = new Mirror.Builder(new UrlFetchTransport(), new JacksonFactory(), credential); Mirror.Timeline timeline = mb.setApplicationName("GlassExplo").build().timeline(); timeline.insert(timelineItem).execute(); }
Servlet receiving the request
Insertion of a Text Card
Request example: http://localhost:8888/main?action=addtext
44. @altolabs
#Codemotion #GoogleGlass
GDK Developer Preview
●GDK = Glass Development Kit
●Allow to do development in your Android development environment
●Sneak Peek v1 release on november 19, 2013
●Very preliminary version before the Developer Preview!
●Based on Android 4.4
●Simple add-on for Glass specific features (voice commands, gestures, cards buildup…)
●Possibility to develop with NDK (ex. Translation)
45. @altolabs
#Codemotion #GoogleGlass
GDK Developer Preview (2)
●Create cards
●Provide access to sensors
●Display preview stream of camera
●Capture pictures and videos
●Capture voice
●Handle trackpad directly
●Display full screen
●Full access to Network
46. @altolabs
#Codemotion #GoogleGlass
GDK : Card creation (new)
●A standard card has:
●A main text
●A footer
●One or several images
// Create a card with a full-screen background image. View view1 = new CardBuilder(context, CardBuilder.Layout.TEXT) .setText(" This card has a puppy background image.") .setFootnote(How can you resist?") .setTimestamp("just now") .addImage(R.drawable.puppy_bg) .getView();
48. @altolabs
#Codemotion #GoogleGlass
Development with WearScript
●One line installer on Linux
curl -L http://goo.gl/nRjW6y > install.py && python install.py
<html style="width:100%; height:100%; overflow:hidden"> <body style="width:100%; height:100%; overflow:hidden; margin:0"> <canvas id="canvas" width="640" height="360" style="display:block"></canvas> <script> function server() { WS.log('Welcome to WearScript'); // Write to Android Log and Playground console WS.say('Welcome to WearScript'); // Text-to-Speech WS.sound('SUCCESS') // Changes canvas color with head rotation WS.sensorOn('orientation', .15, function (data) { ctx.fillStyle = 'hsl(' + data['values'][0] + ', 90%, 50%)' ctx.fillRect(0, 0, 640, 360); });
49. @altolabs
#Codemotion #GoogleGlass
Developers Guidelines
●Design for Glass
●Always test on Glass
●Send content only if important right now
●Avoid unexpected
●Best contrast: white text on dark background
●Use templates
●Test with Playground
●If you want to display text, just send text: it will be automatically spread on several cards
51. @altolabs
#Codemotion #GoogleGlass
Thoughts after 1.5 years…
●Very interesting concept with LOT of potential
●Look Ma… No hands!
●Prototype light and comfortable
●Allow to keep normal field of vision intact
●Several ways to develop applications (server side, on the device, using javascript…)
●Thousands of developers currently writing applications for Glass
● Updates with new features
●Prescription Glasses support
52. @altolabs
#Codemotion #GoogleGlass
Thoughts after 1.5 years…
●Prototype officially only for American (and British) Explorers for now Battery doesn’t last long enough
●Difficult to hear in noisy environment
●Front facing camera making some people uncomfortable
●French accent not always recognized
●No easy way to secure the Glass when you walk in public areas
●No way to prevent updates (can be scary)
●Not yet available to the public
●When plugged in, the Glass turn on on their own
●Updates sometimes remove features
53. @altolabs
#Codemotion #GoogleGlass
Possible Use Cases
●Facial recognition (Google doesn’t want it for now)
●Secondary screen (TV, Gaming, Checklists…)
●Recording of places, people… with comments
●Access to medical files during surgery
●Ads/QR Code scanning to get more details about a product or compare prices
●Control moving devices (drones…)
●See notes while making a presentation
●Direct view training
●Augmented reality (partial)
●…