15 May 2024
At last year’s Google I/O, we launched the Watch Face Format for Wear OS. This year, as part of our continued partnership with Samsung, we are excited to share some new features that you can use to create exciting new watch face designs! These features are now supported in XML definitions, and later in the year, you’ll also see an update to Watch Face Studio to take advantage of them.
The Watch Face Format is the recommended way to create watch faces for Wear OS. The format makes it easier to create customizable and more power-efficient watch faces for devices that run Wear OS 4 or higher. The Watch Face Format is a declarative XML format, so there is no executable code involved in creating a watch face, and there is no code embedded in your watch face APK.
Additionally, in our move toward the Watch Face Format for watch face creation, we have also made some changes to watch face development.
Flavors represent preset configurations for your watch face, available in the companion app:
They allow the watch face developer to configure useful and attractive combinations of the watch face’s configuration options, and allow the user to visualize and select from these with ease.
We’ve now brought flavors to the Watch Face Format. For a full guide on adding them to your watch face, see the flavors reference.
We’re adding support for both “goal progress” and “weighted elements” complication types to the Watch Face Format:
Both of these complication types can be accessed through the [COMPLICATION.*] expression object. For full details, see the complication guidance.
Knowing at-a-glance what the weather will be like for the next hour, day, and beyond can make all the difference to a user’s plans! Unsurprisingly, having weather data as a data source in the Watch Face Format has been a common request, and we’re delighted to be able to introduce it in this latest version. You’ll now be able make watch faces like this:
Weather Basics
Weather in the Watch Face Format is accessed via the [WEATHER.*] expression object. You can use it in Condition and text Template statements and anywhere where expressions are supported.
For example, to show the current weather condition, use this template and expression:
<Template>Current weather conditions: %s
<Parameter expression="[WEATHER.CONDITION_NAME]"/>
</Template>
The weather provider in the Watch Face Format supports a range of different metric types for the current day, including the following:
For the full range of data types and conditions, see the weather guide.
Forecasts
In addition to the current weather, you can access forecast data, both by hour and by day. For example, to access the forecast maximum temperature for tomorrow, use a template and set of expressions similar to the following:
<Template>Tomorrow max temp: %d°%s
<Parameter expression="[WEATHER.DAYS.1.TEMPERATURE_HIGH]" />
<Parameter expression="[WEATHER.TEMPERATURE_UNIT] == 1 ? "C" : "F"" />
</Template>
When using weather in the Watch Face Format, there are some further details to be aware of, such as checking for forecast availability or loading errors. For all of this and more, take a look at the weather guide.
As we gather momentum behind the Watch Face Format, we’re announcing some changes to existing watch face development options.
We announced recently that only some complications will be available on Wear OS 5, for watch faces built with AndroidX or the Wearable Support Library. This restriction does not apply to watch faces that use the Watch Face Format.
Additionally, starting in early 2025 (specific date to be announced in Q4 2024), all new watch faces published on Google Play must use the Watch Face Format. Existing watch faces that use other libraries, such as AndroidX or the Wearable Support Library, can continue to receive updates without transitioning to the new format.
To make it easier to create watch faces using the Watch Face Format, we’ve published some more resources on GitHub.
You now have full access to the XSD specification, to help you build your own watch face generating tools.
We’ve also provided validators to check your XML for correctness and memory usage. These are the same checks run by Google Play, so it allows you to run these checks even before you submit your watch face for publishing.
Get started with the latest version of the Watch Face Format.
Be sure to check out Building for the future of Wear OS technical session and What’s new in Wear OS at I/O 2024 blog post to learn more about all the latest updates for Wear OS!
Code snippets license:
Copyright 2023 Google LLC.
SPDX-License-Identifier: Apache-2.0