Search code examples
iosfirebaseswiftuiios14xcode12

SwiftUI app life cycle iOS14 where to put AppDelegate code?


Now that AppDelegate and SceneDelegate are removed from SwiftUI, where do I put the code that I used to have in SceneDelegate and AppDelegate, Firebase config for ex?

So I have this code currently in my AppDelegate:

Where should I put this code now?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    
    FirebaseConfiguration.shared.setLoggerLevel(.min)
    FirebaseApp.configure()
    return true
}

Solution

  • Here is a solution for SwiftUI life-cycle. Tested with Xcode 12b / iOS 14

    import SwiftUI
    import UIKit
    
    // no changes in your AppDelegate class
    class AppDelegate: NSObject, UIApplicationDelegate {
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
            print(">> your code here !!")
            return true
        }
    }
    
    @main
    struct Testing_SwiftUI2App: App {
    
        // inject into SwiftUI life-cycle via adaptor !!!
        @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    
        var body: some Scene {
            WindowGroup {
                ContentView()
            }
        }
    }