Wear OS is based on Android and is optimized for the wrist. If you have developed for Android before, you may have used many of the same features and APIs. However, there are some differences between how you design a mobile app and how you design a Wear OS app.
We recommend that you read through the Principles of Wear OS development guide to learn how to design your app.
To find out how a specific feature, API, or best practice is different in Wear OS app development compared to Android mobile development, review the following table or use the filter field to find a specific topic.
Feature, API, or best practice | Wear OS versus Mobile | Wear OS details |
Design your app's UI or UX | Different | Focuses on a handful of critical tasks that can be done within seconds. |
UI surfaces | Different | Goes beyond activities and notifications with many additional unique surfaces including apps, tiles, complications, watch faces, and more. |
UI components | Mobile and more | Includes mobile components plus Wear-OS-specific components, including: BoxInsetLayout ,
SwipeDismissFrameLayout , WearableRecyclerView , and many
more. |
Ongoing activity | Different | Adds ongoing notifications to new Wear OS surfaces. |
Dark theme or mode | Different | Provides only dark mode to save battery. |
Back stack | Different | Lets users swipe to dismiss and swipe to go up the back stack. |
Physical buttons | Different | A wearable device typically contains one or more physical buttons. Wear OS devices always have, at minimum, one button—the power button. Beyond that, watches may have zero or more multifunction buttons that can be used in your app. |
Rotary input | Different | Some Wear OS devices contain a physical rotating side button or rotary input. The user can turn the button to scroll your app's current view up or down. |
App resume | Different | Lets users double-tap the secondary hardware button to resume their recently used apps. When users re-enter your app, it must remember the users' scroll position. |
Architecture Components | Same | See Android Architecture Components in the Android documentation. |
Navigation | Different | Apps should be shallow—avoid a design deeper than two levels—and linear—show most content and navigation inline. |
Interaction with other apps | Same | See Interacting with other apps. |
Interaction with paired devices | New | Can interact with paired devices through the Wear app. Read more at Send and sync data. |
Intents and intent filters | Same | See Intents and intent filters in the Android documentation. |
Animations and transitions | Same | See Animations and transitions in the Android documentation. |
Images and graphics | Same | See Images and graphics in the Android documentation. |
Services and background tasks | Same | See Services overview in the Android documentation. |
Background tasks | Same | See Background work overview in the Android documentation. |
Permissions | Same | See Permissions on Android in the Android documentation. |
App data and files | Same | See App data and files in the Android documentation. |
User data and identity | Similar | Has additional options for authentication beyond the related mobile APIs. Read more about Authentication on wearables. |
User location | Same | TheFusedLocationProvider also takes advantage of the phone's GPS chip to
save battery life and to
detect location on Wear OS. |
Touch and input | Mobile and more | Offers more input beyond standard touch input. Read more at Touch and input overview. |
Sensors | Mobile and more | Development for Wear OS is similar to mobile. To simplify your app on Wear OS, consider the Health Services API, which handles this for you. Read about Sensors. |
Health Services | New | Provides fitness and health data generated from sensors, contextually aware algorithms, and all-day health monitoring. For more information, see Health Services on Wear OS. |
Connectivity | Similar | Most mobile APIs are fully supported, but there are some limitations.
For example, the android.webkit APIs aren't supported.
For more information, read Network
access and sync on Wear OS. |
Android App Bundles | Same | See About Android app bundles in the Android documentation. |
Dependency injection | Same | See Dependency injection in Android in the Android documentation. |
Testing | Similar | See Test apps on Android in the Android documentation. |
Performance | Similar | See Guide to app performance in the Android documentation. |
Accessibility | Same | See Build accessible apps in the Android documentation. |
Privacy | Same | See Privacy best practices in the Android documentation. |
Security | Same | See App security best practices in the Android documentation. |