DevIgnition 2013 PRESENTED BY LUIS DE LA ROSA DIRECTOR OF TECHNOLOGY @louielouie DEVELOPING FOR GOOGLE GLASS
GLASS - MASS-MARKET GENERAL COMPUTING WEARABLE - ROUGHLY 40,000 BETA TESTERS (EXPLORERS) -CHECK YOUR EMAIL FOR INVITE -TWO WAYS TO DEVELOP FOR IT: MIRROR API AND GDK
GLASS HARDWARE - 640X360 LANDSCAPE DISPLAY - APPEARS LARGE BUT IN PERIPHERY - 5MP CAMERA WITH 720P VIDEO, MIC, SPEAKER - LOCATION - SENSORS - TETHERS TO ANDROID OR IPHONE - WIFI + BLUETOOTH
GLASS GESTURES - TAP - BRING UP MENU / EXECUTE MENU ITEM - SWIPE DOWN - GO BACK / EXIT IMMERSION - TWO-FINGER - SLEEP - SWIPE BACK - GO LEFT IN TIMELINE - SWIPE FORWARD - GO RIGHT IN TIMELINE - SWIPE FASTER TO GO FARTHER
VOICE RECOGNITION - LAUNCHES GLASSWARE FROM HOME CARD - REPLACES KEYBOARD
HEAD MOVEMENT - LOOK UP - WAKE FROM SLEEP - HOME CARD TRACKS TO SCROLL VOICE MENU - CAN TRACK VIA SENSORS WITH GDK
TIMELINE - EVERYTHING IS A CARD - HOME CARD IS WHERE YOU START - RIGHT OF HOME CARD IS THE HISTORY - EX: PICTURES YOU TOOK - LEFT OF HOME CARD IS CURRENT + FUTURE - EX: WEATHER, UPCOMING GAMES
TYPES OF GLASSWARE - STATIC CARD - LIVE CARD - LOW FREQUENCY - LIVE CARD - HIGH FREQUENCY - IMMERSION
COMMON CARD LAYOUT
COMMON CARD LAYOUT WITH IMAGE
STATIC CARD - DISPLAY INFO WITH NO INTERACTION - EXCEPT FOR CONTEXT MENU - NO GESTURES AVAILABLE - CAN T MAKE VIA GDK CURRENTLY - USE MIRROR API
MORE ABOUT STATIC CARDS - SUPPLY TEXT TO BE READ ALOUD - ATTACH AUDIO, IMAGE, VIDEO - PAGINATE LONG TEXT - BUNDLE MULTIPLE CARDS - CUSTOM MENU ITEMS
INSERTING A STATIC CARD WITH MIRROR API - CREATE GOOGLE API PROJECT - AUTHORIZE WITH OAUTH mirror = MirrorClient.new(get_stored_credentials(us er_id)) mirror.insert_timeline_item({ text: 'Welcome to the Mirror API Ruby Quick Start' })
MIRROR API CAN ALSO - ACCESS LOCATION - SHARE OTHER CARDS WITH YOUR GLASSWARE SERVER (LIKE ANDROID SHARE... MENU ITEM) - HANDLE CUSTOM MENU ITEMS
GDK - GLASS DEVELOPMENT KIT - BUILT ON ANDROID 4.0.3 (ICE CREAM SANDWICH) - ALLOWS OFFLINE, SENSORS, MORE UI CONTROL UNLIKE MIRROR - NO EMULATOR
LIVE CARD - LOW FREQUENCY - LIVE CONTENT, SOME USER INTERACTION - SWIPE DOWN, LEFT AND RIGHT NOT AVAILABLE - CONTENT UPDATED AT LOW FREQUENCY (EVERY FEW SECOND AT MOST) - SERVICE - USE SUBSET OF AVAILABLE ANDROID UI VIA REMOTEVIEW
LIVE CARD - HIGH FREQUENCY - LIVE CONTENT, SOME USER INTERACTION - SWIPE DOWN, LEFT AND RIGHT NOT AVAILABLE - CONTENT UPDATED AT HIGH FREQUENCY - SERVICE - USE SURFACE TO DO CUSTOM DRAWING
IMMERSION - TAKE OVER ENTIRE SCREEN - ALL GESTURES AVAILABLE - DOES NOT LIVE IN TIMELINE - USE REGULAR ANDROID UI - USE REGULAR ACTIVITY CLASS - CAN ACT LIKE A MINI-TIMELINE VIA CARD + CARDSCROLLVIEW
HELLO GLASS (IMMERSION) - LET S MAKE A GLASS APP WITH THE GDK! - I MEAN... GLASSWARE!
INSTALLING GDK - SDK MANAGER
NEW PROJECT WIZARD
TARGET THE GDK - PROJECT PROPERTIES
HMM... THAT DOESN T LOOK RIGHT
GETTING THE GLASS THEME In AndroidManifest.xml, delete: android:theme="@style/apptheme">
USE THE LIBRARY, LUKE! In AndroidManifest.xml, add: <uses- library android:name="com.google.android.glass" android:required="true" />
VOICE ACTIVATE! In AndroidManifest.xml, add: <intent- filter> <action android:name="com.google.android.glass.action. VOICE_TRIGGER"/> </intent- filter> <meta- data android:name="com.google.android.glass.voicetr igger" android:resource="@xml/glass_voice_trigger"/>
VOICE ACTIVATE! (PART 2) Create a res/xml/glass_voice_trigger.xml: <?xml version="1.0" encoding="utf- 8"?> <trigger keyword="@string/ glass_voice_trigger"/>
VOICE ACTIVATE! (PART 3) Add to res/values/strings.xml: <string name="glass_voice_trigger">say hello</string>
BUILDING OUT THE UI - USE REGULAR ANDROID UI CLASSES FOR AN IMMERSION - REMEMBER TO UTILIZE GESTURES, SINCE IT IS NOT A TOUCH SCREEN - GESTUREDETECTOR - FINGER COUNT - SCROLL - TWO FINGER SCROLL
TO SHOW A MENU - USE REGULAR ANDROID MENU METHODS: oncreateoptionsmenu() onoptionsitemselected() onoptionsmenuclosed()
FURTHER RESOURCES - HTTPS://DEVELOPERS.GOOGLE.COM/ GLASS/COMMUNITY - TAG [GOOGLE-GDK] ON STACK OVERFLOW - PUBLIC BUG / ISSUE TRACKER - SAMPLE PROJECTS VIA WIZARD OR GITHUB
QUESTIONS Luis de la Rosa Director of Technology, savvy apps http://savvyapps.com Google+: google.com/+luisdelarosa Twitter: @louielouie Email: luis@savvyapps.com Presentation, notes and links: luisdelarosa.com/glass?
COME DO THE BEST WORK OF YOUR CAREER HTTP://SAVVYAPPS.COM/ luisdelarosa.com/glass