Crear un AppDelegate en SwiftUI con UIApplicationDelegateAdaptor

Marcelo Laprea
21 mayo, 20232min de lectura
El property wrapper UIApplicationDelegateAdaptor nos permite crear un AppDelegate cuando estamos desarrollando una aplicación en SwiftUI. Para lograrlo, sigamos estos pasos sencillos.
En primer lugar, crearemos una clase que herede de NSObject y UIApplicationDelegate:
class AppDelegate: NSObject, UIApplicationDelegate {// Aquí se pueden añadir métodos específicos del AppDelegate}
Una vez que tengamos nuestra clase AppDelegate, podemos agregar métodos como, por ejemplo, didFinishLaunchingWithOptions del AppDelegate, en nuestra nueva clase. Simplemente debemos escribir lo siguiente:
class AppDelegate: NSObject, UIApplicationDelegate {func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {return true}}
Esta es una forma sencilla de añadir todos los métodos que necesitemos en nuestro AppDelegate.
A continuación, utilizaremos el property wrapper UIApplicationDelegateAdaptor en nuestra aplicación SwiftUI:
import SwiftUI@mainstruct MainApp: App {@UIApplicationDelegateAdaptor private var delegate: AppDelegatevar body: some Scene {WindowGroup {ContainerView()}}}
Básicamente, le estamos diciendo a nuestra aplicación que utilice nuestra nueva clase AppDelegate como delegado. Es fundamental definir el UIApplicationDelegateAdaptor solo una vez en nuestra aplicación, ya que de lo contrario, SwiftUI generará un error.
Gracias al property wrapper UIApplicationDelegateAdaptor, podemos aprovechar todos los métodos disponibles en el AppDelegate en nuestras aplicaciones desarrolladas en SwiftUI. Esto nos brinda una gran flexibilidad y nos permite incorporar características específicas del ciclo de vida de la aplicación.