📱

UIApplicationDelegate Protocol Overview

Jul 10, 2025

Overview

This lecture covers the UIApplicationDelegate protocol in UIKit, which manages shared behaviors and app life-cycle events in iOS apps.

UIApplicationDelegate Overview

  • UIApplicationDelegate is a protocol that defines methods for managing app-level behavior.
  • The app delegate object acts as the root of your app and coordinates with the UIApplication object.
  • UIKit creates the app delegate early in the app launch cycle and it is always present.

Main Responsibilities of the App Delegate

  • Initializes central data structures when the app launches.
  • Configures app scenes for multi-window support.
  • Responds to external notifications, such as memory warnings and download completions.
  • Handles app-level events that are not specific to views or controllers.
  • Registers required services like Apple Push Notification service at launch.

Handling App Life Cycle

  • Manages events such as app launch, foreground entry, background entry, and termination.
  • application(_:willFinishLaunchingWithOptions:) is called at the start of launch.
  • application(_:didFinishLaunchingWithOptions:) is called when launch is nearly complete.
  • Methods exist to handle entering background, becoming active, receiving memory warnings, etc.
  • Deprecated methods exist for older iOS versions.

Scene Management

  • application(_:configurationForConnecting:options:) provides configuration for new scenes.
  • application(_:didDiscardSceneSessions:) informs when scenes are closed by the user.

State Restoration

  • Methods allow saving and restoring the app's UI and data state securely.
  • State restoration uses version and timestamp metadata for accurate restoration.

Background Execution and Notifications

  • Handles background data downloads and responds to remote notifications.
  • Manages registration for remote notifications and processes notification-related events.

Other Delegated Events

  • Responds to changes in protected data availability.
  • Opens URLs and manages app extension permissions.
  • Handles WatchKit, HealthKit, SiriKit, and CloudKit events.

Key Terms & Definitions

  • UIApplicationDelegate — Protocol for managing app-level behaviors.
  • App Delegate — The object that adopts UIApplicationDelegate and manages shared app events.
  • Scene — An instance of the app's UI for multitasking.
  • State Restoration — The process of saving and restoring app UI and data state.
  • Remote Notification — Messages sent to the app from a remote server via APNs.

Action Items / Next Steps

  • Review specific delegate method signatures for implementation.
  • Study life cycle event handling for both single and multi-scene apps.
  • Understand deprecated methods and their modern replacements.