Categoría: Píldora
-

🎯 El modificador .task en SwiftUI no solo ejecuta código asíncrono cuando aparece una vista: también gestiona automáticamente la identidad de esas tareas basándose en el ciclo de vida y los valores que le pasamos. 🔄 Cuando adjuntas un .task a una vista, SwiftUI crea una Task que se cancela automáticamente cuando la vista desaparece.…
-

⚖️ Añadir MVVM a esto puede ser sobre-ingeniería si peleas contra el framework. Pero existe un enfoque híbrido que respeta la arquitectura nativa y añade testabilidad solo donde importa. 🎯 SwiftData y SwiftUI están diseñados para trabajar juntos sin capas adicionales. Apple nos da @Query para lectura reactiva y @Environment(.modelContext) para escritura. Funciona perfecto. 💡…
-

🚨 El manejo de cadenas en Swift tiene trampas que muchos desarrolladores pisan constantemente. La mayoría provienen de mezclar métodos de Objective-C con tipos nativos de Swift, generando bugs extraños con emojis y caracteres Unicode. ⚠️ El error más común es usar replacingOccurrences(of:with:) en lugar de replacing(_:with:). El primero viene de NSString y no respeta…
-

📱 Cuando trabajamos con textos dinámicos en SwiftUI, hay un problema visual que muchos pasamos por alto: los números grandes pueden partirse entre líneas de forma incómoda. Por ejemplo, 1 000 000 podría aparecer como 1 000 en una línea y 000 en la siguiente. 🔍 Este fenómeno afecta especialmente a fechas, cantidades monetarias, números…
-

🔄 Swift 6 introduce mejoras importantes en concurrencia y seguridad de datos, pero migrar código existente puede parecer abrumador. Apple lo sabe y está trabajando en herramientas que automatizarán gran parte del proceso. 🛠️ El nuevo sistema de migración analizará tu código y sugerirá cambios específicos para cumplir con el modelo de concurrencia estricto de…
-

🎯 La interpolación de String en Swift es una herramienta que usamos a diario, pero ¿sabías que puedes definir valores por defecto cuando el valor interpolado es nil? Esta técnica puede ahorrarte múltiples líneas de código y hacer tu app más robusta. 💡 Swift 6.2 nos permite extender el protocolo StringProtocol para personalizar cómo se…
-

🚨 El sistema clásico de NotificationCenter tiene un problema grave: incluso cuando especificas .main como cola, el compilador no puede verificar la seguridad entre hilos. El dominio de aislamiento permanece como nonisolated, lo que genera advertencias del compilador cuando intentas llamar métodos aislados a @MainActor. 🎯 iOS 26 y Swift 6.2 introducen MainActorMessage y AsyncMessage,…
-

🎯 iOS 26 marca un antes y un después para los desarrolladores UIKit. Apple ha integrado el framework Observation directamente en el ciclo de vida de UIKit, permitiendo que las vistas se actualicen automáticamente cuando cambian las propiedades de objetos marcados con @Observable. 📝 Hasta ahora, mantener la interfaz sincronizada con los datos en UIKit…
-

🌍 La realidad multilingüe es más compleja de lo que pensamos. Un desarrollador en Toronto programa en inglés, lee documentación técnica en inglés, pero consume noticias en español y escribe a su familia en francés. 🔍 El problema es que las apps tradicionales los obligan a navegar listas alfabéticas de cientos de idiomas o conformarse…
-

🚀 SwiftTesting llegó en WWDC24 con una de las funcionalidades más esperadas: los tests parametrizados. En lugar de escribir múltiples tests casi idénticos, podemos ejecutar un solo test con diferentes argumentos automáticamente. ⚠️ Sin embargo, la conveniencia de parametrizar puede llevarnos a cometer errores sutiles que comprometen la calidad de nuestras pruebas. Migrar decenas de…
