How to migrate from AppDelegate to SceneDelegate? And whats are the difference between them?

Asked on 06/12/2025

1 search

To migrate from AppDelegate to SceneDelegate, you need to adopt the UI Scene lifecycle, which is becoming mandatory in the latest iOS SDKs. The SceneDelegate is responsible for managing the lifecycle of individual scenes, whereas the AppDelegate was previously responsible for the entire app lifecycle.

Differences between AppDelegate and SceneDelegate:

  1. AppDelegate:

    • Manages the app's lifecycle as a whole.
    • Handles app-wide events like app launch, termination, and backgrounding.
    • Typically used for setting up the app's initial state.
  2. SceneDelegate:

    • Manages the lifecycle of individual scenes (windows) within the app.
    • Handles scene-specific events like scene connection, disconnection, and state restoration.
    • Allows for multiple scenes to be active simultaneously, supporting multi-window capabilities.

Migration Steps:

  1. Update Info.plist:

    • Define scene configurations in your app's Info.plist file. This includes specifying the storyboard or SwiftUI view for each scene.
  2. Implement SceneDelegate:

    • Create a SceneDelegate class to manage each scene's lifecycle. Implement methods like scene(_:willConnectTo:options:) to set up the scene's initial UI.
  3. Modify AppDelegate:

    • Update your AppDelegate to handle app-wide events and delegate scene-specific tasks to the SceneDelegate.
  4. Adopt Scene Lifecycle:

    • Ensure your app supports the UI Scene lifecycle by adopting the necessary protocols and methods.

For more detailed guidance, you can refer to the session Make your UIKit app more flexible (00:58) from WWDC 2025, which covers the fundamentals of scenes and their importance in building flexible applications.

Make your UIKit app more flexible

Make your UIKit app more flexible

Find out how your UIKit app can become more flexible on iPhone, iPad, Mac, and Apple Vision Pro by using scenes and container view controllers. Learn to unlock your app’s full potential by transitioning from an app-centric to a scene-based lifecycle, including enhanced window resizing and improved multitasking. Explore enhancements to UISplitViewController, such as interactive column resizing and first-class support for inspector columns. And make your views and controls more adaptive by adopting new layout APIs.

Explore new advances in App Intents

Explore new advances in App Intents

Explore all the new enhancements available in the App Intents framework in this year’s releases. Learn about developer quality-of-life improvements like deferred properties, new capabilities like interactive app intents snippets, entity view annotations, how to integrate Visual Intelligence, and much more. We’ll take you through how App Intents is more expressive than ever, while becoming even easier and smoother to adopt. We’ll also share exciting new clients of App Intents this year like Spotlight and Visual Intelligence, and learn to write app intents that work great in those contexts.

Customize your app for Assistive Access

Customize your app for Assistive Access

Assistive Access is a distinctive, focused iOS experience that makes it easier for people with cognitive disabilities to use iPhone and iPad independently. In iOS and iPadOS 26, you can customize your app when it’s running in Assistive Access to give people greater ease and independence. Learn how to tailor your app using the AssistiveAccess SwiftUI scene type, and explore the key design principles that can help you create a high-quality Assistive Access experience for everyone.