Google Glass Meetup 3/3 - 8 Janvier 2014

Post on 18-Dec-2014

858 views 0 download

description

Meetup #Glasscamp organisé le 08 Janvier 2014 à Paris dans les locaux d'Epitech.

transcript

K

b

8

5

a

>

[

• GlassCamp : le principe, la communauté, les règles à respecter

• Fonctionnement des Glass

• Penser une application Google Glass

• WearScript JS

• GDK (ou Glassware Development Kit)

• Echange libre

• Test des Google Glass

• #Glasscamp

• @glasscamp

• @niji_digital

• @Juli3nD3v

• @dhbismuth

• @mathemagie

• @yanntolila

• @Kamaxe

Développeur : • IOS • Android • Drupal 7 • Symfony 2

Envois un mail à dhbismuth@gmail.com

Présentation du groupe

[

Y

COLLABORER

DESIGNER

• DES MEETUP

• DES CONFÉRENCES

• UN HACKATON LE 17 JANVIER 2014

http://glasscamp.org/apply

03/2013 Distribution des premières Google Glass aux personnes sélectionnées

02/2012 Lancement du projet #IfihadGlass:

04/2013 Livraison du SDK « Mirror API »

Début 2014 Lancement

des Google Glass

B A C D E

Contrôle vocal

Contrôle tactile

Les cartes de la timeline

Navigation dans la timeline

1. Landing page de l’application 2. Personnalisation des notifications

3. Début des notifications

PENSER L’INSTANT PRÉSENT

LE CONTEXTE, LE CONTEXE ET LE CONTEXTE

Lieu Date

Historique Préférences

Présence d’autres Offre en cours

Météo Cours de la bourse

Prochain métro Tube du moment

Contenu

Contexte Usage

Usage

Contexte Contenu

Contexte

Contenu Usage

ENRICHIR LA VIE DE SES UTILISATEURS

DONNER LA BONNE INFO AU BON MOMENT

MISER SUR L’INTERACTIVITÉ

USER INTERFACE

A

USER INTERFACE – THE TIMELINE

USER INTERFACE – THE TIMELINE

A

USER INTERFACE

B

USER INTERFACE – ONGOING TASKS

USER INTERFACE - ONGOING TASKS

B

Z

Wearscript (BrandynWhite)

A rapid prototyping solution

Aurélien Fache @mathemagie

OpenCV.apk launchy.apk CaptureActivity.apk wearscript.apk

Linux (dedicated

hosting) apt-get install golang git mercurial redis-server +

http://golang.org/

LISTEN on 8080

1/ Setup

WS

JS + HTML (canvas, etc)

2/ Authentification

JS API REFERENCE: ● SENSORS : pupil, gps, accelerometer, magneticField,

orientation, gyroscope, light, rotationVector, gravity ● CAMERA (PHOTO, VIDEO)

● WIFI (ON, OFF, SCAN)

● QR code scanner, Text-to-speech

● TIMELINE, CARD MANAGEMENT

● Gesture Recognition : SWIPE_DOWN, LONG_PRESS, etc etc

Les briques s’imbriquent !

Ivan E. Sutherland The ultimate display (1965)

STEVE MANN

“REDUCE THE TIME BETWEEN INTENTION AND ACTION”

Thad Starner

Z

Une librairie Un Add-On

Android SDK Manager

…android-sdk/add-ons/addon-google_gdk-google-15/libs/gdk.jar

12 classes 1 interface

<?xml version="1.0” encoding="utf-8"?> <trigger keyword=”Le Gorafi”> <input prompt=”A la une" /> </trigger>

res/xml/voice_trigger_legorafi

<activity android:name=".ui.glass.HomeGlassActivity" > <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_legorafi"/> </activity>

AndroidManifest.xml

Appears in

the timeline

Access to

user input

Control

over user

interface

Major uses

Static

Cards

Yes No No, must be

in the form

of aCard

Information

display

without user

interaction

Live Cards

Yes Yes, but

timeline

takes

precedence

Yes, no

restrictions

Rich and

live content

with low

user

interaction

Immersions

No Yes, no

restrictions

Yes, no

restrictions

Rich and

live content

with high

user

interaction

Card card = new Card(this); card.setText("Content"); card.setFootnote("Footnote"); card.addImage(R.drawable.ic_niji); TimelineManager timelineManager = TimelineManager.from(this); timelineManager.insert(card);

Création de la carte

Mais aussi, update, delete, query…

Intent intent = TvPlayerService.getIntent(this, TvPlayerService.ACTION_PLAY); startService(intent); finish();

Création du service

mLiveCard = mTimelineManager.createLiveCard(LIVE_CARD_ID); mLiveCard.setDirectRenderingEnabled(true).getSurfaceHolder().addCallback(mMediaPlayerDrawer); Intent menuIntent = new Intent(this, TvMenuActivity.class); mLiveCard.setAction(PendingIntent.getActivity(this, 0, menuIntent, 0)); mLiveCard.publish(LiveCard.PublishMode.REVEAL);

Création de la carte

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_stop" android:title="Stop" android:icon="@drawable/ic_stop" /> </menu>

Création du menu – res/menu/activity_tv_menu.xml

@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_tv_menu, menu); return true; }

TvMenuActivity.java

… @Override public void onResume() { super.onResume(); openOptionsMenu(); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection. switch (item.getItemId()) { case R.id.menu_stop: stopService(new Intent(this, TvPlayerService.class)); return true; default: return super.onOptionsItemSelected(item); } } …

TOUT EST POSSIBLE !

mGestureDetector = createGestureDetector(this); mCardScrollView = new CardScrollView(this) { @Override public final boolean dispatchGenericFocusedEvent(MotionEvent event) { if (mGestureDetector.onMotionEvent(event)) { return true; } return super.dispatchGenericFocusedEvent(event); } }; MyAdapter myAdapter = new MyAdapter(); mCardScrollView.setAdapter(myAdapter); setContentView(mCardScrollView);

GestureDetector gestureDetector = new GestureDetector(context); //Create a base listener for generic gestures gestureDetector.setBaseListener( new GestureDetector.BaseListener() { @Override public boolean onGesture(Gesture gesture) { Log.d("onGesture", gesture.name()); if (gesture == Gesture.TAP) { // do something on tap return true; } else if (gesture == Gesture.TWO_TAP) { // do something on two finger tap return true; } else if (gesture == Gesture.SWIPE_RIGHT) { // do something on right (forward) swipe return false; } else if (gesture == Gesture.SWIPE_LEFT) { // do something on left (backwards) swipe return false; } return false; } });

CAPTURE VIDEO AFFICHAGE RÉALITÉ AUGMENTÉE GPS CAPTEUR DE MOUVEMENT VOICE RECOGNITION COLOR RECOGNITION …

ju.vermet@gmail.com

Z

SEUL ?

EMULATEUR SUR SMARTPHONE ANDROID

GDK ? MIRROR API

PLAYGROUND

WEARSCRIPT

+

@glasscamp @dhbismuth @mathemagie @yanntolila @KamaXe

t

Consultant en stratégie numérique au sein de Niji

david-henri.bismuth@niji.fr

Etudiant à la Web School Factory

Consultant en stratégie numérique au sein de Niji

Yann.tolila@niji.fr

Merci à nos sponsors