Google Glass Development Kit

ander.martinez@mundoglass.es
carlos.fernandez@mundoglass.es

@mundoglass_es

www.mundoglass.es
Mundoglass
Quienes somos

Qué hacemos

Laboratorio
Startup
Desarrollo
Somos Explorers
Open Source / Comunidad
Google Glass Development Kit
Mundoglass
Componentes GDK

Tipo

Invocación por parte del usuario

Elementos UI

GDK

OK Glass + ….

Live card

Mirror

Elemento de menú

Static card

GDK + Mirror

Card en el timeline

Inmersión
Servicio Glassware/Web
Mundoglass
Características/Adaptaciones

Add-ons

Provider de localización

Trigger de voz

Intent de cámara

Detección de Gestos (gesture detector) para el control
del touchpad

Intent de reconocimiento (RecognizerIntent)
Menú de opciones

Constructor de tarjetas y scroller de tarjetas
Live cards
Interfaz de Usuario
Mundoglass
Interfaz de Usuario
Glass Themes / UI Widgets
GDK proporciona themes y widgets por defecto compatibles con el look&feel de Glass
Para usar look&Feel de glass, eliminar la declaración de <theme> en el Android Manifest al crear el proyecto.

Inmersions
Cards

Live cards

Static
Mundoglass
Live cards

Low Freq. Rendering

Visualización en silencio - inmediata
https://developers.google.com/glass/develop/gdk/ui/live-cards

High Freq.
Touch Gestures - Voice Input - Location/Sensors
Mundoglass
Touch Gestures
Gestures
LONG_PRESS, SWIPE_DOWN, SWIPE_LEFT, SWIPE_RIGHT, SWIPE_UP, TAP, THREE_LONG_PRESS, THREE_TAP, TWO_LONG_PRESS,
TWO_SWIPE_DOWN, TWO_SWIPE_LEFT, TWO_SWIPE_RIGHT, TWO_SWIPE_UP, TWO_TAP

Activity Gestures
Permite definir acciones en base a Gestos para una actividad
View Gestures
Permite definir acciones en base a Gestos para una vista en concreto.
Mundoglass
Voice Input
Triggers
Ok Glass
Glassware
How to
AndroidManifest.xml
string.xml
voice_trigger voice_prompt

voice_trigger.xml
<trigger keyword=”@string/voice_triger”>
<constraints…>
</trigger>

Activity
startActivityForResult -> Intent ACTION_RECOGNIZE_SPEECH

onActivityResult -> recuperaremos el texto obtenido (results)

<application..>
<activity | service ...>
<intent-filter>
<action android:name=
"com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>
<meta-data android:name=
"com.google.android.glass.VoiceTrigger"
android:resource="@xml/voice_trigger" />
</activity | service>
Mundoglass
Location and Sensors
Api Android

Location

Location Manager - Location Provider - Criteria

Glass: Location providers dinámicos incluyendo provider remotos vía Bluetooth-paired - MyGlass
Aproximaciones:
Criteria
Iterar
Sensores

TYPE_ACCELEROMETER

TYPE_MAGNETIC_FIELD

TYPE_GRAVITY

TYPE_ORIENTATION (deprecated)

TYPE_GYROSCOPE

TYPE_ROTATION_VECTOR

TYPE_LIGHT

TYPE_LINEAR_ACCELARITION
Instalación y despliegue GDK
Mundoglass
¿GDK?
API Android estándar compilado para Glass + API extra específico para Glass
Disponible 19 Nov. 2013

Instalación
Android SDK Manager : Android 4.0.3 (API 15) SDK - Glass Development Kit Sneak Peek
Activar Glass USB debug: Settings -> Device Info -> Turn on Debug
Settings:
Minimum and Target SDK: 15
Compilar con: Glass Development Kit Sneak Peek
Temas/Themes: None (borrar themes de AndroidManifest.xml), permite aplicar Glass themes.
Importar Android sample projects (File->New Project->Android sample projects...)
Mundoglass
Despliegue de aplicaciones nativas en Glass

Desarrollo
adb, IDE, launchy

Validación de aplicaciones
https://developers.google.com/glass/distribute/index

Aplicaciones aprobadas por Google
Es un .apk que se descarga desde google.com/myglass
Proceso de validación contra webs en proceso.
Aplicaciones que usan GDK
Mundoglass
Aplicaciones que usan GDK
Demos adaptadas a España:
Worldlens- Inmersión & offline & hardware
Strava - Livecards
Golf. Hay varios campos en la comunidad de Madrid que están mapeados.
Spellista - Inmersion
WorldGlassTv
GDK vs Mirror API
Mundoglass
GDK Sneak Peek vs Mirror API
Mirror
Desde el primer día
Desarrollador backend (php, java, go, python…)
Static cards, manejar notificaciones, compartir
elementos
Online
Ubicación cada 10 min.

vs
Disponibilidad
Target
UI

Conectividad
Location

GDK
Desde hace 2 semanas.
Desarrollador android/c/c++ NDK
Livecards, inmersions

Online/offline
Ubicación tiempo real
Acceso al hardware/sensores

Mirror API maduro/estable

Vers.

GDK, 1era versión
¿Actualización GDK?
Mundoglass
Patrones típicos de desarrollo
Con Mirror:
- Notificaciones periódicas (mandando una tarjeta al timeline)
- Compartir (por ejemplo una foto a facebook)
Con GDK:
- Tareas en curso, que el usuario está haciendo y para las que necesita información actualizada en tiempo real
Ejemplo: Strava (información de progreso al ir en bici)
- Inmersiones (cogen “el foco” tanto de Glass como del usuario)
Nuestra experiencia
Otra forma de programar para Glass:
OpenShades
Mundoglass

Herramientas y librerías para Glass
Open Source
Integra librerías disponibles para Android, como OpenCV
WearScript - (PhoneGap para Glass): Acceso a los sensores de Glass desde JavaScript
WebView para ejecución del JavaScript
- Permite desarrollar pruebas de concepto muy rápidamente
- Permite intercambio de scripts entre usuarios sin utilizar la plataforma de Google
Mundoglass
Ejemplo trivial:
// Stream camera images and all sensors to the WearScript Playground Webapp
function server() {
WS.log('Welcome to WearScript'); // Escribir a log y consola
WS.say('Welcome to WearScript'); // Texto-a-voz
// Todos los sensores
var sensors = ['gps', 'accelerometer', 'magneticField', 'orientation', 'gyroscope',
'light', 'gravity', 'linearAcceleration', 'rotationVector'];
for (var i = 0; i < sensors.length; i++)
WS.sensorOn(WS.sensor(sensors[i]), .15, 'cb');
WS.cameraOn(2);
WS.dataLog(false, true, .15);
}

https://github.com/OpenShades/wearscript
Mundoglass
Y para terminar...

Primer Hackaton de Glass
Un día dedicado a disfrutar programando para el nuevo dispositivo.
- Equipos de 3 ó 4 personas (pueden venir formados o hacerse sobre la marcha).
- Aforo: 30 personas
- 4 Glass disponibles para probar
PREMIO:
- Una invitación para comprar Glass para cada miembro del equipo ganador.
- Para una de ellas (por sorteo) MundoGlass se encarga de todos los trámites de compra e importación - el ganador lo
recoge en Madrid.
PARTICIPACIÓN:
15 euros por persona (incluye pizzas)
http://glasshackaton.eventbrite.es/ - clave: MUNDOGLASS
Mundoglass
Referencias
Glass Developers
https://developers.google.com/glass/

OpenShades
http://www.openshades.com/
¡¡¡Gracias!!!

ander.martinez@mundoglass.es
carlos.fernandez@mundoglass.es

@mundoglass_es

www.mundoglass.es

Desvelando el GDK - Droidcon Spain

  • 1.
    Google Glass DevelopmentKit ander.martinez@mundoglass.es carlos.fernandez@mundoglass.es @mundoglass_es www.mundoglass.es
  • 2.
  • 3.
  • 4.
    Mundoglass Componentes GDK Tipo Invocación porparte del usuario Elementos UI GDK OK Glass + …. Live card Mirror Elemento de menú Static card GDK + Mirror Card en el timeline Inmersión Servicio Glassware/Web
  • 5.
    Mundoglass Características/Adaptaciones Add-ons Provider de localización Triggerde voz Intent de cámara Detección de Gestos (gesture detector) para el control del touchpad Intent de reconocimiento (RecognizerIntent) Menú de opciones Constructor de tarjetas y scroller de tarjetas Live cards
  • 6.
  • 7.
    Mundoglass Interfaz de Usuario GlassThemes / UI Widgets GDK proporciona themes y widgets por defecto compatibles con el look&feel de Glass Para usar look&Feel de glass, eliminar la declaración de <theme> en el Android Manifest al crear el proyecto. Inmersions Cards Live cards Static
  • 8.
    Mundoglass Live cards Low Freq.Rendering Visualización en silencio - inmediata https://developers.google.com/glass/develop/gdk/ui/live-cards High Freq.
  • 9.
    Touch Gestures -Voice Input - Location/Sensors
  • 10.
    Mundoglass Touch Gestures Gestures LONG_PRESS, SWIPE_DOWN,SWIPE_LEFT, SWIPE_RIGHT, SWIPE_UP, TAP, THREE_LONG_PRESS, THREE_TAP, TWO_LONG_PRESS, TWO_SWIPE_DOWN, TWO_SWIPE_LEFT, TWO_SWIPE_RIGHT, TWO_SWIPE_UP, TWO_TAP Activity Gestures Permite definir acciones en base a Gestos para una actividad View Gestures Permite definir acciones en base a Gestos para una vista en concreto.
  • 11.
    Mundoglass Voice Input Triggers Ok Glass Glassware Howto AndroidManifest.xml string.xml voice_trigger voice_prompt voice_trigger.xml <trigger keyword=”@string/voice_triger”> <constraints…> </trigger> Activity startActivityForResult -> Intent ACTION_RECOGNIZE_SPEECH onActivityResult -> recuperaremos el texto obtenido (results) <application..> <activity | service ...> <intent-filter> <action android:name= "com.google.android.glass.action.VOICE_TRIGGER" /> </intent-filter> <meta-data android:name= "com.google.android.glass.VoiceTrigger" android:resource="@xml/voice_trigger" /> </activity | service>
  • 12.
    Mundoglass Location and Sensors ApiAndroid Location Location Manager - Location Provider - Criteria Glass: Location providers dinámicos incluyendo provider remotos vía Bluetooth-paired - MyGlass Aproximaciones: Criteria Iterar Sensores TYPE_ACCELEROMETER TYPE_MAGNETIC_FIELD TYPE_GRAVITY TYPE_ORIENTATION (deprecated) TYPE_GYROSCOPE TYPE_ROTATION_VECTOR TYPE_LIGHT TYPE_LINEAR_ACCELARITION
  • 13.
  • 14.
    Mundoglass ¿GDK? API Android estándarcompilado para Glass + API extra específico para Glass Disponible 19 Nov. 2013 Instalación Android SDK Manager : Android 4.0.3 (API 15) SDK - Glass Development Kit Sneak Peek Activar Glass USB debug: Settings -> Device Info -> Turn on Debug Settings: Minimum and Target SDK: 15 Compilar con: Glass Development Kit Sneak Peek Temas/Themes: None (borrar themes de AndroidManifest.xml), permite aplicar Glass themes. Importar Android sample projects (File->New Project->Android sample projects...)
  • 15.
    Mundoglass Despliegue de aplicacionesnativas en Glass Desarrollo adb, IDE, launchy Validación de aplicaciones https://developers.google.com/glass/distribute/index Aplicaciones aprobadas por Google Es un .apk que se descarga desde google.com/myglass Proceso de validación contra webs en proceso.
  • 16.
  • 17.
    Mundoglass Aplicaciones que usanGDK Demos adaptadas a España: Worldlens- Inmersión & offline & hardware Strava - Livecards Golf. Hay varios campos en la comunidad de Madrid que están mapeados. Spellista - Inmersion WorldGlassTv
  • 18.
  • 19.
    Mundoglass GDK Sneak Peekvs Mirror API Mirror Desde el primer día Desarrollador backend (php, java, go, python…) Static cards, manejar notificaciones, compartir elementos Online Ubicación cada 10 min. vs Disponibilidad Target UI Conectividad Location GDK Desde hace 2 semanas. Desarrollador android/c/c++ NDK Livecards, inmersions Online/offline Ubicación tiempo real Acceso al hardware/sensores Mirror API maduro/estable Vers. GDK, 1era versión ¿Actualización GDK?
  • 20.
    Mundoglass Patrones típicos dedesarrollo Con Mirror: - Notificaciones periódicas (mandando una tarjeta al timeline) - Compartir (por ejemplo una foto a facebook) Con GDK: - Tareas en curso, que el usuario está haciendo y para las que necesita información actualizada en tiempo real Ejemplo: Strava (información de progreso al ir en bici) - Inmersiones (cogen “el foco” tanto de Glass como del usuario) Nuestra experiencia
  • 21.
    Otra forma deprogramar para Glass: OpenShades
  • 22.
    Mundoglass Herramientas y libreríaspara Glass Open Source Integra librerías disponibles para Android, como OpenCV WearScript - (PhoneGap para Glass): Acceso a los sensores de Glass desde JavaScript WebView para ejecución del JavaScript - Permite desarrollar pruebas de concepto muy rápidamente - Permite intercambio de scripts entre usuarios sin utilizar la plataforma de Google
  • 23.
    Mundoglass Ejemplo trivial: // Streamcamera images and all sensors to the WearScript Playground Webapp function server() { WS.log('Welcome to WearScript'); // Escribir a log y consola WS.say('Welcome to WearScript'); // Texto-a-voz // Todos los sensores var sensors = ['gps', 'accelerometer', 'magneticField', 'orientation', 'gyroscope', 'light', 'gravity', 'linearAcceleration', 'rotationVector']; for (var i = 0; i < sensors.length; i++) WS.sensorOn(WS.sensor(sensors[i]), .15, 'cb'); WS.cameraOn(2); WS.dataLog(false, true, .15); } https://github.com/OpenShades/wearscript
  • 24.
    Mundoglass Y para terminar... PrimerHackaton de Glass Un día dedicado a disfrutar programando para el nuevo dispositivo. - Equipos de 3 ó 4 personas (pueden venir formados o hacerse sobre la marcha). - Aforo: 30 personas - 4 Glass disponibles para probar PREMIO: - Una invitación para comprar Glass para cada miembro del equipo ganador. - Para una de ellas (por sorteo) MundoGlass se encarga de todos los trámites de compra e importación - el ganador lo recoge en Madrid. PARTICIPACIÓN: 15 euros por persona (incluye pizzas) http://glasshackaton.eventbrite.es/ - clave: MUNDOGLASS
  • 25.
  • 26.