15 oct. 2026
Una persona puede identificarse con Face ID, introducir su contraseña y confirmar una operación mientras un estafador le indica qué hacer por teléfono. Todos los controles de autenticación funcionan y, aun así, la cuenta termina comprometida. Identificar al usuario no permite saber si está actuando bajo presión o engaño.
Con iOS 27, Apple introduce Trust Insights, un framework que aporta contexto sobre estas situaciones. La aplicación solicita una evaluación antes de una operación sensible y utiliza el resultado para decidir si conviene añadir comprobaciones o mostrar una advertencia.
Leer articulo14 oct. 2026
En iPhone Duo, los controles de navegación, las acciones de la barra de herramientas y las pestañas pueden compartir una franja vertical en el borde de la pantalla. Así queda más altura para el contenido, pero también cambia el espacio disponible para cada botón. Si construyes la app con el SDK de iOS 27.1 y utilizas contenedores estándar como NavigationStack, NavigationSplitView o TabView, SwiftUI se encarga de buena parte de la adaptación.
Leer articulo13 oct. 2026
Durante años, una de las partes más difíciles de Swift Concurrency no ha sido aprender async y await, sino entender dónde se ejecuta realmente el código. Una función asíncrona podía abandonar el actor desde el que se llamaba aunque no hubiésemos pedido ningún paralelismo. Swift 6.2 cambia ese comportamiento con una de las piezas más importantes de Approachable Concurrency: NonisolatedNonsendingByDefault.
El cambio parte de una idea sencilla: ser async no debería significar automáticamente “ejecutarse en otro sitio”. Una función asíncrona necesita poder suspenderse, pero eso no implica que deba abandonar el contexto de aislamiento del llamador. Con Swift 6.2, el lenguaje avanza hacia un modelo en el que el código permanece serializado por defecto y somos nosotros quienes expresamos de forma explícita cuándo queremos introducir concurrencia real.
Leer articulo12 oct. 2026
El foco parece un detalle menor hasta que construimos un formulario con varios campos de texto. Entonces aparecen necesidades muy concretas: colocar automáticamente el cursor en un campo, moverlo al siguiente al pulsar Next, volver al dato que contiene un error o cerrar el teclado cuando la edición termina. Desde iOS 15, SwiftUI permite resolver todos estos casos de forma declarativa mediante @FocusState.
La idea encaja perfectamente con el modelo de SwiftUI. En lugar de pedir directamente a un UITextField que se convierta en first responder, declaramos qué elemento debería tener el foco en cada momento y dejamos que el framework sincronice ese estado con la interfaz. Además, la relación funciona en ambas direcciones: si el usuario toca un campo, @FocusState se actualiza; si modificamos el estado desde nuestro código, SwiftUI mueve el foco a la vista correspondiente.
Leer articulo11 oct. 2026
Una pantalla puede necesitar varias consultas para completar su contenido. Si esperamos a reunir todos los resultados antes de actualizarla, la petición más lenta determina cuánto tiempo permanece vacía. Aunque algunas secciones estén listas, el usuario sigue viendo un indicador de carga.
Una de las mejores maneras de acabar con esto, es organizar el trabajo por etapas con AsyncSequence. Este enfoque permite entregar resultados parciales y decidir qué contenido aparece primero. La mejora puede estar en el tiempo hasta el primer resultado útil, aunque completar toda la pantalla siga costando lo mismo o incluso más.
Leer articulo