Apple introduced the new SwiftUI life cycle some years ago. I still had some apps that used UIKit and the App Delegate life cycle.
Transitioning from one to the other seems trivial at first, makes you scratch your head shortly later only to realise that it actually is quite trivial.
Before you start you should redesign your views in SwiftUI
and create a YourSwiftUIView
which serves as the first view your users are presented with.
Firstly, remove @UIUIApplicationMain
from your AppDelegate class.
Secondly, create a SwiftUI App struct
:
import Foundation import SwiftUI @main struct yourAppName: App { // Relevant if you use CoreData let persistenceController = PersistenceController.shared var body: some Scene { WindowGroup { YourSwiftUIView() // Relevant if you use CoreData .environment(\.managedObjectContext, persistenceController.container.viewContext) } } }
Thirdly, remove UIApplicationSupportsMultipleScenes
key from your InfoPlist. This key will have quite an entourage. Remove it all.
<dict> <key>UIApplicationSupportsMultipleScenes</key> <false/> <key>UISceneConfigurations</key> <dict> <key>UIWindowSceneSessionRoleApplication</key> <array> <dict> <key>UISceneConfigurationName</key> <string>Default Configuration</string> <key>UISceneDelegateClassName</key> <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string> <key>UISceneStoryboardFile</key> <string>Main</string> </dict> </array> </dict> </dict>
Finally you can remove all the Storyboard Files and accompanying ViewControllers.
Top comments (0)