SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Android Wear 
introduction, 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!
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).
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 
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()
Enhanced Notifications 
• Custom Button • Default Open Button
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(); 
}
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 
• 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()
Potential Use Cases
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
Potential Use Cases 
Workspace 
• 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/

Weitere ähnliche Inhalte

Was ist angesagt?

See Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear WatchSee Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear WatchSalesforce Developers
 
Android Wear Development
Android Wear DevelopmentAndroid Wear Development
Android Wear DevelopmentJohnny Sung
 
Hieu Xamarin iOS9, Android M 3-11-2015
Hieu Xamarin iOS9, Android M  3-11-2015Hieu Xamarin iOS9, Android M  3-11-2015
Hieu Xamarin iOS9, Android M 3-11-2015Nguyen Hieu
 
Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015Neal Sanche
 
Droidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introductionDroidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introductionMichelantonio Trizio
 
Android wear SDK introduction
Android wear SDK introductionAndroid wear SDK introduction
Android wear SDK introductionTiziano Basile
 
Augmented Reality - A look before you leap
Augmented Reality - A look before you leapAugmented Reality - A look before you leap
Augmented Reality - A look before you leapGnana Sundar Rajendiran
 

Was ist angesagt? (10)

See Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear WatchSee Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear Watch
 
Android Wear Development
Android Wear DevelopmentAndroid Wear Development
Android Wear Development
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 
Hieu Xamarin iOS9, Android M 3-11-2015
Hieu Xamarin iOS9, Android M  3-11-2015Hieu Xamarin iOS9, Android M  3-11-2015
Hieu Xamarin iOS9, Android M 3-11-2015
 
Cyworld AppStore Overview
Cyworld AppStore OverviewCyworld AppStore Overview
Cyworld AppStore Overview
 
Android wear
Android wearAndroid wear
Android wear
 
Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015Android On Your Sleeve - DroidCon Montreal 2015
Android On Your Sleeve - DroidCon Montreal 2015
 
Droidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introductionDroidcon Turin 2015 - Android wear sdk introduction
Droidcon Turin 2015 - Android wear sdk introduction
 
Android wear SDK introduction
Android wear SDK introductionAndroid wear SDK introduction
Android wear SDK introduction
 
Augmented Reality - A look before you leap
Augmented Reality - A look before you leapAugmented Reality - A look before you leap
Augmented Reality - A look before you leap
 

Ähnlich wie Break Timer: Android-wear introduction and application case-study

GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...mharkus
 
Android Wear, a developer's perspective
Android Wear, a developer's perspectiveAndroid Wear, a developer's perspective
Android Wear, a developer's perspectiveSebastian Vieira
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart JfokusLars Vogel
 
"It's Time" - Android Wear codelab - GDG MeetsU - L'Aquila
"It's Time" - Android Wear codelab - GDG MeetsU - L'Aquila"It's Time" - Android Wear codelab - GDG MeetsU - L'Aquila
"It's Time" - Android Wear codelab - GDG MeetsU - L'AquilaGiuseppe Cerratti
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Weargabrielemariotti
 
Android Wear - Manuel Vicente Vivo
Android Wear - Manuel Vicente VivoAndroid Wear - Manuel Vicente Vivo
Android Wear - Manuel Vicente VivoManuel Vicente Vivo
 
Exercises broadcast receiver,incoming phone call
Exercises broadcast receiver,incoming phone callExercises broadcast receiver,incoming phone call
Exercises broadcast receiver,incoming phone callmaamir farooq
 
Android wear and Cardboard
Android wear and CardboardAndroid wear and Cardboard
Android wear and Cardboardmharkus
 
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeAndroid Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeFriedger Müffke
 
June 2014 - Android wear
June 2014 - Android wearJune 2014 - Android wear
June 2014 - Android wearBlrDroid
 
Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016Jesus Gumiel
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentProf. Erwin Globio
 
Synapseindia android application development tutorial
Synapseindia android application development tutorialSynapseindia android application development tutorial
Synapseindia android application development tutorialSynapseindiappsdevelopment
 
Synapseindia android apps development tutorial
Synapseindia android apps  development tutorialSynapseindia android apps  development tutorial
Synapseindia android apps development tutorialSynapseindiappsdevelopment
 
01 09 - graphical user interface - basic widgets
01  09 - graphical user interface - basic widgets01  09 - graphical user interface - basic widgets
01 09 - graphical user interface - basic widgetsSiva Kumar reddy Vasipally
 
Introduction to Wearable Development
Introduction to Wearable DevelopmentIntroduction to Wearable Development
Introduction to Wearable DevelopmentMohammad Arman
 
Mobile Application Development -Lecture 09 & 10.pdf
Mobile Application Development -Lecture 09 & 10.pdfMobile Application Development -Lecture 09 & 10.pdf
Mobile Application Development -Lecture 09 & 10.pdfAbdullahMunir32
 
Break Timer: android-wear case study and development tips
Break Timer: android-wear case study and development tipsBreak Timer: android-wear case study and development tips
Break Timer: android-wear case study and development tipsUmair Vatao
 

Ähnlich wie Break Timer: Android-wear introduction and application case-study (20)

GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
GDG GeorgeTown Devfest 2014 Presentation: Android Wear: A Developer's Perspec...
 
Android Wear, a developer's perspective
Android Wear, a developer's perspectiveAndroid Wear, a developer's perspective
Android Wear, a developer's perspective
 
Dm36678681
Dm36678681Dm36678681
Dm36678681
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart Jfokus
 
"It's Time" - Android Wear codelab - GDG MeetsU - L'Aquila
"It's Time" - Android Wear codelab - GDG MeetsU - L'Aquila"It's Time" - Android Wear codelab - GDG MeetsU - L'Aquila
"It's Time" - Android Wear codelab - GDG MeetsU - L'Aquila
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 
Android Wear - Manuel Vicente Vivo
Android Wear - Manuel Vicente VivoAndroid Wear - Manuel Vicente Vivo
Android Wear - Manuel Vicente Vivo
 
Exercises broadcast receiver,incoming phone call
Exercises broadcast receiver,incoming phone callExercises broadcast receiver,incoming phone call
Exercises broadcast receiver,incoming phone call
 
Android wear and Cardboard
Android wear and CardboardAndroid wear and Cardboard
Android wear and Cardboard
 
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger MüffkeAndroid Evolution, AppForum 2014, Brussels, Friedger Müffke
Android Evolution, AppForum 2014, Brussels, Friedger Müffke
 
June 2014 - Android wear
June 2014 - Android wearJune 2014 - Android wear
June 2014 - Android wear
 
Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016Build your own remote control. Droidcon greece 2016
Build your own remote control. Droidcon greece 2016
 
Android by Swecha
Android by SwechaAndroid by Swecha
Android by Swecha
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Synapseindia android application development tutorial
Synapseindia android application development tutorialSynapseindia android application development tutorial
Synapseindia android application development tutorial
 
Synapseindia android apps development tutorial
Synapseindia android apps  development tutorialSynapseindia android apps  development tutorial
Synapseindia android apps development tutorial
 
01 09 - graphical user interface - basic widgets
01  09 - graphical user interface - basic widgets01  09 - graphical user interface - basic widgets
01 09 - graphical user interface - basic widgets
 
Introduction to Wearable Development
Introduction to Wearable DevelopmentIntroduction to Wearable Development
Introduction to Wearable Development
 
Mobile Application Development -Lecture 09 & 10.pdf
Mobile Application Development -Lecture 09 & 10.pdfMobile Application Development -Lecture 09 & 10.pdf
Mobile Application Development -Lecture 09 & 10.pdf
 
Break Timer: android-wear case study and development tips
Break Timer: android-wear case study and development tipsBreak Timer: android-wear case study and development tips
Break Timer: android-wear case study and development tips
 

Kürzlich hochgeladen

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Kürzlich hochgeladen (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Break Timer: Android-wear introduction and application case-study

  • 1. Android Wear introduction, concepts and case-study
  • 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!
  • 7. Android Wear UX Considerations
  • 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/
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 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.
  • 23. Break Timer - case study
  • 24. Break Timer - case study
  • 25. Break Timer - case study Typing indicator
  • 26. How to make your app wear-ready
  • 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()
  • 35. Enhanced Notifications • Custom Button • Default Open Button
  • 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.
  • 51. 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/