<!--
{
  "availability" : [
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WatchKit",
  "identifier" : "/documentation/WatchKit",
  "metadataVersion" : "0.1.0",
  "role" : "Framework",
  "symbol" : {
    "kind" : "Framework",
    "modules" : [
      "WatchKit"
    ],
    "preciseIdentifier" : "WatchKit"
  },
  "title" : "WatchKit"
}
-->

# WatchKit

Build watchOS apps that use features the app delegate monitors or controls, such as background tasks and extended runtime sessions.

## Overview

The WatchKit framework provides infrastructure for creating watchOS apps, including an extension delegate that manages background tasks, extended runtime sessions, and Siri intents. The framework also performs other support tasks, such as accessing information about the user’s Apple Watch.

![An illustration showing a blueprint. The central image displays a drawing of an Apple Watch with gears inside it. There are sketches of icons on either side of the watch.](images/com.apple.watchkit/media-3987848~dark@2x.png)

You can also use WatchKit to design your app’s user interface in a storyboard, connecting UI elements to an interface controller.

> Note:
> Building your app with SwiftUI gives you more control over the user interface than designing it in a storyboard. When creating a new watchOS app, strongly consider using <doc://com.apple.documentation/documentation/SwiftUI>. For more information, see <doc://com.apple.documentation/documentation/watchOS-Apps/building_a_watchos_app>.

For more information on building watchOS apps, see <doc://com.apple.documentation/documentation/watchOS-Apps>.

## Topics

### App structure

  <doc://com.apple.documentation/documentation/watchOS-Apps/setting-up-a-watchos-project>

[`WKApplication`](/documentation/WatchKit/WKApplication)

The centralized point of control and coordination for apps with a single watchOS app target.

[`WKApplicationDelegate`](/documentation/WatchKit/WKApplicationDelegate)

A collection of methods that manages the app-level behavior for a single-target watchOS app.

[`WKExtension`](/documentation/WatchKit/WKExtension)

The centralized point of control and coordination for extension-based apps running in watchOS.

[`WKExtensionDelegate`](/documentation/WatchKit/WKExtensionDelegate)

A collection of methods that manages the app-level behavior of a WatchKit extension.

[`WKApplicationMain(_:_:_:)`](/documentation/WatchKit/WKApplicationMain(_:_:_:))

Creates the application object and the application delegate, and sets up the app’s event cycle.

[`WKInterfaceDevice`](/documentation/WatchKit/WKInterfaceDevice)

An object that provides information about the user’s Apple Watch.

  <doc://com.apple.documentation/documentation/BundleResources/Information-Property-List/WKPrefersNetworkUponForeground>

### Runtime management

[Background execution](/documentation/WatchKit/background-execution)

Manage background sessions and tasks.

[Life cycles](/documentation/WatchKit/life-cycles)

Receive and respond to life-cycle notifications.

[Using extended runtime sessions](/documentation/WatchKit/using-extended-runtime-sessions)

Create an extended runtime session that continues running your app after the user stops interacting with it.

[`WKExtendedRuntimeSession`](/documentation/WatchKit/WKExtendedRuntimeSession)

A session that continues to run your app after the user has stopped interacting.

[Interacting with Bluetooth peripherals during background app refresh](/documentation/WatchKit/interacting-with-bluetooth-peripherals-during-background-app-refresh)

Keep your complications up-to-date by reading values from a Bluetooth peripheral while your app is running in the background.

### User interface

[Storyboard support](/documentation/WatchKit/storyboard-support)

Connect your code to storyboard elements using interface controllers, interface objects, and event handlers.

[`NowPlayingView`](/documentation/WatchKit/NowPlayingView)

A view that displays the system’s Now Playing interface so that the user can control audio.

### Errors

[`WatchKitError`](/documentation/WatchKit/WatchKitError)

An error reported by WatchKit.

### Errors

[`WatchKitError.Code`](/documentation/WatchKit/WatchKitError/Code)

Error codes reported by WatchKit.

[`WatchKitErrorDomain`](/documentation/WatchKit/WatchKitErrorDomain)

The domain for WatchKit errors.

### Macros

[Macros](/documentation/WatchKit/WatchKit-macros)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)
