Display app-specific data in the complications on the clock face.


Use the ClockKit framework to implement a complication interface for your app. Complications are small interface elements that appear on the clock face and provide quick access to frequently used data. Apps provide data in advance of when it’s needed and specify how they want the data displayed. The system updates the appearance of your complication at the time you specify.

Because you specify complication data in advance, you use templates to tell the system how you want that data displayed. ClockKit provides templates for each complication size and style that can be displayed on the clock face. Templates let you arrange text and images. There are also templates for displaying completion rings and other types of formatted content.



Your data source object provides templates filled with app-specific data that ClockKit uses to display complications on the watch face.

Adding a Complication to Your watchOS App

Build a better watchOS experience using complications.


A protocol that communicates with ClockKit, providing information about your complication.


Manage your complications when they are active on the watch face, and use timeline entries to specify the data that you want to display.


An object that manages the active complications for a given app.


Metadata about one of your custom complications.


A container for the complication template object to display and the time at which to display it.

Data Providers

Data providers manage the data you display in a complication, ensuring that it’s accurate at the time it’s displayed.


A formatted string that conveys a date without any time information.


An image displayed by a complication.


A full-color image displayed by a complication.


A formatted string that conveys the difference in time between the current date and a date that you specify.


A single line of text to display in your complication interface.


The common behavior for displaying text-based data in a complication.


A formatted time range.


A formatted time value.


A gauge that shows a fractional value.


A gauge that tracks time intervals.


An abstract superclass that provides all the common behaviors for the gauge providers.


A fill value indicating an empty gauge.


Visual styles available for gauges.


Draw complications using templates that define the layout and appearance of the data from the timeline. Each complication family offers a variety of templates for displaying your data.

Circular Small

Use circular small templates to display content in the corners of the Color watch face.

Extra Large

Use the extra large templates to display content on the X-Large watch faces.

Modular Small

Use modular small templates to display content in the smaller spaces of the Modular watch face.

Modular Large

Use modular large templates to display multiple rows of content on the Modular watch face.


Use the utilitarian templates to display content on a variety of watch faces, including the Utility, Chronograph, Simple, and character watch faces.


Use graphic templates to display visually rich content on a variety of watch faces, including the Infograph, Infograph Modular, and Solar Dial faces.


An abstract class that defines the base behavior for all templates.


Constants indicating the template groups.

property list key CLKComplicationSupportedFamilies

The complication families for which the app can provide data.

Name: ClockKit Complication - Supported Families