El ciclo de vida basado en escenas será obligatorio en iOS 27
Arturo Rivas Arias
Durante años ha sido posible mantener aplicaciones UIKit utilizando el ciclo de vida clásico basado en UIApplicationDelegate. Sin embargo, Apple ha dejado claro durante la WWDC26 que esto llega a su fin: las aplicaciones compiladas contra el SDK de iOS 27 deberán utilizar obligatoriamente el Scene Lifecycle.
Este cambio no es simplemente una recomendación. Forma parte de la estrategia de Apple para construir aplicaciones realmente adaptativas capaces de funcionar correctamente en escenarios cada vez más variados: iPhone, iPad, iPhone Mirroring y el futuro iPhone plegable.
El antiguo App Delegate ya no es suficiente
Antes de iOS 13, una aplicación tenía una única ventana principal y un único ciclo de vida gestionado por UIApplicationDelegate.
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
true
}
}
Este enfoque asumía que toda la aplicación compartía un único estado visual.
Con la llegada de las escenas (UIScene), Apple separó claramente dos responsabilidades:
- Estado global de la aplicación.
- Estado y ciclo de vida de cada ventana o escena.
Esto permite que una misma aplicación pueda tener múltiples instancias activas simultáneamente.
¿Qué implica la obligatoriedad en iOS 27?
Según Apple, cualquier aplicación generada con el SDK de iOS 27 deberá declarar y utilizar escenas.
La configuración típica pasa a ser:
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(
_ scene: UIScene,
willConnectTo session: UISceneSession,
options connectionOptions: UIScene.ConnectionOptions
) {
guard let windowScene = scene as? UIWindowScene else {
return
}
let window = UIWindow(windowScene: windowScene)
window.rootViewController = MainViewController()
window.makeKeyAndVisible()
self.window = window
}
}
Las aplicaciones que aún dependan exclusivamente del ciclo de vida tradicional deberán migrar antes de adoptar el SDK de iOS 27.
El motivo real: aplicaciones adaptativas
Apple insiste en que el Scene Lifecycle es la base para construir interfaces adaptativas.
Durante la sesión de Moderniza tu app desarrollada con UIKit de la WWDC26 se destacó que muchas aplicaciones siguen tomando decisiones de diseño basadas en supuestos que ya no son válidos:
- El dispositivo es un iPhone.
- La aplicación ocupa toda la pantalla.
- La orientación determina el diseño.
- Existe una única ventana.
Cada uno de estos supuestos puede romperse actualmente.
El problema de iPhone Mirroring
Uno de los ejemplos más interesantes mostrados por Apple es iPhone Mirroring, probablemente lo hayan usado para no desvelar detalles del futurible iPhone plegable.
Cuando una aplicación se ejecuta mediante esta funcionalidad, el valor de:
UIDevice.current.userInterfaceIdiom
sigue siendo:
.phone
aunque la ventana pueda estar mostrándose en una pantalla mucho más grande.
Por tanto, utilizar el tipo de dispositivo para decidir tamaños o distribuciones de interfaz deja de ser una estrategia fiable.
Las Size Classes cobran más importancia que nunca
Apple recomienda basar las decisiones de interfaz en traitCollection o en las dimensiones reales de la escena, en lugar de depender del tipo de dispositivo o de la orientación.
switch traitCollection.horizontalSizeClass {
case .regular:
showSidebar()
default:
showCompactLayout()
}
También cambia la gestión de orientaciones
Apple explicó que las orientaciones soportadas por la aplicación pueden no reflejar cómo se presenta realmente la ventana.
Por este motivo recomienda utilizar el tamaño efectivo de la escena para adaptar la interfaz.
let isWide = view.bounds.width > 700
SwiftUI ya estaba preparado
Las aplicaciones SwiftUI llevan años trabajando con una arquitectura alineada con esta filosofía.
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Preparando aplicaciones para el futuro
La obligatoriedad del ciclo de vida basado en escenas en iOS 27 no es un simple requisito técnico. Es una consecuencia directa de la evolución de las plataformas de Apple hacia experiencias cada vez más flexibles y adaptativas.
Migrar a este modelo no solo permitirá seguir compilando con futuros SDKs, sino que ayudará a construir aplicaciones más robustas frente a ventanas redimensionables, múltiples escenas activas, iPhone Mirroring, dispositivo con tamaño de pantalla variable, y cualquier nuevo formato de ejecución que Apple introduzca en los próximos años.