14 ago. 2026
Una de las ventajas más importantes del sistema Observation es su rendimiento. Cuando una vista lee una propiedad de un modelo marcado con @Observable, SwiftUI registra esa dependencia concreta. Si después cambia otra propiedad del mismo objeto que la vista no utiliza, su body no necesita volver a evaluarse.
Sin embargo, observar por propiedades no resuelve de por sí todos los cálculos innecesarios. También importa qué entiende Swift por «cambio». En las versiones actuales de la macro @Observable, el tipo de la propiedad determina si una asignación con el mismo valor genera una notificación. Una conformidad aparentemente sencilla como Equatable puede evitar reevaluaciones completas de una vista.
Leer articulo13 ago. 2026
SwiftUI siempre ha defendido que la interfaz debe ser una consecuencia del estado. Si existe un dato, se muestra una vista; si el dato desaparece, también lo hace su representación. Sin embargo, hasta ahora las alertas y los diálogos de confirmación no terminaban de encajar en ese modelo. En muchos casos había que combinar un Binding<Bool> con otro valor que almacenase el elemento sobre el que debía actuar la presentación.
Leer articulo12 ago. 2026
SwiftUI utiliza el los entornos para propagar configuraciones y dependencias a través de la jerarquía de vistas. Valores del sistema como locale, colorScheme o dynamicTypeSize llegan por esta vía, pero también podemos definir los nuestros propios mediante el macro @Entry.
La sintaxis es tan sencilla que resulta fácil pasar por alto un detalle importante: el valor por defecto no debe cambiar cada vez que SwiftUI lo consulta. Si la expresión crea una instancia nueva en cada acceso, una dependencia que parecía constante puede provocar reevaluaciones innecesarias de las vistas.
Leer articulo8 ago. 2026
Los inicializadores memberwise son una de esas características de Swift que utilizamos constantemente sin prestarles demasiada atención. Declaramos una estructura, añadimos varias propiedades almacenadas y el compilador genera por nosotros un inicializador con los parámetros necesarios. Es una pequeña comodidad, pero fundamental para que los tipos por valor queden más compactos y sean más expresivos.
Sin embargo, esta síntesis automática siempre ha tenido reglas menos intuitivas de lo que parece. Los valores por defecto, las propiedades let, el control de acceso y la ubicación de otros inicializadores pueden cambiar la firma generada o incluso hacerla inaccesible. Swift 6.4 mejora uno de los casos más molestos mediante la SE-0502: una propiedad privada que ya puede inicializarse por sí misma deja de inutilizar el inicializador que necesitan el resto de propiedades.
Leer articulo6 ago. 2026
Swift permite compartir cada vez más código entre iOS, macOS, watchOS, tvOS y visionOS. Sin embargo, hasta ahora incluso una API disponible desde la misma versión en todos los sistemas obligaba a repetir cada plataforma dentro de @available y #available. Swift 6.4 incorpora anyAppleOS para expresar ese caso mediante una única condición.
La novedad aprovecha un cambio que Apple introdujo en 2025: la unificación de la numeración de sus sistemas operativos. Desde la generación 26, iOS, macOS, watchOS, tvOS y visionOS avanzan con el mismo número de versión. El compilador puede utilizar esa correspondencia para entender que anyAppleOS 26.0 representa el mismo límite de disponibilidad en toda la familia.
Leer articulo