19.6 · The watch app model, Watch Connectivity, and complications
A watch app is a small, short-lived program on a small battery, usually talking to an iPhone it may not be near. Every design choice follows from those three constraints.
Mental model. On the watch you get seconds, not minutes, glances, not sessions, and a phone that may not be there.
The watch app
App versus extension, independence, runtime and extended sessions.
- How is a watchOS app structured today versus the legacy WatchKit app and extension, and what do independent apps and extended runtime sessions change?
The old model (watchOS 1 to 6) split a watch app into a WatchKit app (storyboards and assets, running on the watch) and a WatchKit extension (the code, in a…
Talking to the phone and the face
Watch Connectivity and complications as widgets.
- How does Watch Connectivity work: the transfer types, reachability, and how do you choose between them?
Watch Connectivity (WCSession) is the framework for an iPhone app and its paired watch app to exchange data. Both sides activate the singleton… - How have watch complications moved from ClockKit to WidgetKit, and what are accessory families and the Smart Stack?
A complication is a small piece of your app’s data on the watch face. The legacy model (watchOS 2 to 8) was ClockKit: a CLKComplicationDataSource in the watch…
More in Extensions, widgets & intents
- 19.1 · Extension processes, limits, and sharing data with the app
- 19.2 · Notification Service and Notification Content extensions
- 19.3 · Share, Action, keyboards, message filtering, web extensions and network extensions
- 19.4 · WidgetKit timelines, families, refresh budgets, interactivity and controls
- 19.5 · App Intents, Shortcuts, Siri and Spotlight
- 19.7 · Top Shelf on tvOS, and treating extensions as a product API
- 19.8 · Timeline fallbacks, testing, bundles and rendering modes
- 19.9 · Dependencies, entities and queries, errors, and build-time metadata
- 19.10 · Info.plist, bundle ids, app group containers and shared payloads