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.
2. 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
3. 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
4. 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)
5. 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!
8. Android Wear UX
Considerations
• Glanceable
• Can user see it in split second?
9. Android Wear UX
Considerations
• Big Gestures
• Use it without focusing on watch!
10. Android Wear UX
Considerations
• Launched Automatically
• Right information at right time
11. Android Wear UX
Considerations
• Do one thing, do it fast
• Show absolute minimum,
actionable information
12. 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!
13. Android UX Applied
Lets see some examples
http://time.com/2964389/android-wear-watch-review/
20. 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!
21. Android Wear case study
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).
22. 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.
27. How to make your app
wear-ready
• Integration Method
• Potential issues during development
• Coding Tips
28. Enhanced Notifications
• Single Notification
• Can have multiple
actions
• Appears by default,
with only action “Open
on phone”.
29. 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);
30. Enhanced Notifications
• Stacking Notification
• Instead of displaying
multiple notifications,
stack them together in
one group
31. 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();
32. 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.
33. 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);
34. Enhanced Notifications
Full Screen Notification with embedded Activity
Notification mNotification = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.appicon)
…..
.setCustomSizePreset(NotificationCompat.WearableExtender.SIZE_FULL_SCREEN)
.setDisplayIntent(displayPendingIntent).build()
36. Communication
• Sending and Syncing Data
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();
}
37. How to make your app
wear-ready
• Integration Method
• Potential issues during development
• Coding Tips
38. Potential Issues
• Redundant Permissions
• Cached APK
• Problems with emulators
• No accelerometer
• Round emulator is not as good as square counter
part.
39. 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
40. 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
41. Problems faced
• Round emulator is not as good as the
square counter part.
Round emulator being
displayed as square
42. How to make your app
wear-ready
• Integration Method
• Potential issues during development
• Coding Tips
43. Coding Tips
• Use common module for keeping models and constants.
44. Coding Tips
• Should implement some logic on both mobile
and watch to handle disconnect issues
45. Coding Tips
• Embedded Activity in notification with different sizes
Notification mNotification = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.appicon)
…..
.setCustomSizePreset(NotificationCompat.WearableExtender.SIZE_FULL_SCREEN)
.setDisplayIntent(displayPendingIntent).build()
47. Potential Use Cases
Health 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
48. Potential Use Cases
Workspace
• Help your employees being healthy.
• Research towards working patterns.
• Other automations like attendance, secure entrance.
49. Potential Use Cases
Gaming
• Use your wearable as Game controller.
• Can ask user to perform some physical activity.
50. 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.