3 jul. 2026
SwiftUI siempre ha apostado por que las barras de herramientas se adapten automáticamente a cada plataforma. El mismo código puede distribuir los elementos de forma distinta en iPhone, iPad o Mac para ofrecer la mejor experiencia posible. Sin embargo, esa flexibilidad también supone perder cierto control sobre qué acciones permanecen visibles y cuáles terminan ocultas.
Con SwiftUI en Xcode 27 llegan varias APIs que permiten ajustar ese comportamiento sin renunciar a la adaptación automática del sistema.
Leer articulo1 jul. 2026
🛡️ Swift 6.4 introduce withTaskCancellationShield(operation:), una API pequeña pero muy interesante dentro del modelo de concurrencia de Swift. Su objetivo no es cambiar cómo funciona la cancelación de tareas, sino cubrir un caso muy concreto: ejecutar un bloque de código para restaurar el estado aunque la tarea ya haya sido cancelada.
🧩 En Swift, la cancelación de tareas es cooperativa. Cancelar una Task no detiene el código de forma brusca. Lo que ocurre es que la tarea queda marcada como cancelada, y el propio código decide cuándo reaccionar consultando Task.isCancelled o llamando a Task.checkCancellation().
Leer articulo30 jun. 2026
🧭 Swift 6.4 no es una versión pensada únicamente para generar grandes titulares. Muchas de sus novedades van en otra dirección: reducir pequeñas fricciones, hacer más explícitas algunas intenciones del código y facilitar migraciones reales en proyectos que ya tienen varios años de vida. Es justo la idea que transmite la sesión What’s new in Swift de la WWDC26: cambios pequeños en apariencia, pero bastante útiles cuando los llevas a una app de verdad.
Leer articulo29 jun. 2026
🤖 Foundation Models está dejando de ser una API pensada únicamente para invocar el modelo local de Apple. Con las novedades presentadas en la WWDC26, el framework empieza a comportarse como una capa de abstracción para trabajar con distintos modelos de lenguaje desde Swift: el modelo en dispositivo, Private Cloud Compute, implementaciones locales basadas en Core AI o MLX, y proveedores externos como Anthropic o Google.
La idea es muy potente porque cambia totalmente el enfoque de la integración. En lugar de diseñar una capa distinta para cada proveedor, la aplicación puede trabajar contra LanguageModelSession y dejar que el modelo concreto sea una dependencia intercambiable. Si el caso de uso requiere privacidad, baja latencia y funcionamiento offline, puede usarse el modelo en dispositivo. Si se necesita más contexto, razonamiento más avanzado o herramientas de servidor, se puede escalar a un modelo remoto como Claude manteniendo la misma forma general de construir prompts, pedir respuestas estructuradas o procesar las respuestas.
Leer articulo27 jun. 2026
🔐 Guardar datos sensibles en una aplicación iOS parece una decisión sencilla hasta que aparece la primera duda importante: ¿dónde debería vivir un token de sesión, una clave privada, una credencial temporal o un identificador que no queremos exponer? La respuesta corta suele ser Keychain, pero la respuesta buena es necesario matizarla más. El Keychain no es simplemente “un UserDefaults seguro”; es un servicio del sistema con reglas de acceso, cifrado, grupos de acceso compartido y clases protegidas que conviene entender antes de meter ahí cualquier valor.
Leer articulo