PRESENTING
GOOGLE GLASS
PRESENTING
GOOGLE GLASS
For this presentation, and source code used, visit:
http://bit.ly/1qZDBhU
For this presentation, and source code used, visit:
http://bit.ly/1qZDBhU
Glass Components
Glass Experience
How to operate
On startup
Swipe
right
Swipe
left
Settings and life cards
Static cards and time-line
Say
“ok glass”
Voice
commands
Tap
Installed apps
Software Stack
Android
Subsystem
Glass
Subsystem
Glassware
Quick look at
Android Development
Quick look at
Android Development
Android Development
Prerequisite
– JDK 6 (or newer) installed
●
http://bit.ly/1iOZIrD
– ADT Bundle
– Android 4.4.2 (API 19) for Google Glass (with Glass Development Kit Preview)
●
Download: ADT Bundle (eclipse)
●
http://bit.ly/1gAwCcl
Eclipse IDE
Start eclipse
– <path-adt-bundle>/eclipse/eclipse
●
Perspectives
– Window > Open Perspectives > Other...
●
Java
●
Debug
●
DDMS
– Devices (connected), File Explorer, LogCat
●
Window > ADT Manager
– Android 4.4.2 (API 19) for Google Glass (with Glass Development
Kit Preview)
●
Window > Android Virtual Device Manager
Platform Tools
<path-adt-bundle>/sdk/platform-tools/adb
●
adb install application.apk
●
adb shell
– pm list packages -f
●
List of installed fqdn packages
●
adb uninstall fqdn-package-name
Android Basic Components
●
Resources
●
Activities
●
Services
●
Intents
●
Handlers
●
Logging
Resources
●
Layouts (xml)
●
Images (png)
●
Strings – i8n (xml)
●
Menus (xml)
●
Assets
Activity
●
self contained form
– with its own main thread to handle UI events
●
Derive from base class android.app.Activity
●
onCreate method
●
Other methods: onAttachedToWindow
Service
●
Derive class from base class android.app.Service
●
onStartCommand
●
onDestroy
Intent
To start an activity or service, and pass messages
between activities/services
●
Create Intent object,
– Activity
●
intent intAct = new intent(ctx,
myActivity.class);
●
startActivity(intAct);
●
startActivityForResult(intAct, iRequestCode);
●
onActivityResult(int requestCode, int
resultCode, Intent data)
Handler
●
Async event handler
●
Executes in main thread
●
Uses
– Execute pending jobs in queue
●
Handler handler = new Handler();
●
handler.post(new Runnable() {…});
– Inter thread synchronization by main thread
●
Handler handler = new Handler() { @Override
handleMessage(...) }
Log
Method
– Log.i(tag, msg) → for info
– Log.e(tag, msg) → for error
●
DDMS Logcat
– Set tag to filter messages from your application
or module
Glasswares and Glass
Development
Glasswares and Glass
Development
Application Types/Patterns
●
GDK Glassware
– Ongoing Task (Live Cards)
– Immersion
●
Mirror Glassware
– Static Cards (notifications)
GDK Glasswares:
Ongoing Tasks
GDK Glasswares:
Ongoing Tasks
Ongoing Task
Service
Live Card
Menu (as activities)
Hands-on
Ongoing Tasks: HelloGlass
Hands-on
Ongoing Tasks: HelloGlass
HelloGlass:UX
Tap to start
application
Tap to show menu
Life cards (Life cycle)
HelloGlass: Config
AndroidManifest.xml
– android:versionCode
– Uses-sdk
●
Only 19 supported at this time
HelloGlass: Classes
●
HelloGlassService
●
HelloGlassView
●
HelloGlassViewUpdater
●
MenuActivity
Application Flow
Android Manifest HelloGlassService
Voice command intent
Service LiveCard ViewUpdater View
Create
Register
Callback
MenuActivity
Attach using
pending intent
Publish
Surface
Created
Surface
Changed Draw(Assign)
HelloGlassService
●
AndroidManifest.xml
– Application > service
●
android:name (src)
●
@string/app_name
●
Intent-filter
●
@xml/voice_trigger_start
●
LiveCard
– Register rendering callback (HelloGlassViewUpdater)
– Attach Menu (MenuActivity)
HelloGlassView
●
Load layout
– @layout/card_hello.xml
●
findViewById
HelloGlassViewUpdater
●
Callbacks
– SurfaceCreated
– SurfaceChanged
●
Now start updating view
MenuActivity
●
onAttachedToWindow
●
onCreateOptionsMenu
●
@menu/hello.xml
●
onOptionsItemSelected
●
onOptionsMenuClosed
●
Handler
GDK Glasswares:
Immersion
GDK Glasswares:
Immersion
Immersion
●
Pros
– Full control, left/right swipes
●
Cons
– Must close before moving to other card
Hands-on
Immersion: GlassViewer
Hands-on
Immersion: GlassViewer
GlassViewer: UX
Swipe left Swipe left
Swipe left
Swipe right Swipe right
Swipe right
Swipe
Down
Tap
Start
Tap
GlassViewer
●
MainActivity
– onCreate
●
setContentView
– activity_main
– mGestureDetector
●
setBaseListener
– onGesture
●
SWIPE_LEFT, SWIPE_RIGHT, TAP, so on
●
onGenericMotionEvent
– Assets
●
getAssets().open
GDK Glasswares:
Application Add-ons
GDK Glasswares:
Application Add-ons
Voice Input
●
Commands List
– CALCULATE
– START_A_STOPWATCH
– START_IMAGING
– Complete list:
●
http://bit.ly/1jfwjaY
Touch Gestures
●
Gestures List
– LONG_PRESS
– SWIPE_UP
– TWO_LONG_PRESS
– TWO_SWIPE_DOWN
– TWO_TAP
– Complete list:
●
http://bit.ly/V3L4Ci
Camera
private static final int TAKE_PICTURE_REQUEST = 1;
private void takePicture() {
Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,
TAKE_PICTURE_REQUEST);
}
@Override
Location Service
●
Obtain Location Manager
– LocationManager manager = getSystemService(Context.LOCATION_SERVICE);
●
Create criteria (accuracy level/altitude required?)
– Criteria criteria = new Criteria();
– criteria.setAccuracy(Criteria.ACCURACY_FINE);
– criteria.setAltitudeRequired(true);
●
Get providers list
– List<String> providers = locationManager.getProviders(
– criteria, true /* enabledOnly */);
●
For each provider in List, get location updates
– locationManager.requestLocationUpdates(provider, 0,
– 0, location_listener);
Location Service: Listener
●
Create subclass of LocationListener to pass in
requestLocationUpdates
– public void onLocationChanged(Location location)
●
Location object
– double getLatitude() → Get the latitude, in degrees.
– double getLongitude() → Get the longitude, in degrees.
Other sensors
●
Obtain sensor manager
– SensorManager mSensorManager = (SensorManager)
getSystemService(Context.SENSOR_SERVICE);
●
Obtain specific sensor object
– Sensor mSensor =
mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY);
●
Register sensor listener
– mSensorManager.registerListener(sensor_listener, mSensor,
SensorManager.SENSOR_DELAY_NORMAL);
Other sensors: Listener
●
Create subclass of SensorEventListener to pass in registerListener
– public final void onSensorChanged(SensorEvent event)
●
SensorEvent object
– float sensorVal = event.values[0];
Other sensors: List
●
TYPE_ACCELEROMETER
●
TYPE_GYROSCOPE
●
TYPE_LIGHT
●
TYPE_MAGNETIC_FIELD
●
For complete list: http://bit.ly/1u0gI2T
Recap of UI Elements
The Glass user experience is based on 3 basic UI
elements
• Static card:
– Displays text, HTML, images, and video.
• Live card
– Used when users are actively engaged in a task
– Do not persist in the timeline
– Suited for real-time interaction with users
• Immersion
– Displays Android activities that take over the timeline
experience
Design Patterns for Glassware
• GDK (Glass Development Kit)
• Mirror API
What is Mirror API?
• Web-based services that interact with Google Glass
• Over a cloud
• Does not require running code on Glass
• User visits your web application from MyGlass and authenticates
• Your service sends cards to user as required
Why Mirror API?
• Lets you use language of your choice
• Platform independence
• Common infrastructure
• Built-in functionality
When to use Mirror API?
• Mirror API is great for delivering periodic
notifications to users as important things happen.
• For example:
– News delivery service that sends the top news stories
How Mirror API Works?
• Use RESTful services
• Encapsulate data through
JSON
• Authentication using
OAuth2
• Standard POST, GET and
PUT methods for sending,
listing and updating
information
Example: Daily Health Tip
• Daily Health Tips is implemented using Mirror API
– Users subscribe by authenticating with OAuth 2.0
– Health Tips stores an index of users and their
credentials
– New tip is published every day. It iterates through all
stored users and insert a timeline item into their
Inserting a New Static Card
• When Glassware inserts static cards into the
timeline, Glass may play a notification sound to
alert users.
Static Card
• Reside to the right of the Glass clock by default
• Display information to the user
• Do not require immediate attention
• Users can read or act on
the card at their
own leisure
What Else Can You Do?
• In addition, you can attach objects to a static card,
such as a location or media.
• Insert timeline card with attachment
• Attach video
Bundling Cards
• Distinguished with folded corner
Menu items
• Menu items allow users to request actions that are
related to the timeline card.
• Some Built-in menu items include:
– reading a timeline card aloud,
– navigating to a location,
– sharing an image,
– replying to a message
Subscriptions
• The Mirror API allows you to subscribe to
notifications that are sent when the user takes
specific actions:
– Reply
– Delete
– Custom menu item selected
– Location update
– Voice command
• When you subscribe to a notification, you provide a
callback URL that processes the notification.
Design Principles for Glass
• Different than existing mobile platforms in both
design and use. Follow these principles for best
experience:
– Design for Glass
– Don't get in the way
– Keep it relevant
– Avoid the Unexpected
LET US NOW EXPLORE SOME
GOOGLE GLASS APPS BY
10PEARLS
LET US NOW EXPLORE SOME
GOOGLE GLASS APPS BY
10PEARLS
LIVE CAM TRACKERLIVE CAM TRACKER
HANGMANHANGMAN
BRICK BREAKERBRICK BREAKER
QUIZ TIME!QUIZ TIME!

Introduction to google glass

Editor's Notes

  • #4 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #5 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #6 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #7 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #9 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #10 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #11 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #12 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #13 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #14 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #15 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #16 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #17 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #18 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #20 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #22 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #24 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #25 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #26 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #27 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #28 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #29 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #30 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #31 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #32 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #34 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #36 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #37 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #39 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #40 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #41 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #42 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #43 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #44 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #45 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #46 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #47 A quick recap about 3 basic ui elements again. Static cards exists on right side of timeline. And displays text and media. It persists in timeline, more like your facebook timeline posts. Live cards exists on left side and engage user in a task. It is suitable for real time interaction with users. Immersions are more like mobile applications and are like live cards but are more flexible for the developer. It captures voice commands, do not dim after a specified time (static and live cards dim out) takes swipe gestures and more. All these features are not possible with static or live cards
  • #48 There are 2 major ways you can develop your glassware. One is using the GDK – which is a more tradional approach to development. It is similar to android development. Mirror API is a newer aspect which uses web applications to build the structure.
  • #49 Mirror API are web based services that we use with the glass.
  • #50 You don’t need to worry about a particular language or platform. You work on upper layer and the platform specific library does the rest of the work for you.
  • #52 Lets look at more technical aspect of mirror api as to know how it works.
  • #53 User goes to MyGlass, finds the application and authenticate himself for the app. Glassware stores the user in personal database (glassware is just a fancy name for glass apps) Now glassware is a service which is running as per functional requirements on web end. For this particular glassware, we schedule execution every 24 hours. It iterates through all stored user from the database and asks google to insert a health tip on to user’s timeline. Mirror API is responsible to sync glass with latest information