break timer: android-wear introduction and application case-study

Post on 28-Nov-2014

440 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Break Timer: An android-wear application that sits silently on your wrist and remind you to take a break if you keep typing for long duration (Facebook counts!). Help you avoid RSI problem.

TRANSCRIPT

Android Wearintroduction, concepts and case-study

Agenda • Android Wear Introduction

• Capabilities and User Interface

• How to create Android Wear UX

• Development case study

• Make your application android-wear ready

• Potential Use Cases

Android Wear Concept

• Android extension for wearables

• Automatic, specific, glanceable information, with zero or low interaction!

• Showing users information and functionality just when they need it

Android Wear Basics• Require android >= 4.3 on phone (or tablet)

• Require android-wear companion app on phone

• Phone and wearable communicate with each other via bluetooth.

• Wearable uses handheld device internet connection and GPS.

• Currently available sensors on wearables are Compass, Accelerometer, Gyroscope, Heart Rate Sensor (Samsung only)

Android Wear Capabilities

• Generate notifications from phone and react them on wearables.

• Embed voice capabilities for getting user input.

• Create standalone apps for wearable (like compass, steps counter etc)

• Almost whole android sdk is available for development!

Android Wear UX

Android Wear UX Considerations

Android Wear UX Considerations

• Glanceable

• Can user see it in split second?

Android Wear UX Considerations

• Big Gestures

• Use it without focusing on watch!

Android Wear UX Considerations

• Launched Automatically

• Right information at right time

Android Wear UX Considerations

• Do one thing, do it fast

• Show absolute minimum, actionable information

Android Wear UX Considerations

• Is it time to disturb?

• It is on wrist, its always visible, its difficult to avoid!

• Buzz the watch fewer times that you would do on phone!

Android UX Applied

Lets see some examples

http://time.com/2964389/android-wear-watch-review/

Development Case-Study

Android Wear case study

Why we did this

• Keep ourselves updated, so we can help our clients better.

• Wearable has a lot of potential to grow.

• Android Wear is the first disciplined approach from Google to bring Android to wearables

• Explore Android Wear; discover use-cases and create a good example app that cannot be done without Watch!

Problem: If you use computer for 3-4 hours a day and sit continuously in a similar posture, you are at risk of RSI (Repetitive Strain Injury).

What is RSI: Repetitive strain injury (RSI) is a condition where pain and other symptoms occur in an area of the body which has done repetitive tasks (often the arms or hands).

Android Wear case study

Break Timer

How to avoid RSI: There can be several techniques, the most basic one is to take regular breaks!

The Solution: Break Timer sits silently on your wrist and remind you to take break if you have been typing for long intervals.

Uses the accelerometer available on watch to see if you are continuously typing.

Break Timer - case study

Break Timer - case study

Break Timer - case study

Typing indicator

How to make your app wear-ready

How to make your app wear-ready

• Integration Method

• Potential issues during development

• Coding Tips

Enhanced Notifications• Single Notification

• Can have multiple actions

• Appears by default, with only action “Open on phone”.

Single Notification

NotificationCompat.Builder notificationBuilder =

new NotificationCompat.Builder(this)

.setSmallIcon(R.drawable.ic_event)

.setLargeIcon(BitmapFactory.decodeResource(

getResources(), R.drawable.notif_background))

.setContentTitle(eventTitle)

.setContentText(eventLocation)

.setContentIntent(viewPendingIntent)

.addAction(R.drawable.ic_reply,

getString(R.string.map), replyPendingIntent)

.setStyle(bigStyle);

Enhanced Notifications• Stacking Notification

• Instead of displaying multiple notifications, stack them together in one group

Stacking Notification

final static String GROUP_KEY_EMAILS = "group_key_emails";

!

// Build the notification, setting the group appropriately

Notification notif = new NotificationCompat.Builder(mContext)

.setContentTitle("New mail from " + sender1)

.setContentText(subject1)

.setSmallIcon(R.drawable.new_mail);

.setGroup(GROUP_KEY_EMAILS)

.build();

Enhanced Notifications• Add Pages to Notification

• To provide more information without requiring users to open your app on their phone, you can add pages to the notification.

Add Pages to Notification// Create builder for the main notification NotificationCompat.Builder mainPage = new NotificationCompat.Builder(this) …………

// Create a big text style for the second page BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle(); secondPageStyle.setBigContentTitle("Page 2") .bigText("A lot of text...");

// Create second page notification Notification secondPageNotification = new NotificationCompat.Builder(this) .setStyle(secondPageStyle).build();

// Add second page with wearable extender and extend the main notification Notification twoPageNotification = new WearableExtender() .addPage(secondPageNotification) .extend(notificationBuilder) .build();

// Issue the notification notificationManager.notify(notificationId, twoPageNotification);

Enhanced Notifications

Notification mNotification = new NotificationCompat.Builder(context)

.setSmallIcon(R.drawable.appicon) ….. .setCustomSizePreset(NotificationCompat.WearableExtender.SIZE_FULL_SCREEN) .setDisplayIntent(displayPendingIntent).build()

Full Screen Notification with embedded Activity

Enhanced Notifications

• Custom Button • Default Open Button

Communication

private GoogleApiClient mGoogleApiClient; @Override protected void onCreate(Bundle savedInstanceState) { mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Wearable.API) .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { @Override public void onConnected(Bundle bundle) { Log.d(TAG, "Google Api Client connected"); } ! @Override public void onConnectionSuspended(int i) { } }).build(); mGoogleApiClient.connect(); }

• Sending and Syncing Data

How to make your app wear-ready

• Integration Method

• Potential issues during development

• Coding Tips

Potential Issues• Redundant Permissions

• Cached APK

• Problems with emulators

• No accelerometer

• Round emulator is not as good as square counter part.

Potential Issues

• Redundant Permissions

• Include all permissions in your handheld device that you need to use in watch.

• Otherwise, it will not auto install the embedded apk

Problems faced

• APK cache

• After lot of try and error, we found that the handheld device was somehow caching and pushing old APK to watch

Problems faced• Round emulator is not as good as the

square counter part.

Round emulator being displayed as square

How to make your app wear-ready

• Integration Method

• Potential issues during development

• Coding Tips

Coding Tips

• Use common module for keeping models and constants.

Coding Tips• Should implement some logic on both mobile

and watch to handle disconnect issues

Coding Tips

Notification mNotification = new NotificationCompat.Builder(context)

.setSmallIcon(R.drawable.appicon) ….. .setCustomSizePreset(NotificationCompat.WearableExtender.SIZE_FULL_SCREEN) .setDisplayIntent(displayPendingIntent).build()

• Embedded Activity in notification with different sizes

Potential Use Cases

Potential Use CasesHealth Industry

• Wearables makes it easy to measure body movements and other aspects!

• Patient data can be embedded on wearable.

• Continuous monitoring of patient is possible including,

• Their heart-beat

• Intensity of activity

• Fall detection

Potential Use CasesWorkspace

• Help your employees being healthy.

• Research towards working patterns.

• Other automations like attendance, secure entrance.

Potential Use Cases

Gaming

• Use your wearable as Game controller.

• Can ask user to perform some physical activity.

Recap• Android Wear is an android extension for wearables, maintained by Google.

• The major concept is to avoid distractions and keep the interaction with gadgets to minimum

• Android-wear is only meant to work with its companion device.

• Since wearables are attached to body, they can provide additional useful context related to user’s current physical state or health.

• Its easier to integrate Android Wear functionality in your app, though you need to think wisely.

• The additional data and positioning creates many potential use cases in several industries for example health, employment and gaming.

Thank you

https://play.google.com/store/apps/details?id=com.media2359.breaktimer

Case Study Blog http://2359media.com/android-for-wearables-opportunities-and-limitations-of-watch-apps/

top related