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.