SlideShare a Scribd company logo
1 of 43
Download to read offline
Google Wear OS watch faces and applications
development
Oleksandr Stepanov

Mobile Lead @ AKQA
Who am I
in/oleksandr-stepanov
oleksandr.stepanov@armind.it
Mobile Lead
Android platforms
Wear OS
(ex Android Wear)
Wear OS devices
• 40+ model of watches in sale

• 200+ watches released so far

• 6000+ number of Wear OS apps
in Play Store
Screen dimensions
• 240x240 … 480x480

• 400x400 - 24%

• 390x390 - 20%

• Better to use Vector, e.g. SVG
Screen shape
11%
89%
“chin”
Application type
Standalone apps Watch face
Watch face
android.app.Service
android.service.wallpaper.WallpaperService
android.support.wearable.watchface.WatchFaceService
CanvasWatchFaceService Gles2WatchFaceService
Watch face Engine
android.service.wallpaper.WallpaperService.Engine
android.support.wearable.watchface.WatchFaceService.Engine
CanvasWatchFaceService.Engine Gles2WatchFaceService.Engine
Custom watch face
• class CustomWatchFaceService: CanvasWatchFaceService()
• inner class Engine : CanvasWatchFaceService.Engine()
• Override:
• onCreate(…)
• onPropertiesChanged(…)
• onTimeTick()
• onAmbientModeChanged(…)
• onDraw(…)
• onVisibilityChanged(visible: Boolean)
Custom watch face
<service
android:name=".AnalogWatchFaceService"
android:label="@string/analog_name"
android:permission="android.permission.BIND_WALLPAPER" >
<meta-data
android:name="android.service.wallpaper"
android:resource="@xml/watch_face" />
<meta-data
android:name="com.google.android.wearable.watchface.preview"
android:resource="@drawable/preview_analog" />
<meta-data
android:name="com.google.android.wearable.watchface.preview_circular"
android:resource="@drawable/preview_analog_circular" />
<intent-filter>
<action android:name="android.service.wallpaper.WallpaperService" />
<category
android:name=
"com.google.android.wearable.watchface.category.WATCH_FACE" />
</intent-filter>
</service>
Custom watch face
Complications
Data
Provider
Wear
System
Watch

Face
ComplicationDataComplicationData
Update request
Complications
Proper Architecture
• MVVM or MVP

• RxJava/RxKotlin

• Architecture Components not available

• Custom technical design
Standalone apps
Standalone apps
android.app.Activity
android.support.wearable.activity.WearableActivity
Standalone apps
<manifest>
...
<uses-feature android:name="android.hardware.type.watch" />
...
<application>
...
<meta-data
android:name="com.google.android.wearable.standalone"
android:value="true" />
...
</application>
</manifest>
Standalone apps
• class CustomWearableActivity: WearableActivity()
• Standard Activity lifecycle
• Ambient mode addition
• boolean isAmbient()
• void onEnterAmbient(Bundle ambientDetails)
• void onExitAmbient()
• void onUpdateAmbient()
• void setAmbientEnabled()
Demo
Ambient mode
Burn-in protection
• OLED and AMOLED screens

• EXTRA_BURN_IN_PROTECTION flag
in onEnterAmbient(…)
• Avoid having solid blobs
16x16 size in ambient
• Avoid placing elements or
frame on the edge
Ambient mode
Burn-in protection
Off On
Low-bit Ambient mode
• EXTRA_LOWBIT_AMBIENT flag in
onEnterAmbient(…)
• When on, only few colors
available in ambient mode
• Anti-aliasing must be
disabled
Connected app
on handheld
phone or tablet
Wear OS app on phone
• Wear OS watch must be paired
with phone

• Pairing happens through Wear
OS app

• Android & iOS versions available

• Watch is connected via BLE
Connected app
• Applications shares package
name

• Distributed in one app on Play
Store 

• … but in separate APKs

• Play Store on the watch and
phone downloads own package.
Connected app API
• Data Layer API

• DataClient

• DataMap <—> DataMapItem <—> DataItem

• MessageClient

• Only for connected nodes

• <100k of data

• ChannelClient

• Transfer data using streams

• Media data
Connected app API
Handheld statistic
2 out of 3 1 out of 3
iOS Connected app API
Data Layer API
iOS Connected app API
iOS Connected app API
Central Peripheral
iOS Connected app API
• BLE 4.0 Services & Characteristics (GATT)

• BLE 4.1 L2CAP Connection-oriented Channels

✓ iOS since 11 version

– Android announced in Q
iOS Connected app API
iOS Connected app API
• Firestore Database

• Realtime Database

• Cloud Storage

• Cloud Messaging (push notifications)
!
Bonus
!
Limited edition
Wear OS LE
⛔ Google Play Store

‣ Huawei and Mobvoi

⛔ Firebase

⛔ Google Authentication

⛔ Google Play Services version 10.2.0
Wear OS LE
• Wearable API via GoogleApiClient

• Data Layer API

• FusedLocationProvider

• Google Fit limited support
Thank you !

More Related Content

Similar to Google Wear OS watch faces and applications development - UA Mobile 2019

Google Wear OS watch faces and applications development
Google Wear OS watch faces and applications developmentGoogle Wear OS watch faces and applications development
Google Wear OS watch faces and applications developmentOleksandr Stepanov
 
March 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionMarch 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionBlrDroid
 
Accelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWSAccelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWSAmazon Web Services
 
Wearables: The Comprehensive List of Smartwatch Operating Systems
Wearables: The Comprehensive List of Smartwatch Operating SystemsWearables: The Comprehensive List of Smartwatch Operating Systems
Wearables: The Comprehensive List of Smartwatch Operating SystemsGil Bouhnick
 
Web, Mobile and App development by Boost Solutions
Web, Mobile and App development by Boost SolutionsWeb, Mobile and App development by Boost Solutions
Web, Mobile and App development by Boost SolutionsAlexander Sidko
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin PlatformRui Marinho
 
Build a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million UsersBuild a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million UsersAmazon Web Services
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
Running Web & Mobile in Azure App Service
Running Web & Mobile in Azure App ServiceRunning Web & Mobile in Azure App Service
Running Web & Mobile in Azure App ServicePuja Pramudya
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersAmazon Web Services
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDamir Beylkhanov
 
App Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_publishedApp Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_publishedWagner Silveira
 
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014Samisa Abeysinghe
 
Android L and Wear overview
Android L and Wear overviewAndroid L and Wear overview
Android L and Wear overviewJames Montemagno
 
Android L and So Much More Webinar Slides
Android L and So Much More Webinar SlidesAndroid L and So Much More Webinar Slides
Android L and So Much More Webinar SlidesXamarin
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersAmazon Web Services
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Sura Gonzalez
 
Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009sullis
 

Similar to Google Wear OS watch faces and applications development - UA Mobile 2019 (20)

Google Wear OS watch faces and applications development
Google Wear OS watch faces and applications developmentGoogle Wear OS watch faces and applications development
Google Wear OS watch faces and applications development
 
March 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionMarch 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech Session
 
Accelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWSAccelerate Your Mobile Development Journey with AWS
Accelerate Your Mobile Development Journey with AWS
 
Wearables: The Comprehensive List of Smartwatch Operating Systems
Wearables: The Comprehensive List of Smartwatch Operating SystemsWearables: The Comprehensive List of Smartwatch Operating Systems
Wearables: The Comprehensive List of Smartwatch Operating Systems
 
Web, Mobile and App development by Boost Solutions
Web, Mobile and App development by Boost SolutionsWeb, Mobile and App development by Boost Solutions
Web, Mobile and App development by Boost Solutions
 
Xamarin Platform
Xamarin PlatformXamarin Platform
Xamarin Platform
 
Build a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million UsersBuild a Website on AWS for Your First 10 Million Users
Build a Website on AWS for Your First 10 Million Users
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
Running Web & Mobile in Azure App Service
Running Web & Mobile in Azure App ServiceRunning Web & Mobile in Azure App Service
Running Web & Mobile in Azure App Service
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
 
Android - Anroid Pproject
Android - Anroid PprojectAndroid - Anroid Pproject
Android - Anroid Pproject
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
App Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_publishedApp Services - Connecting the dots of Web Mobile and Integration_published
App Services - Connecting the dots of Web Mobile and Integration_published
 
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
WSO2 App Dev Strategy and Roadmap - WSO2Con EU 2014
 
Google android os
Google android osGoogle android os
Google android os
 
Android L and Wear overview
Android L and Wear overviewAndroid L and Wear overview
Android L and Wear overview
 
Android L and So Much More Webinar Slides
Android L and So Much More Webinar SlidesAndroid L and So Much More Webinar Slides
Android L and So Much More Webinar Slides
 
Build an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million UsersBuild an App on AWS for Your First 10 Million Users
Build an App on AWS for Your First 10 Million Users
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009Domo Arigato Mr. Roboto - Open Source Bridge 2009
Domo Arigato Mr. Roboto - Open Source Bridge 2009
 

More from UA Mobile

Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...UA Mobile
 
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...UA Mobile
 
Leave your Room behind - UA Mobile 2019
Leave your Room behind - UA Mobile 2019Leave your Room behind - UA Mobile 2019
Leave your Room behind - UA Mobile 2019UA Mobile
 
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019UA Mobile
 
Історія декількох проектів та що в них пішло не так - UA Mobile 2019
Історія декількох проектів та що в них пішло не так - UA Mobile 2019Історія декількох проектів та що в них пішло не так - UA Mobile 2019
Історія декількох проектів та що в них пішло не так - UA Mobile 2019UA Mobile
 
Working effectively with ViewModels and TDD - UA Mobile 2019
Working effectively with ViewModels and TDD - UA Mobile 2019Working effectively with ViewModels and TDD - UA Mobile 2019
Working effectively with ViewModels and TDD - UA Mobile 2019UA Mobile
 
Managing State in Reactive applications - UA Mobile 2019
Managing State in Reactive applications - UA Mobile 2019Managing State in Reactive applications - UA Mobile 2019
Managing State in Reactive applications - UA Mobile 2019UA Mobile
 
Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019
Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019
Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019UA Mobile
 
Актуальні практики дизайну мобільних додатків - UA Mobile 2019
Актуальні практики дизайну мобільних додатків - UA Mobile 2019Актуальні практики дизайну мобільних додатків - UA Mobile 2019
Актуальні практики дизайну мобільних додатків - UA Mobile 2019UA Mobile
 
До чого прикладати Docker в Android? - UA Mobile 2019
До чого прикладати Docker в Android? - UA Mobile 2019До чого прикладати Docker в Android? - UA Mobile 2019
До чого прикладати Docker в Android? - UA Mobile 2019UA Mobile
 
Building your Flutter apps using Redux - UA Mobile 2019
Building your Flutter apps using Redux - UA Mobile 2019Building your Flutter apps using Redux - UA Mobile 2019
Building your Flutter apps using Redux - UA Mobile 2019UA Mobile
 
Optional. Tips and Tricks - UA Mobile 2019
Optional. Tips and Tricks - UA Mobile 2019Optional. Tips and Tricks - UA Mobile 2019
Optional. Tips and Tricks - UA Mobile 2019UA Mobile
 
Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...UA Mobile
 
Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019
Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019
Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019UA Mobile
 
Flutter: No more boring apps! - UA Mobile 2019
Flutter: No more boring apps! - UA Mobile 2019Flutter: No more boring apps! - UA Mobile 2019
Flutter: No more boring apps! - UA Mobile 2019UA Mobile
 
Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019
Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019
Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019UA Mobile
 
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019UA Mobile
 
Sceneform SDK на практиці - UA Mobile 2019
Sceneform SDK на практиці - UA Mobile 2019Sceneform SDK на практиці - UA Mobile 2019
Sceneform SDK на практиці - UA Mobile 2019UA Mobile
 
Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.UA Mobile
 
Augmented reality on Android. UA Mobile 2017.
Augmented reality on Android. UA Mobile 2017.Augmented reality on Android. UA Mobile 2017.
Augmented reality on Android. UA Mobile 2017.UA Mobile
 

More from UA Mobile (20)

Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...
 
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
 
Leave your Room behind - UA Mobile 2019
Leave your Room behind - UA Mobile 2019Leave your Room behind - UA Mobile 2019
Leave your Room behind - UA Mobile 2019
 
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
OpenId and OAuth2: Rear, Medium, Well Done - UA Mobile 2019
 
Історія декількох проектів та що в них пішло не так - UA Mobile 2019
Історія декількох проектів та що в них пішло не так - UA Mobile 2019Історія декількох проектів та що в них пішло не так - UA Mobile 2019
Історія декількох проектів та що в них пішло не так - UA Mobile 2019
 
Working effectively with ViewModels and TDD - UA Mobile 2019
Working effectively with ViewModels and TDD - UA Mobile 2019Working effectively with ViewModels and TDD - UA Mobile 2019
Working effectively with ViewModels and TDD - UA Mobile 2019
 
Managing State in Reactive applications - UA Mobile 2019
Managing State in Reactive applications - UA Mobile 2019Managing State in Reactive applications - UA Mobile 2019
Managing State in Reactive applications - UA Mobile 2019
 
Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019
Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019
Ідіоматична ін'єкція залежностей на Kotlin без фреймворків - UA Mobile2019
 
Актуальні практики дизайну мобільних додатків - UA Mobile 2019
Актуальні практики дизайну мобільних додатків - UA Mobile 2019Актуальні практики дизайну мобільних додатків - UA Mobile 2019
Актуальні практики дизайну мобільних додатків - UA Mobile 2019
 
До чого прикладати Docker в Android? - UA Mobile 2019
До чого прикладати Docker в Android? - UA Mobile 2019До чого прикладати Docker в Android? - UA Mobile 2019
До чого прикладати Docker в Android? - UA Mobile 2019
 
Building your Flutter apps using Redux - UA Mobile 2019
Building your Flutter apps using Redux - UA Mobile 2019Building your Flutter apps using Redux - UA Mobile 2019
Building your Flutter apps using Redux - UA Mobile 2019
 
Optional. Tips and Tricks - UA Mobile 2019
Optional. Tips and Tricks - UA Mobile 2019Optional. Tips and Tricks - UA Mobile 2019
Optional. Tips and Tricks - UA Mobile 2019
 
Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...Designing iOS+Android project without using multiplatform frameworks - UA Mob...
Designing iOS+Android project without using multiplatform frameworks - UA Mob...
 
Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019
Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019
Бібліотеки та Інструменти на сторожі коду - UA Mobile 2019
 
Flutter: No more boring apps! - UA Mobile 2019
Flutter: No more boring apps! - UA Mobile 2019Flutter: No more boring apps! - UA Mobile 2019
Flutter: No more boring apps! - UA Mobile 2019
 
Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019
Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019
Долаючи прірву між дизайнерами та розробниками - UA Mobile 2019
 
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
Multiplatform shared codebase with Kotlin/Native - UA Mobile 2019
 
Sceneform SDK на практиці - UA Mobile 2019
Sceneform SDK на практиці - UA Mobile 2019Sceneform SDK на практиці - UA Mobile 2019
Sceneform SDK на практиці - UA Mobile 2019
 
Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.Coroutines in Kotlin. UA Mobile 2017.
Coroutines in Kotlin. UA Mobile 2017.
 
Augmented reality on Android. UA Mobile 2017.
Augmented reality on Android. UA Mobile 2017.Augmented reality on Android. UA Mobile 2017.
Augmented reality on Android. UA Mobile 2017.
 

Google Wear OS watch faces and applications development - UA Mobile 2019