SFCC-2014-Glass-Fun-Walt-Quesada

advertisement
Google Glass Fun with C#,
Java and more…
Getting started with Google Glass
Introductions
About Me
Technologist, Futurist,
and Glass Explorer
Walter Quesada is a Software Engineer with over
18 years of experience architecting and
developing solutions for SMB’s to Fortune 500
companies.
Walter
Quesada
Enjoying some butterbeer
Currently working on proof-of-concepts for new
and emerging technologies such as Google
Glass and Bluetooth Low Energy applications.
Find out more on his personal blog at http://qnovations.com
About Google Glass
Overview
Google Glass is a wearable computer with
an optical head-mounted display (OHMD)
that is being developed by Google in the
Project Glass research and development
project, with a mission of producing a
mass-market ubiquitous computer.
Google Glass displays information in a
smartphone-like hands-free format, that
can communicate with the Internet via
natural language voice commands.
Source: http://en.wikipedia.org/wiki/Google_Glass
About Google Glass
Specifications
OS
CPU
Android (4.0.3)
OMAP 4430 SoC, dual-core
Memory
1GB RAM (682MB for developers)
Storage
16 GB Flash total (12 GB free)
Display
Prism projector, 640×360 pixels (equivalent of a 25 in/64 cm screen
from 8 ft/2.4 m away)
Sound
Input
Camera
Connectivity
Weight
Bone conduction transducer
Voice command through microphone, accelerometer, gyroscope,
magnetometer, ambient light sensor, proximity sensor
Photos - 5 MP, videos - 720p
Wi-Fi 802.11b/g,[7] Bluetooth,[7] micro USB
50g
Source: http://en.wikipedia.org/wiki/Google_Glass
About Google Glass
Tooling
API’s, IDE’s and more…
 Mirror API (JSON, REST, OAuth)
 Glass Development Kit Sneak Peek (GDK, Native)
 Android Developer Tools (ADT, eclipse)
 Android Studio (JetBrains IntelliJ IDEA)
 No Emulators (Some hacks out there)
 Screen Monitors (asm.jar, droidAtScreen.jar)
 Wearscript JS (http://www.wearscript.com)
About Google Glass
Design
A UX paradigm shift…
 Learn the principles of Glass design
 See how the Glass UI works
 UI patterns
 Understand the Glass style
 Implement best practices in your Glassware
Source: https://developers.google.com/glass/design
Glass Warning
Safety First
Be aware of your surroundings…
 Driving (Accidents, Tickets)
 Banned (Bars, Restaurants, Movie Theatres)
 Shady characters (Mugged, Theft)
Getting Started
Make the Case
Convergence Age
Key points…
 177 million wearables projected by 2018 (Cisco)
 B2B, Industrial, Gov applications are the way to go…
 Think about existing clients/employer use cases,
create value…
 Firefighters, Surgery, Virtual Classrooms, Airlines,
what else?
Getting Glass
Get Invited
 Explorer Program
 $1,500 (Free Shipping)
 Wait List
 1 Per Order
 Choice of 5 colors
 30 Day Refund
 Additional Items from
$50 to $225.
 Google I/O 2014
 Might be available
Getting Glass
eBay
 Not recommended
 Explorer Program Code
 $5+ for Invite Code
 Move fast, expires in 7 days!
 Device (perfectly legal!)
 Over $1,500
 Do your due diligence
 Good luck!
Unboxing Glass
Contents
Like a opening birthday gift…
 Device (headset)
 Twist-on Active Shade
 Mono Earbud
 Pouch
 Charger & Cable
Connecting Glass
Synchronize
Downloads, USB, WiFi…
 MyGlass app for Android and iOS… sorry WP 
 QR Code to setup Wi-Fi (if not on Android or iOS)
 USB cord for loading apk’s (Turn on debugging!)
Known Issues
Beta
Highly experimental…
 Bright light! (Hard to see screen in direct sun light)
 Overheats (Video, charging while on)
 API changes (getLiveCard is now createLiveCard, etc)
 No Built-in Contextual Voice Commands
 No 3G (Tethering or Wi-Fi required)
 Worst Desktop Web Site browsing experience
 iPhone Screen Cast doesn’t support touch
 SDK limitations (ACTION_CALL does not work!)
 Google Play not available
Go to http://stackoverflow.com/questions/tagged/google-glass and https://code.google.com/p/google-glass-api/issues/list for more known issues and workarounds.
The Fun Part!
Developing Glass
Source: https://developers.google.com/glass/develop
Developing Glass
Source: https://developers.google.com/glass/develop
User Interface
Source: https://developers.google.com/glass/develop
Touch Gestures
Enum Values
Gesture.LONG_PRESS
Gesture.SWIPE_DOWN
Gesture.SWIPE_LEFT
Gesture.SWIPE_RIGHT
Gesture.SWIPE_UP
Gesture.TAP
Gesture.THREE_LONG_PRESS
Gesture.THREE_TAP
Gesture.TWO_LONG_PRESS
Gesture.TWO_SWIPE_DOWN
Gesture.TWO_SWIPE_LEFT
Gesture.TWO_SWIPE_RIGHT
Gesture.TWO_SWIPE_UP
Gesture.TWO_TAP
Source: https://developers.google.com/glass/develop/gdk/reference/com/google/android/glass/touchpad/Gesture
Voice Input
ok glass
SpeechRecognizer
RecognizerIntent
Source: https://developers.google.com/glass/develop/gdk/input/voice
Location and Sensors
LocationManager locationManager; // initialized elsewhere
// This example requests fine accuracy and requires altitude, but
// these criteria could be whatever you want.
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(true);
List<String> providers = locationManager.getProviders(
criteria, true /* enabledOnly */);
for (String provider : providers) {
locationManager.requestLocationUpdates(provider, minTime,
minDistance, listener);
}
Source: https://developers.google.com/glass/develop/gdk/location-sensors
Location and Sensors
The following Android API sensors are supported on Glass:
Sensor.TYPE_ACCELEROMETER
Sensor.TYPE_GRAVITY
Sensor.TYPE_GYROSCOPE
Sensor.TYPE_LIGHT
Sensor.TYPE_LINEAR_ACCELERATION
Sensor.TYPE_MAGNETIC_FIELD
Sensor.TYPE_ORIENTATION (Deprecated, use SensorManager.getOrientation() instead.)
Sensor.TYPE_ROTATION_VECTOR
Source: https://developers.google.com/glass/develop/gdk/location-sensors
Camera
You have two options for capturing images or video:
 Calling the built-in camera activity with startActivityForResult().
Use this option when possible.
 Building your own logic with the Android Camera API.
Follow these guidelines if you are using this method:
 Take a picture on a camera button click and a video on a long click, just like
Glass does.
 Indicate to the user whether a picture was taken or a video was recorded.
 Keep the screen on during capture.
Source: https://developers.google.com/glass/develop/gdk/location-sensors
Camera Issues
Scrambled Embedded Preview
Camera.Parameters params = camera.getParameters();
params.setPreviewFpsRange(30000, 30000);
camera.setParameters(params);
Source: http://stackoverflow.com/questions/20557686/glass-camera-preview-display-is-garbled
Winky (< XE11) EyeGesture (XE12)
import com.google.android.glass.eye.EyeGesture
import com.google.android.glass.eye.EyeGestureManager
Source:
http://www.engadget.com/2013/05/02/go
ogle-glass-developer-eye-wink
Source: https://github.com/kaze0/winky
Source: http://stackoverflow.com/questions/21175631/accessing-rear-facing-camera-on-glass
Source: https://developers.google.com/glass/develop/gdk/location-sensors
Developing Glass
GDK Sneak Peek
Pick one IDE!
 ADT/eclipse
 Android Studio
 Android SDK (API 15)
and GDK Sneak Peek
GDK/ADT/eclipse Code Demo
Developing Glass
Mirror API
JSON, REST, OAuth
 Any language (C#, PHP, Node.js, VB6, etc…)
 Download MirrorQuickStart .NET project
 Create Google Glass Project (name, URL, etc)*
 Update Models/Config.cs
Source: https://cloud.google.com/console/project
Mirror API/VS.NET Code Demo
Thank You!
Resources
This presentation and source code is available online.
 Download at http://qnovations.com/codecamp
Contact information…
 Twitter: http://twitter.com/waltque
 LinkedIn: http://linkedin.com/in/waltq
 Email: wquesada@live.com
Download