21 sept. 2026
Una vista modal parece una pieza bastante resuelta de cualquier aplicación: se presenta, permite completar una tarea y se cierra. En iPhone Duo hay otra variable que revisar: el espacio disponible cambia al abrir, girar o plegar el dispositivo. Una presentación que resulta cómoda sobre una pantalla plana puede situar sus acciones justo en la zona curvada cuando el usuario cambia de postura.
Apple explica en Design for iPhone Duo que las hojas del sistema adaptan su tamaño, posición y barras de herramientas. En la pantalla exterior pueden mostrar los controles en una barra vertical; en la interior utilizan barras horizontales. Al plegar parcialmente el dispositivo, pueden desplazarse para evitar quedar apoyadas sobre el pliegue. La presentación tiene su propio contexto: la orientación de sus controles no tiene por qué coincidir con la de la aplicación situada detrás.
Leer articulo21 sept. 2026
Cuando construimos interfaces con SwiftUI solemos pensar en la alineación como una propiedad bastante sencilla: un VStack puede alinear su contenido a .leading, .center o .trailing, mientras que un HStack permite decidir cómo se distribuyen verticalmente sus elementos.
Sin embargo, por debajo de esa API aparentemente simple existe un mecanismo bastante más potente: las guías de alineación (alignment guides).
Una guía de alineación representa una coordenada dentro de una vista. El contenedor consulta esa coordenada en cada uno de sus hijos y los posiciona de forma que todas esas referencias coincidan.
Leer articulo20 sept. 2026
En ocasiones, Xcode asegura que una API no existe aunque aparezca claramente en la documentación de Apple. El nombre está bien escrito, la versión mínima del sistema es correcta y el tipo parece pertenecer al módulo que ya hemos importado. Sin embargo, el compilador responde con un cannot find ... in scope o indica que una vista no contiene el modificador que queremos utilizar.
Detrás de algunos de estos errores están los cross-import overlays: módulos auxiliares que Swift carga automáticamente cuando un mismo archivo importa una dupla concreta de módulos. No solemos verlos ni escribir su nombre, pero explican por qué determinadas APIs solo aparecen al combinar dos import.
Leer articulo19 sept. 2026
Las interfaces de las aplicaciones para sistemas Apple ya no pueden diseñarse pensando únicamente en un conjunto reducido de tamaños de pantalla. En iPad las ventanas se pueden redimensionar libremente y, con iOS 27, las aplicaciones de iPhone compiladas con el SDK más reciente también pueden cambiar de tamaño cuando se ejecutan en un iPad o mediante iPhone Mirroring en el Mac.
Esto hace que decisiones tradicionales como comprobar el modelo del dispositivo, el userInterfaceIdiom o incluso la orientación de la interfaz sean cada vez menos apropiadas para decidir cómo organizar una vista. Lo importante ya no es tanto en qué dispositivo se ejecuta la aplicación, sino cuánto espacio tiene realmente disponible en ese momento.
Leer articulo18 sept. 2026
Escribir [weak self] suele transmitir una intención muy clara: el bloque no debe prolongar la vida del objeto. Sin embargo, cuando esa captura aparece dentro de otro bloque, el resultado puede ser justo el contrario. El bloque interior utiliza una captura de referencia débil, pero el exterior puede haber capturado self fuertemente para poder crearla.
Swift 6.4 incorpora un diagnóstico específico para este caso. Al compilar con Xcode 27, el aviso indica que la propiedad de la captura débil no coincide con la referencia fuerte capturada implícitamente en el ámbito exterior:
Leer articulo