Google Glass Meetup 3/3 - 8 Janvier 2014

1,281 views

Published on

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

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,281
On SlideShare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
23
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Google Glass Meetup 3/3 - 8 Janvier 2014

  1. 1. 8 b [ a K 5 >
  2. 2. • 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
  3. 3. • #Glasscamp • @glasscamp • @niji_digital • @Juli3nD3v • @dhbismuth • @mathemagie • @yanntolila • @Kamaxe
  4. 4. Développeur : • IOS • Android • Drupal 7 • Symfony 2 Envois un mail à dhbismuth@gmail.com
  5. 5. [ Présentation du groupe
  6. 6. DESIGNER COLLABORER Y
  7. 7. • DES MEETUP • DES CONFÉRENCES • UN HACKATON LE 17 JANVIER 2014 http://glasscamp.org/apply
  8. 8. 02/2012 03/2013 04/2013 Début 2014 Lancement du projet #IfihadGlass: Distribution des premières Google Glass aux personnes sélectionnées Livraison du SDK « Mirror API » Lancement des Google Glass
  9. 9. A B C D E
  10. 10. Contrôle vocal Contrôle tactile • • •
  11. 11. Les cartes de la timeline Navigation dans la timeline
  12. 12. 1. Landing page de l’application 2. Personnalisation des notifications 3. Début des notifications
  13. 13. PENSER L’INSTANT PRÉSENT
  14. 14. LE CONTEXTE, LE CONTEXE ET LE CONTEXTE Contenu Contexte Usage Contexte Contenu Usage Contexte Contenu Usage 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 …
  15. 15. ENRICHIR LA VIE DE SES UTILISATEURS
  16. 16. DONNER LA BONNE INFO AU BON MOMENT
  17. 17. MISER SUR L’INTERACTIVITÉ
  18. 18. USER INTERFACE A
  19. 19. USER INTERFACE – THE TIMELINE
  20. 20. USER INTERFACE – THE TIMELINE A
  21. 21. USER INTERFACE B
  22. 22. USER INTERFACE – ONGOING TASKS
  23. 23. USER INTERFACE - ONGOING TASKS B
  24. 24. Z
  25. 25. Wearscript (BrandynWhite) A rapid prototyping solution Aurélien Fache @mathemagie
  26. 26. ● ● ● ●
  27. 27. 1/ Setup 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 JS + HTML (canvas, etc) WS
  28. 28. 2/ Authentification
  29. 29. http://mathemagie.net:8080/
  30. 30. 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
  31. 31. Les briques s’imbriquent !
  32. 32. Ivan E. Sutherland The ultimate display (1965)
  33. 33. STEVE MANN
  34. 34. Thad Starner “REDUCE THE TIME BETWEEN INTENTION AND ACTION”
  35. 35. Alan kay
  36. 36. Z
  37. 37. Une librairie Un Add-On
  38. 38. Android SDK Manager …android-sdk/add-ons/addon-google_gdk-google15/libs/gdk.jar
  39. 39. 12 classes 1 interface
  40. 40. res/xml/voice_trigger_legorafi <?xml version="1.0” encoding="utf-8"?> <trigger keyword=”Le Gorafi”> <input prompt=”A la une" /> </trigger> AndroidManifest.xml <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>
  41. 41. Appears in the timeline Access to user input Control over user interface Major uses Yes No No, must be in the form of aCard Information display without user interaction Yes Yes, but timeline takes precedence Yes, no restrictions Rich and live content with low user interaction No Yes, no restrictions Yes, no restrictions Rich and live content with high user interaction Static Cards Live Cards Immersions
  42. 42. Création de la carte 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); Mais aussi, update, delete, query…
  43. 43. Création du service Intent intent = TvPlayerService.getIntent(this, TvPlayerService.ACTION_PLAY); startService(intent); finish(); Création de la carte 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);
  44. 44. Création du menu – res/menu/activity_tv_menu.xml <?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> TvMenuActivity.java @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_tv_menu, menu); return true; }
  45. 45. … @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); } }
  46. 46. TOUT EST POSSIBLE !
  47. 47. 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);
  48. 48. 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; } });
  49. 49. CAPTURE VIDEO AFFICHAGE RÉALITÉ AUGMENTÉE GPS CAPTEUR DE MOUVEMENT VOICE RECOGNITION COLOR RECOGNITION …
  50. 50. ju.vermet@gmail.com
  51. 51. Z
  52. 52. GDK ? SEUL ? WEARSCRIPT MIRROR API EMULATEUR SUR SMARTPHONE ANDROID PLAYGROUND +
  53. 53. t @glasscamp @dhbismuth @mathemagie @yanntolila @KamaXe Consultant en stratégie numérique au sein de Niji david-henri.bismuth@niji.fr Consultant en stratégie numérique au sein de Niji Yann.tolila@niji.fr Etudiant à la Web School Factory
  54. 54. Merci à nos sponsors

×