---
title: WatchKit
framework: WatchKit
role: collection
role_heading: Framework
platforms: [watchOS 2.0+]
path: watchkit
---

# WatchKit

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

## Overview

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.

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 SwiftUI. For more information, see Building a watchOS app. For more information on building watchOS apps, see watchOS apps.

## Topics

### App structure

- [Setting up a watchOS project](watchos-apps/setting-up-a-watchos-project.md)
- [WKApplication](watchkit/wkapplication.md)
- [WKApplicationDelegate](watchkit/wkapplicationdelegate.md)
- [WKExtension](watchkit/wkextension.md)
- [WKExtensionDelegate](watchkit/wkextensiondelegate.md)
- [WKApplicationMain(_:_:_:)](watchkit/wkapplicationmain(_:_:_:).md)
- [WKInterfaceDevice](watchkit/wkinterfacedevice.md)
- [WKPrefersNetworkUponForeground](bundleresources/information-property-list/wkprefersnetworkuponforeground.md)

### Runtime management

- [Background execution](watchkit/background-execution.md)
- [Life cycles](watchkit/life-cycles.md)
- [Using extended runtime sessions](watchkit/using-extended-runtime-sessions.md)
- [WKExtendedRuntimeSession](watchkit/wkextendedruntimesession.md)
- [Interacting with Bluetooth peripherals during background app refresh](watchkit/interacting-with-bluetooth-peripherals-during-background-app-refresh.md)

### User interface

- [Storyboard support](watchkit/storyboard-support.md)
- [NowPlayingView](watchkit/nowplayingview.md)

### Errors

- [WatchKitError](watchkit/watchkiterror.md)
