Stay organized with collections
Save and categorize content based on your preferences.
Compose for Wear OS is similar to
Compose for mobile. However, there are some key differences. This guide
walks you through the similarities and differences.
Compose for Wear OS is part of Android Jetpack, and like the other Wear Jetpack
libraries you use, it helps you write better code faster. This is our
recommended approach for building user interfaces for Wear OS apps.
If you are unfamiliar with using the Jetpack Compose toolkit, check out the
Compose pathway. Many of the development principles for mobile Compose
apply to Compose for Wear OS. See Why Compose for more information on the
general advantages of a declarative UI framework. To learn more about Compose
for Wear OS, see the Compose for Wear OS Pathway and the Wear OS samples
repository on GitHub.
Material Design in Jetpack Compose on Wear OS
Jetpack Compose on Wear OS offers an implementation of
Material 3, which helps you design more engaging app
experiences. The
Material Design components on
Wear OS are built on top of
Wear Material Theming. This theming
is a systematic way to customize Material Design and better reflect your
product's brand.
Compatibility
Compose for Wear OS works on watches that support Wear OS 3.0 (API Level 30)
and watches that use Wear OS 2.0 (API level 25 and above). Using
version 1.5 of Compose for Wear OS requires using version 1.8 of
androidx.compose libraries and Kotlin 1.9.0. You can use the
BOM mapping and Compose to Kotlin compatibility map to check
Compose compatibility.
Surfaces
Compose for Wear OS makes building apps on Wear OS easier. For more information
see Apps. Use our built-in
components to create user experiences that conform to Wear OS guidelines.
For more information about components, see our
design guidance.
Setting up
Using Jetpack Compose with Wear OS is similar to using Jetpack Compose for
any other Android project. The main difference is that Jetpack Compose for Wear
adds Wear-specific libraries that make it easier to create user interfaces
tailored to watches.
In some cases those components share the same name as
their non-wear counterparts, such as
androidx.wear.compose.material3.Button and
androidx.compose.material3.Button.
Create a new app in Android Studio
To create a new project that includes Jetpack Compose, proceed as follows:
If you’re in the Welcome to Android Studio window, click Start a new
Android Studio project. If you already have an Android Studio project open,
select File > New > Import Sample from the menu bar.
Search for Compose for Wear and select Compose for Wear OS Starter.
In the Configure your project window, do the following:
Set the Application name.
Choose the Project location for your sample.
Click Finish.
Verify that the project's build.gradle file is configured correctly,
as described in Gradle properties files.
Now you're ready to start developing an app using Compose for Wear OS.
Jetpack Compose toolkit dependencies
To use Jetpack Compose with Wear OS, you’ll need to include Jetpack Compose
toolkit dependencies in your app’s build.gradle file. Most of the dependency
changes related to Wear OS are in the
top architectural layers, surrounded by a red box
in the following image.
That means many of the dependencies you already use with Jetpack Compose don't
change when targeting Wear OS. For example, the UI, runtime, compiler, and
animation dependencies remain the same.
However, Wear OS has its own versions of material and material3, foundation, and
navigation libraries, so check that you're using the proper libraries.
Use the
WearComposeMaterial
version of APIs where possible. While it's technically possible to use the
mobile version of Compose Material, it is not optimized for the unique
requirements of Wear OS. In addition, mixing Compose Material with Compose
Material for Wear OS can result in unexpected behavior. For example, because
each library has its own MaterialTheme class, there's the possibility of
colors, typography, or shapes being inconsistent if both versions are used.
The following table outlines the dependency differences between Wear OS and
Mobile:
The following snippet shows an example build.gradle file that includes these
dependencies:
Kotlin
dependencies{valcomposeBom=platform("androidx.compose:compose-bom:2025.08.00")// General compose dependenciesimplementation(composeBom)implementation("androidx.activity:activity-compose:1.10.1")implementation("androidx.compose.ui:ui-tooling-preview:1.9.0")// Other compose dependencies// Compose for Wear OS dependenciesimplementation("androidx.wear.compose:compose-material3:")// Foundation is additive, so you can use the mobile version in your Wear OS app.implementation("androidx.wear.compose:compose-foundation:")// Wear OS preview annotationsimplementation("androidx.wear.compose:compose-ui-tooling:")// If you are using Compose Navigation, use the Wear OS version (NOT THE MOBILE VERSION).// Uncomment the line below and update the version number.// implementation("androidx.wear.compose:compose-navigation:")// TestingtestImplementation("junit:junit:4.13.2")androidTestImplementation("androidx.test.ext:junit:1.1.3")androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.0.3")debugImplementation("androidx.compose.ui:ui-tooling:1.4.1")}
Feedback
Try out Compose for Wear OS and use the
issue tracker to provide suggestion and feedback.
Join the
#compose-wear channel
on Kotlin Slack to connect with developer community and let us know your
experience.
Recommended for you
Note: link text is displayed when JavaScript is off
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[],[],null,["# Use Jetpack Compose on Wear OS\n\nCompose for Wear OS Material version 2.5 3\n\n*** ** * ** ***\n\n[Compose for Wear OS](/jetpack/androidx/releases/wear-compose) is similar to\nCompose for mobile. However, there are some key differences. This guide\nwalks you through the similarities and differences.\n\nCompose for Wear OS is part of Android Jetpack, and like the other Wear Jetpack\nlibraries you use, it helps you write better code faster. This is our\nrecommended approach for building user interfaces for [Wear OS apps](/training/wearables/user-interfaces#apps).\n\nIf you are unfamiliar with using the Jetpack Compose toolkit, check out the\n[Compose pathway](/courses/pathways/compose). Many of the development principles for mobile Compose\napply to Compose for Wear OS. See [Why Compose](/jetpack/compose/why-adopt) for more information on the\ngeneral advantages of a declarative UI framework. To learn more about Compose\nfor Wear OS, see the [Compose for Wear OS Pathway](/courses/pathways/wear-compose) and the [Wear OS samples\nrepository](https://github.com/android/wear-os-samples/tree/main/ComposeStarter#readme) on GitHub.\n\nMaterial Design in Jetpack Compose on Wear OS\n---------------------------------------------\n\nJetpack Compose on Wear OS offers an implementation of\n\n[Material 3](/design/ui/wear/guides/get-started), which helps you design more engaging app\n\nexperiences. The\n[Material Design components](/design/ui/wear/guides/components/buttons) on\nWear OS are built on top of\n[Wear Material Theming](/design/ui/wear/guides/styles/theme). This theming\nis a systematic way to customize Material Design and better reflect your\nproduct's brand.\n\nCompatibility\n-------------\n\nCompose for Wear OS works on watches that support Wear OS 3.0 (API Level 30) and watches that use Wear OS 2.0 (API level 25 and above). Using [version 1.5](/jetpack/androidx/releases/wear-compose) of Compose for Wear OS requires using version 1.8 of [androidx.compose](/jetpack/androidx/releases/compose) libraries and Kotlin 1.9.0. You can use the [BOM mapping](/develop/ui/compose/bom/bom-mapping) and [Compose to Kotlin compatibility map](/jetpack/androidx/releases/compose-kotlin) to check Compose compatibility.\n\nSurfaces\n--------\n\nCompose for Wear OS makes building apps on Wear OS easier. For more information\nsee [Apps](/training/wearables/apps#building-an-app). Use our built-in\ncomponents to create user experiences that conform to Wear OS guidelines.\nFor more information about components, see our\n[design guidance](/design/ui/wear/guides/components/buttons).\n\nSetting up\n----------\n\nUsing Jetpack Compose with Wear OS is similar to using Jetpack Compose for\nany other Android project. The main difference is that Jetpack Compose for Wear\nadds Wear-specific libraries that make it easier to create user interfaces\ntailored to watches.\nIn some cases those components share the same name as\ntheir non-wear counterparts, such as\n\n[`androidx.wear.compose.material3.Button`](/reference/kotlin/androidx/wear/compose/material3/package-summary#Button(kotlin.Function0,androidx.compose.ui.Modifier,kotlin.Function0,kotlin.String,kotlin.Boolean,androidx.compose.ui.graphics.Shape,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.interaction.MutableInteractionSource,androidx.wear.compose.material3.SurfaceTransformation,kotlin.Function1)) and\n[`androidx.compose.material3.Button`](/reference/kotlin/androidx/compose/material3/package-summary#Button(kotlin.Function0,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.ui.graphics.Shape,androidx.compose.material3.ButtonColors,androidx.compose.material3.ButtonElevation,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.layout.PaddingValues,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)).\n\n\n### Create a new app in Android Studio\n\nTo create a new project that includes Jetpack Compose, proceed as follows:\n\n1. If you're in the **Welcome to Android Studio** window, click **Start a new\n Android Studio project** . If you already have an Android Studio project open, select **File \\\u003e New \\\u003e Import Sample** from the menu bar.\n2. Search for **Compose for Wear** and select **Compose for Wear OS Starter.**\n3. In the **Configure your project** window, do the following:\n 1. Set the **Application name**.\n 2. Choose the **Project location** for your sample.\n4. Click **Finish**.\n5. Verify that the project's `build.gradle` file is configured correctly, as described in [Gradle properties files](/studio/build#properties-files).\n\nNow you're ready to start developing an app using Compose for Wear OS.\n\n### Jetpack Compose toolkit dependencies\n\nTo use Jetpack Compose with Wear OS, you'll need to include Jetpack Compose\ntoolkit dependencies in your app's `build.gradle` file. Most of the dependency\nchanges related to Wear OS are in the\n[top architectural layers](/jetpack/compose/layering), surrounded by a red box\nin the following image.\n\nThat means many of the dependencies you already use with Jetpack Compose don't\nchange when targeting Wear OS. For example, the UI, runtime, compiler, and\nanimation dependencies remain the same.\n\nHowever, Wear OS has its own versions of `material` and `material3`, `foundation`, and\n`navigation` libraries, so check that you're using the proper libraries.\n\nUse the\n[`WearComposeMaterial`](/reference/kotlin/androidx/wear/compose/material/package-summary)\nversion of APIs where possible. While it's technically possible to use the\nmobile version of Compose Material, it is not optimized for the unique\nrequirements of Wear OS. In addition, mixing Compose Material with Compose\nMaterial for Wear OS can result in unexpected behavior. For example, because\neach library has its own `MaterialTheme` class, there's the possibility of\ncolors, typography, or shapes being inconsistent if both versions are used.\n\nThe following table outlines the dependency differences between Wear OS and\nMobile:\n\n|----------------------------------------------------------------------------------------------------------------|----------------------|----------------------------------------|\n| **Wear OS Dependency** (androidx.wear.\\*) | **Comparison** | **Mobile Dependency** (androidx.\\*) |\n| [androidx.wear.compose:compose-material3](/reference/kotlin/androidx/wear/compose/material/package-summary) | ***instead of*** | androidx.compose.material:material3 |\n| [androidx.wear.compose:compose-navigation](/reference/kotlin/androidx/wear/compose/navigation/package-summary) | ***instead of*** | androidx.navigation:navigation-compose |\n| [androidx.wear.compose:compose-foundation](/reference/kotlin/androidx/wear/compose/foundation/package-summary) | ***in addition to*** | androidx.compose.foundation:foundation |\n\n| **Note:** Other non-mobile material dependencies can be used, such as material ripple and material icons extended.\n\nThe following snippet shows an example `build.gradle` file that includes these\ndependencies: \n\n### Kotlin\n\n```kotlin\ndependencies {\n\n val composeBom = platform(\"androidx.compose:compose-bom:2025.08.00\")\n\n // General compose dependencies\n implementation(composeBom)\n implementation(\"androidx.activity:activity-compose:1.10.1\")\n implementation(\"androidx.compose.ui:ui-tooling-preview:1.9.0\")\n // Other compose dependencies\n\n // Compose for Wear OS dependencies\n implementation(\"androidx.wear.compose:compose-material3:\")\n\n // Foundation is additive, so you can use the mobile version in your Wear OS app.\n implementation(\"androidx.wear.compose:compose-foundation:\")\n\n // Wear OS preview annotations\n implementation(\"androidx.wear.compose:compose-ui-tooling:\")\n\n // If you are using Compose Navigation, use the Wear OS version (NOT THE MOBILE VERSION).\n // Uncomment the line below and update the version number.\n // implementation(\"androidx.wear.compose:compose-navigation:\")\n\n // Testing\n testImplementation(\"junit:junit:4.13.2\")\n androidTestImplementation(\"androidx.test.ext:junit:1.1.3\")\n androidTestImplementation(\"androidx.test.espresso:espresso-core:3.4.0\")\n androidTestImplementation(\"androidx.compose.ui:ui-test-junit4:1.0.3\")\n debugImplementation(\"androidx.compose.ui:ui-tooling:1.4.1\")\n \n}\n```\n\nFeedback\n--------\n\nTry out Compose for Wear OS and use the\n[issue tracker](https://issuetracker.google.com/issues/new?component=1077552&template=1598429&pli=1) to provide suggestion and feedback.\n\nJoin the\n[#compose-wear channel](https://surveys.jetbrains.com/s3/kotlin-slack-sign-up)\non Kotlin Slack to connect with developer community and let us know your\nexperience.\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Resources in Compose](/develop/ui/compose/resources)\n- [Material Design 3 in Compose](/develop/ui/compose/designsystems/material3)\n- [Get Started with Jetpack Compose](/develop/ui/compose/documentation)"]]