13 dic. 2025
🧩 SwiftData llegó en 2023 como la evolución de CoreData, prometiendo sintaxis moderna y declarativa. Pero dos años después, muchos desarrolladores siguen luchando con su arquitectura porque intentan forzar patrones antiguos en lugar de aprovechar su diseño.
🔑 El framework gira en torno a dos componentes esenciales: ModelContainer gestiona el esquema y la persistencia, mientras ModelContext coordina las operaciones de lectura y escritura. Entender esta base es crucial antes de construir sobre ella.
Leer articulo12 dic. 2025
🚀 Swift ha luchado durante años por escapar del nicho móvil y expandirse a otros casos de uso como scripting, automatización y herramientas CLI. El problema histórico ha sido Process (antes NSTask), una API heredada de Objective-C que no soporta async/await, depende de closures y usa excepciones para indicar errores.
📦 En septiembre de 2024 llegó swift-subprocess, un paquete oficial del proyecto swift-foundation diseñado para revolucionar la creación de procesos en Swift. Promete ergonomía moderna, compatibilidad multiplataforma y soporte nativo para concurrencia con async/await.
Leer articulo11 dic. 2025
🎯 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. Esto evita fugas de memoria y operaciones que continúan ejecutándose en segundo plano innecesariamente.
💡 La clave está en entender que .task(id:) permite vincular la tarea a un valor específico. Cada vez que ese valor cambia, SwiftUI cancela la tarea anterior y ejecuta una nueva. Esto es perfecto para recargar datos cuando cambian filtros o parámetros.
Leer articulo10 dic. 2025
⚖️ 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.
💡 @Query ya es un ViewModel de lectura: observa la base de datos, actualiza automáticamente las vistas y gestiona el ciclo de vida de los datos. No necesitas replicar esto en otra capa.
Leer articulo9 dic. 2025
🚨 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 las secuencias Unicode. Puede convertir 🇨🇦🇺🇸 en 🇨🇳🇮🇸 sin previo aviso al romper los indicadores regionales.
Leer articulo