---
title: UIApplicationDelegate
framework: uikit
role: symbol
role_heading: Protocol
path: uikit/uiapplicationdelegate
---

# UIApplicationDelegate

A set of methods to manage shared behaviors for your app.

## Declaration

```swift
@MainActor protocol UIApplicationDelegate : NSObjectProtocol
```

## Mentioned in

Transitioning to the UIKit scene-based life cycle About app development with UIKit

## Overview

Overview Your app delegate object manages your app’s shared behaviors. The app delegate is effectively the root object of your app, and it works in conjunction with UIApplication to manage some interactions with the system. Like the UIApplication object, UIKit creates your app delegate object early in your app’s launch cycle so it’s always present. Use your app delegate object to handle the following tasks: Initializing your app’s central data structures Configuring your app’s scenes Responding to notifications originating from outside the app, such as low-memory warnings, download completion notifications, and more Responding to events that target the app itself, and aren’t specific to your app’s scenes, views, or view controllers Registering for any required services at launch time, such as Apple Push Notification service For more information about how you use the app delegate object to initialize your app at launch time, see Responding to the launch of your app. Life-cycle management in iOS 12 and earlier In iOS 12 and earlier, you use your app delegate to manage major life cycle events in your app. Specifically, you use methods of the app delegate to update the state of your app when it enters the foreground or moves to the background. For information on what to do when your app enters the foreground, see Preparing your UI to run in the foreground. For information on what to do when your app enters the background, see Preparing your UI to run in the background. For general information about the life cycle of your app, see Managing your app’s life cycle.

## Topics

### Initializing the app

- [application(_:willFinishLaunchingWithOptions:)](uikit/uiapplicationdelegate/application(_:willfinishlaunchingwithoptions:).md)
- [application(_:didFinishLaunchingWithOptions:)](uikit/uiapplicationdelegate/application(_:didfinishlaunchingwithoptions:).md)
- [UIApplication.LaunchOptionsKey](uikit/uiapplication/launchoptionskey.md)
- [didFinishLaunchingNotification](uikit/uiapplication/didfinishlaunchingnotification.md)

### Configuring and discarding scenes

- [application(_:configurationForConnecting:options:)](uikit/uiapplicationdelegate/application(_:configurationforconnecting:options:).md)
- [application(_:didDiscardSceneSessions:)](uikit/uiapplicationdelegate/application(_:diddiscardscenesessions:).md)

### Responding to app life-cycle events

- [applicationDidBecomeActive(_:)](uikit/uiapplicationdelegate/applicationdidbecomeactive(_:).md)
- [applicationWillResignActive(_:)](uikit/uiapplicationdelegate/applicationwillresignactive(_:).md)
- [applicationDidEnterBackground(_:)](uikit/uiapplicationdelegate/applicationdidenterbackground(_:).md)
- [applicationWillEnterForeground(_:)](uikit/uiapplicationdelegate/applicationwillenterforeground(_:).md)
- [applicationWillTerminate(_:)](uikit/uiapplicationdelegate/applicationwillterminate(_:).md)
- [didBecomeActiveNotification](uikit/uiapplication/didbecomeactivenotification.md)
- [didEnterBackgroundNotification](uikit/uiapplication/didenterbackgroundnotification.md)
- [willEnterForegroundNotification](uikit/uiapplication/willenterforegroundnotification.md)
- [willResignActiveNotification](uikit/uiapplication/willresignactivenotification.md)
- [willTerminateNotification](uikit/uiapplication/willterminatenotification.md)

### Responding to environment changes

- [applicationProtectedDataDidBecomeAvailable(_:)](uikit/uiapplicationdelegate/applicationprotecteddatadidbecomeavailable(_:).md)
- [applicationProtectedDataWillBecomeUnavailable(_:)](uikit/uiapplicationdelegate/applicationprotecteddatawillbecomeunavailable(_:).md)
- [applicationDidReceiveMemoryWarning(_:)](uikit/uiapplicationdelegate/applicationdidreceivememorywarning(_:).md)
- [applicationSignificantTimeChange(_:)](uikit/uiapplicationdelegate/applicationsignificanttimechange(_:).md)
- [protectedDataDidBecomeAvailableNotification](uikit/uiapplication/protecteddatadidbecomeavailablenotification.md)
- [protectedDataWillBecomeUnavailableNotification](uikit/uiapplication/protecteddatawillbecomeunavailablenotification.md)
- [didReceiveMemoryWarningNotification](uikit/uiapplication/didreceivememorywarningnotification.md)
- [significantTimeChangeNotification](uikit/uiapplication/significanttimechangenotification.md)

### Managing app state restoration

- [application(_:shouldSaveSecureApplicationState:)](uikit/uiapplicationdelegate/application(_:shouldsavesecureapplicationstate:).md)
- [application(_:shouldRestoreSecureApplicationState:)](uikit/uiapplicationdelegate/application(_:shouldrestoresecureapplicationstate:).md)
- [application(_:viewControllerWithRestorationIdentifierPath:coder:)](uikit/uiapplicationdelegate/application(_:viewcontrollerwithrestorationidentifierpath:coder:).md)
- [application(_:willEncodeRestorableStateWith:)](uikit/uiapplicationdelegate/application(_:willencoderestorablestatewith:).md)
- [application(_:didDecodeRestorableStateWith:)](uikit/uiapplicationdelegate/application(_:diddecoderestorablestatewith:).md)
- [stateRestorationBundleVersionKey](uikit/uiapplication/staterestorationbundleversionkey.md)
- [stateRestorationSystemVersionKey](uikit/uiapplication/staterestorationsystemversionkey.md)
- [stateRestorationTimestampKey](uikit/uiapplication/staterestorationtimestampkey.md)
- [stateRestorationUserInterfaceIdiomKey](uikit/uiapplication/staterestorationuserinterfaceidiomkey.md)
- [stateRestorationViewControllerStoryboardKey](uikit/uiapplication/staterestorationviewcontrollerstoryboardkey.md)

### Downloading data in the background

- [application(_:handleEventsForBackgroundURLSession:completionHandler:)](uikit/uiapplicationdelegate/application(_:handleeventsforbackgroundurlsession:completionhandler:).md)
- [UIBackgroundFetchResult](uikit/uibackgroundfetchresult.md)

### Handling remote notification registration

- [application(_:didRegisterForRemoteNotificationsWithDeviceToken:)](uikit/uiapplicationdelegate/application(_:didregisterforremotenotificationswithdevicetoken:).md)
- [application(_:didFailToRegisterForRemoteNotificationsWithError:)](uikit/uiapplicationdelegate/application(_:didfailtoregisterforremotenotificationswitherror:).md)
- [application(_:didReceiveRemoteNotification:fetchCompletionHandler:)](uikit/uiapplicationdelegate/application(_:didreceiveremotenotification:fetchcompletionhandler:).md)

### Continuing user activity and handling quick actions

- [application(_:willContinueUserActivityWithType:)](uikit/uiapplicationdelegate/application(_:willcontinueuseractivitywithtype:).md)
- [application(_:continue:restorationHandler:)](uikit/uiapplicationdelegate/application(_:continue:restorationhandler:).md)
- [application(_:didUpdate:)](uikit/uiapplicationdelegate/application(_:didupdate:).md)
- [application(_:didFailToContinueUserActivityWithType:error:)](uikit/uiapplicationdelegate/application(_:didfailtocontinueuseractivitywithtype:error:).md)
- [application(_:performActionFor:completionHandler:)](uikit/uiapplicationdelegate/application(_:performactionfor:completionhandler:).md)

### Interacting with WatchKit

- [application(_:handleWatchKitExtensionRequest:reply:)](uikit/uiapplicationdelegate/application(_:handlewatchkitextensionrequest:reply:).md)

### Interacting with HealthKit

- [applicationShouldRequestHealthAuthorization(_:)](uikit/uiapplicationdelegate/applicationshouldrequesthealthauthorization(_:).md)

### Opening a URL-specified resource

- [application(_:open:options:)](uikit/uiapplicationdelegate/application(_:open:options:).md)
- [UIApplication.OpenURLOptionsKey](uikit/uiapplication/openurloptionskey.md)

### Disallowing specified app extension types

- [application(_:shouldAllowExtensionPointIdentifier:)](uikit/uiapplicationdelegate/application(_:shouldallowextensionpointidentifier:).md)
- [UIApplication.ExtensionPointIdentifier](uikit/uiapplication/extensionpointidentifier.md)
- [keyboard](uikit/uiapplication/extensionpointidentifier/keyboard.md)

### Handling SiriKit intents

- [application(_:handlerFor:)](uikit/uiapplicationdelegate/application(_:handlerfor:).md)

### Handling CloudKit invitations

- [application(_:userDidAcceptCloudKitShareWith:)](uikit/uiapplicationdelegate/application(_:userdidacceptcloudkitsharewith:).md)

### Localizing keyboard shortcuts

- [applicationShouldAutomaticallyLocalizeKeyCommands(_:)](uikit/uiapplicationdelegate/applicationshouldautomaticallylocalizekeycommands(_:).md)

### Managing interface geometry

- [application(_:supportedInterfaceOrientationsFor:)](uikit/uiapplicationdelegate/application(_:supportedinterfaceorientationsfor:).md)
- [UIInterfaceOrientation](uikit/uiinterfaceorientation.md)
- [UIInterfaceOrientationMask](uikit/uiinterfaceorientationmask.md)
- [invalidInterfaceOrientationException](uikit/uiapplication/invalidinterfaceorientationexception.md)

### Providing a window for storyboarding

- [window](uikit/uiapplicationdelegate/window.md)

### Providing the main entry point

- [main()](uikit/uiapplicationdelegate/main().md)

### Deprecated

- [applicationDidFinishLaunching(_:)](uikit/uiapplicationdelegate/applicationdidfinishlaunching(_:).md)
- [Deprecated symbols](uikit/uiapplicationdelegate-deprecated-symbols.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Life cycle

- [Managing your app’s life cycle](uikit/managing-your-app-s-life-cycle.md)
- [Responding to the launch of your app](uikit/responding-to-the-launch-of-your-app.md)
- [UIApplication](uikit/uiapplication.md)
- [Scenes](uikit/scenes.md)
- [Transitioning to the UIKit scene-based life cycle](uikit/transitioning-to-the-uikit-scene-based-life-cycle.md)
