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