31 may. 2026
📐 Las sheet de SwiftUI funcionan muy bien cuando aceptas los tamaños que el sistema propone. El problema aparece cuando tu interfaz no encaja en niguno de esos tamaños. Una vista pequeña queda flotando dentro de un sheet demasiado alto. Una vista algo más grande puede quedar cortada. Y una pantalla que solo necesita presentar una confirmación breve termina ocupando gran parte de la pantalla sin necesidad.
Desde iOS 16, SwiftUI permite controlar la altura de una hoja con presentationDetents, usando valores como .medium, .large, .height(...) o .fraction(...). Es una mejora enorme frente al comportamiento inicial de los sheets, pero sigue teniendo una limitación importante: no existe un detent nativo que diga simplemente “mide el contenido y usa esa altura”.
Leer articulo23 may. 2026
🧩 En SwiftUI es muy tentador convertirlo todo a String antes de pintarlo en pantalla. Un número se interpola, una fecha se pasa por un DateFormatter, una cantidad se concatena con un símbolo de moneda y un porcentaje se multiplica a mano. Funciona, sí, pero también es una forma rápida de llenar la interfaz de pequeños futuros problemas: separadores decimales incorrectos, indicador de divisa mal colocados, fechas que resultan poco naturales o campos de texto que aceptan valores imposibles.
Leer articulo17 may. 2026
🧠 ARC (Automatic Reference Counting) lleva con nosotros desde el primer día en Swift, pero la mayoría de desarrolladores solo conoce su capa exterior: los objetos se retienen, se liberan y se destruyen cuando el contador llega a cero. Lo que muy pocos saben es que el modelo interno ha cambiado de forma significativa desde las primeras versiones del lenguaje. Esos cambios no son detalles de implementación irrelevantes: explican por qué ciertas decisiones de diseño tienen un coste, y por qué el runtime se comporta de una manera u otra en situaciones límite.
Leer articulo14 may. 2026
🔄 .refreshable es uno de esos modificadores de SwiftUI que parece trivial hasta que algo falla de forma inexplicable. Lo añades a una lista, le pasas tu función async, y todo funciona en el simulador. Pero en producción, o simplemente bajo condiciones ligeramente distintas, la carga se interrumpe a la mitad, el indicador de refresco desaparece antes de tiempo, o una petición de red lanza un error. El origen del problema casi nunca está donde lo buscas.
Leer articulo13 may. 2026
🔔 El modificador onChange() es la herramienta de SwiftUI para ejecutar código en respuesta a cambios de valor. Observa una propiedad concreta y dispara un closure cada vez que su contenido varía. Para determinar si el valor ha cambiado, el tipo observado debe conformar Equatable, lo que permite a SwiftUI realizar la comparación de forma automática y eficiente. Desde su introducción en iOS 14 hasta las revisiones de iOS 17, la API ha madurado considerablemente, y conocer sus variantes actuales marca la diferencia entre código predecible y comportamientos inesperados.
Leer articulo