---
title: WKApplication
framework: watchkit
role: symbol
role_heading: Class
path: watchkit/wkapplication
---

# WKApplication

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

## Declaration

```swift
@MainActor class WKApplication
```

## Overview

Overview In Xcode 13 and earlier, the system divides a watchOS app into two sections: In Xcode 14 and later, you can produce watchOS apps with a single watchOS app target for code, assets, extensions, and localizations. These single-target watchOS apps can run on watchOS 7 and later Single-target watchOS apps have a single app object. While the system creates and manages this object, you can access it to perform app-level tasks such as opening URLs and getting the root interface controller of your app. As relevant events occur within your WatchKit app, the app object notifies its delegate of those events. Your delegate object can implement the methods it needs to provide an appropriate response to life-cycle events, handle notifications, or handle Handoff–related behaviors. For more information about the methods of the delegate, see WKApplicationDelegate.

## Topics

### Getting the app object

- [shared()](watchkit/wkapplication/shared().md)

### Accessing the app delegate

- [delegate](watchkit/wkapplication/delegate.md)
- [WKApplicationDelegate](watchkit/wkapplicationdelegate.md)

### Opening a URL resource

- [openSystemURL(_:)](watchkit/wkapplication/opensystemurl(_:).md)

### Getting the interface controller

- [rootInterfaceController](watchkit/wkapplication/rootinterfacecontroller.md)
- [visibleInterfaceController](watchkit/wkapplication/visibleinterfacecontroller.md)

### Managing the app state

- [applicationState](watchkit/wkapplication/applicationstate.md)
- [WKApplicationState](watchkit/wkapplicationstate.md)
- [isApplicationRunningInDock](watchkit/wkapplication/isapplicationrunningindock.md)
- [scheduleBackgroundRefresh(withPreferredDate:userInfo:scheduledCompletion:)](watchkit/wkapplication/schedulebackgroundrefresh(withpreferreddate:userinfo:scheduledcompletion:).md)

### Managing the user interface

- [isAutorotating](watchkit/wkapplication/isautorotating.md)
- [isAutorotated](watchkit/wkapplication/isautorotated.md)
- [globalTintColor](watchkit/wkapplication/globaltintcolor.md)

### Managing the snapshot

- [scheduleSnapshotRefresh(withPreferredDate:userInfo:scheduledCompletion:)](watchkit/wkapplication/schedulesnapshotrefresh(withpreferreddate:userinfo:scheduledcompletion:).md)

### Observing messages from the notification center

- [didFinishLaunchingNotification](watchkit/wkapplication/didfinishlaunchingnotification.md)
- [didBecomeActiveNotification](watchkit/wkapplication/didbecomeactivenotification.md)
- [willResignActiveNotification](watchkit/wkapplication/willresignactivenotification.md)
- [willEnterForegroundNotification](watchkit/wkapplication/willenterforegroundnotification.md)
- [didEnterBackgroundNotification](watchkit/wkapplication/didenterbackgroundnotification.md)

### Registering for remote notifications

- [registerForRemoteNotifications()](watchkit/wkapplication/registerforremotenotifications().md)
- [unregisterForRemoteNotifications()](watchkit/wkapplication/unregisterforremotenotifications().md)
- [isRegisteredForRemoteNotifications](watchkit/wkapplication/isregisteredforremotenotifications.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [Sendable](swift/sendable.md)

## See Also

### App structure

- [Setting up a watchOS project](watchos-apps/setting-up-a-watchos-project.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)
