Is it possible to create my own Watch Face on Apple Watch? Not compose from an official one

Viewed 470

I tried to google it very hard but it seems blocking, I always end up with tutorials to change the complications and publish it for friends...

What I want to perform is create my own Watch Faces for my Apple Watch, with room for official complications. So I would be able to create my own watch face. Chronology did it, so why wouldn't we? I just don't find the documentation for that.

Please note, I don't want to create a "time-centric" application, I am here talking about real Watch Faces. My goal is to create something where the time only take the place of a small complication, with a custom design of mine, and then I have plenty room for complications from my favorites / personal applications !

This question concerns the Apple Watch (And Watch OS), not WearOS.

Many thanks for your help !

1 Answers

Here is Apple official Documentation about how to add a watch face to your app

Support Shared Complications

To ensure that your app’s complications appear as expected in the watch face preview, you must implement your ClockKit data source’s getLocalizableSampleTemplate(for:withHandler:) method. You can’t just add preview images to the assets catalog.

Then, as soon as the user installs a watch face that includes your app’s complications, the system calls your data source’s handleSharedComplicationDescriptors(_:) method. Use this method to prepare your app so that it can provide complication data for the shared complications.

For example, a weather app may provide separate complications for all of the user’s favorite cities. When the user receives a shared watch face, the app must be ready to provide data for the city associated with the incoming complication, even if it’s not already in the user’s favorites list.

Finally, ClockKit calls your data source’s methods to populate the complication’s timeline. This includes calling getTimelineEndDate(for:withHandler:) and getCurrentTimelineEntry(for:withHandler:), and then calling getTimelineEntries(for:after:limit:withHandler:) if your app supports batch downloading future timeline entries.

Related