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](https://developer.android.com/training/wearables/principles)
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](https://developer.android.com/training/wearables/ui/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](https://developer.android.com/training/wearables/compose/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](https://developer.android.com/topic/libraries/architecture) 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](https://developer.android.com/training/basics/intents). |
| Interaction with paired devices | New | Can interact with paired devices through the Wear app. Read more at [Send and sync data](https://developer.android.com/training/wearables/data-layer). |
| Intents and intent filters | Same | See [Intents and intent filters](https://developer.android.com/guide/components/intents-filters) in the Android documentation. |
| Animations and transitions | Same | See [Animations and transitions](https://developer.android.com/training/animation) in the Android documentation. |
| Images and graphics | Same | See [Images and graphics](https://developer.android.com/guide/topics/graphics) in the Android documentation. |
| Services and background tasks | Same | See [Services overview](https://developer.android.com/guide/components/services) in the Android documentation. |
| Background tasks | Same | See [Background work overview](https://developer.android.com/guide/background) in the Android documentation. |
| Permissions | Same | See [Permissions on Android](https://developer.android.com/guide/topics/permissions/overview) in the Android documentation. |
| App data and files | Same | See [App data and files](https://developer.android.com/guide/topics/data) in the Android documentation. |
| User data and identity | Similar | Has additional options for authentication beyond the [related mobile APIs](https://developer.android.com/guide/user-data). Read more about [Authentication on wearables](https://developer.android.com/training/wearables/apps/auth-wear). |
| User location | Same | The`FusedLocationProvider` also takes advantage of the phone's GPS chip to save battery life and to [detect location on Wear OS](https://developer.android.com/training/articles/wear-location-detection). |
| Touch and input | Mobile and more | Offers more input beyond standard touch input. Read more at [Touch and input overview](https://developer.android.com/guide/input). |
| 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](https://developer.android.com/guide/topics/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](https://developer.android.com/training/wearables/health-services). |
| 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](https://developer.android.com/training/wearables/data-layer/network-access). |
| Android App Bundles | Same | See [About Android app bundles](https://developer.android.com/guide/app-bundle) in the Android documentation. |
| Dependency injection | Same | See [Dependency injection in Android](https://developer.android.com/training/dependency-injection) in the Android documentation. |
| Testing | Similar | See [Test apps on Android](https://developer.android.com/training/testing) in the Android documentation. |
| Performance | Similar | See [Guide to app performance](https://developer.android.com/topic/performance) in the Android documentation. |
| Accessibility | Same | See [Build accessible apps](https://developer.android.com/guide/topics/ui/accessibility) in the Android documentation. |
| Privacy | Same | See [Privacy best practices](https://developer.android.com/privacy/best-practices) in the Android documentation. |
| Security | Same | See [App security best practices](https://developer.android.com/topic/security/best-practices) in the Android documentation. |