Arturo Rivas Arias
banner
arturorivasa.bsky.social
Arturo Rivas Arias
@arturorivasa.bsky.social
Software developer specially for Apple systems and mobile platforms | Podcaster | Sports & music lover | https://www.arturorivas.com
Desarrollar para watchOS no es iOS en miniatura: son mundos diferentes

⚠️ El desarrollo para Apple Watch es el gran olvidado del ecosistema Apple. Aunque millones de personas llevan uno en la muñeca, pocos desarrolladores se especializan en crear apps realmente profesionales para watchOS. La razón…
Desarrollar para watchOS no es iOS en miniatura: son mundos diferentes
⚠️ El desarrollo para Apple Watch es el gran olvidado del ecosistema Apple. Aunque millones de personas llevan uno en la muñeca, pocos desarrolladores se especializan en crear apps realmente profesionales para watchOS. La razón es clara: está lleno de peculiaridades no documentadas, comportamientos inesperados y limitaciones que solo descubres cuando tienes apps con millones de usuarios. 🔄 El primer gran problema es la sincronización de versiones entre dispositivos.
swiftpills.com
January 3, 2026 at 9:05 AM
¿Por qué @State en SwiftUI no se actualiza desde la vista padre? Este error confunde hasta a desarrolladores avanzados

🔐 @State representa el estado privado interno de una vista en SwiftUI. Su valor inicial solo se aplica cuando la vista establece su identidad por primera vez en la jerarquía.…
¿Por qué @State en SwiftUI no se actualiza desde la vista padre? Este error confunde hasta a desarrolladores avanzados
🔐 @State representa el estado privado interno de una vista en SwiftUI. Su valor inicial solo se aplica cuando la vista establece su identidad por primera vez en la jerarquía. Después, SwiftUI ignora completamente cualquier nuevo valor que intentes pasarle. 🧬 La clave está en entender la identidad de las vistas. SwiftUI adopta una estrategia de inicialización única: cuando la vista se carga por primera vez, crea el almacenamiento interno (
swiftpills.com
January 2, 2026 at 10:06 AM
¿Integras modelos de IA en tus apps de iOS 26 pero no sabes si su rendimiento es óptimo?

🎯 Con iOS 26, Apple democratizó el acceso a modelos de lenguaje en el dispositivo mediante el framework Foundation Models. Este modelo de 3 mil millones de parámetros ejecuta inferencia de IA completamente…
¿Integras modelos de IA en tus apps de iOS 26 pero no sabes si su rendimiento es óptimo?
🎯 Con iOS 26, Apple democratizó el acceso a modelos de lenguaje en el dispositivo mediante el framework Foundation Models. Este modelo de 3 mil millones de parámetros ejecuta inferencia de IA completamente local, protegiendo la privacidad del usuario mientras ofrece capacidades avanzadas de generación de texto, extracción de información y llamadas a herramientas. 📊 Xcode 26 incorpora una plantilla en Instruments para inspeccionar Foundation Models que nos permite visualizar métricas críticas: tiempo de carga de recursos, procesamiento de prompts, conteo de tokens de entrada y salida, y latencia total de respuesta.
swiftpills.com
January 1, 2026 at 9:02 AM
Cerrar apps en iOS para ahorrar batería: el mito que debes dejar de creer

🔄 Cuántas veces has visto a alguien cerrando compulsivamente todas las apps del multitarea para "ahorrar batería". Incluso Craig Federighi, vicepresidente de ingeniería de software de Apple, lo dejó claro: "no y no". 📱 El…
Cerrar apps en iOS para ahorrar batería: el mito que debes dejar de creer
🔄 Cuántas veces has visto a alguien cerrando compulsivamente todas las apps del multitarea para "ahorrar batería". Incluso Craig Federighi, vicepresidente de ingeniería de software de Apple, lo dejó claro: "no y no". 📱 El ciclo de vida de una app iOS tiene cinco estados principales: Sin ejecución Inactiva Activa Segundo plano Suspendida Cuando sales de una aplicación, sin forzar el cierre, iOS la suspende automáticamente tras unos segundos.
swiftpills.com
December 31, 2025 at 10:01 AM
¿Sabías que puedes permitir a los usuarios responder directamente desde una notificación sin abrir tu app?

📝 Las acciones de entrada de texto en notificaciones iOS son una de las funciones más poderosas del framework UserNotifications. Permiten que los usuarios escriban respuestas, proporcionen…
¿Sabías que puedes permitir a los usuarios responder directamente desde una notificación sin abrir tu app?
📝 Las acciones de entrada de texto en notificaciones iOS son una de las funciones más poderosas del framework UserNotifications. Permiten que los usuarios escriban respuestas, proporcionen información o envíen mensajes cortos sin interrumpir su flujo de trabajo. 🎯 La clase UNTextInputNotificationAction representa estas acciones especiales. Aquí un ejemplo creando una acción para que un usuario añada una tarea rápida:
swiftpills.com
December 30, 2025 at 10:24 AM
¿Tu app se cierra inesperadamente y Xcode Organizer no te da suficiente información? MetricKit es la solución

🔍 Xcode Organizer nos proporciona métricas esenciales como crashes, consumo de batería, tiempos de arranque y uso de memoria. Sin embargo, se queda corto cuando necesitamos diagnosticar la…
¿Tu app se cierra inesperadamente y Xcode Organizer no te da suficiente información? MetricKit es la solución
🔍 Xcode Organizer nos proporciona métricas esenciales como crashes, consumo de batería, tiempos de arranque y uso de memoria. Sin embargo, se queda corto cuando necesitamos diagnosticar la terminación abrupta de la app o profundizar en problemas complejos de rendimiento que afectan a usuarios reales. ⚡ MetricKit es el framework que Apple introdujo en iOS 13 para llenar este vacío.
swiftpills.com
December 29, 2025 at 10:02 AM
¿Sigues usando SF Symbols estáticos cuando podrías darles vida con animaciones nativas?

🎨 SF Symbols no son solo íconos: son gráficos vectoriales diseñados específicamente para integrarse con el sistema tipográfico de Apple. Desde iOS 17, SwiftUI incluye efectos de animación nativos que…
¿Sigues usando SF Symbols estáticos cuando podrías darles vida con animaciones nativas?
🎨 SF Symbols no son solo íconos: son gráficos vectoriales diseñados específicamente para integrarse con el sistema tipográfico de Apple. Desde iOS 17, SwiftUI incluye efectos de animación nativos que transforman estos símbolos en elementos dinámicos y expresivos sin necesidad de frameworks externos. 💫 Las animaciones disponibles son sorprendentemente variadas: pulse hace que el símbolo simule un latido como un corazón, …
swiftpills.com
December 27, 2025 at 8:12 AM
Sombra interior en SF Symbols: el efecto que desconocías para tus iconos en SwiftUI

🎨 SwiftUI ofrece docenas de APIs para personalizar iconos con SF Symbols, pero existe una técnica poco conocida que transforma radicalmente la apariencia de tus símbolos: las sombras interiores aplicadas…
Sombra interior en SF Symbols: el efecto que desconocías para tus iconos en SwiftUI
🎨 SwiftUI ofrece docenas de APIs para personalizar iconos con SF Symbols, pero existe una técnica poco conocida que transforma radicalmente la apariencia de tus símbolos: las sombras interiores aplicadas directamente al estilo de primer plano. 💎 Esta técnica permite crear iconos que parecen tallados o hundidos en su fondo, generando un efecto de profundidad inversa. En lugar de que el símbolo sobresalga de la superficie, aparece como si estuviera recortado dentro de ella.
swiftpills.com
December 26, 2025 at 10:00 AM
Swift 6.2 cambia las reglas del juego en concurrencia: ¿será finalmente sencillo para todos?

🎯 Swift 6 prometía seguridad ante condiciones de carrera, pero llegó con una barrera enorme: cientos de errores del compilador que aparecían al activar la concurrencia estricta. Muchos desarrolladores…
Swift 6.2 cambia las reglas del juego en concurrencia: ¿será finalmente sencillo para todos?
🎯 Swift 6 prometía seguridad ante condiciones de carrera, pero llegó con una barrera enorme: cientos de errores del compilador que aparecían al activar la concurrencia estricta. Muchos desarrolladores activaban Swift 6, veían el caos de advertencias y volvían atrás de inmediato. 🔄 Swift 6.2 introduce la Approachable Concurrency, un cambio fundamental en cómo el lenguaje trata la concurrencia. En lugar de obligarte a entender actores, el protocolo…
swiftpills.com
December 25, 2025 at 9:30 AM
Deslizar desde cualquier punto de la pantalla para volver atrás en UIKit: una experiencia nativa mejorada

🎯 El gesto de deslizar desde el borde izquierdo para retroceder es uno de los patrones de navegación más intuitivos de iOS. Sin embargo, por defecto en UIKit, este gesto solo funciona desde un…
Deslizar desde cualquier punto de la pantalla para volver atrás en UIKit: una experiencia nativa mejorada
🎯 El gesto de deslizar desde el borde izquierdo para retroceder es uno de los patrones de navegación más intuitivos de iOS. Sin embargo, por defecto en UIKit, este gesto solo funciona desde un área muy estrecha del borde izquierdo de la pantalla. 📏 Apple limita el área táctil del gesto de retroceso a aproximadamente 44 puntos desde el borde izquierdo.
swiftpills.com
December 24, 2025 at 10:04 AM
¿Probando Universal Links en desarrollo y la CDN de Apple te frena? El modo alternativo es tu salvavidas.

🚦 Desde iOS 14, el sistema ya no descarga el archivo AASA directamente de tu servidor. En su lugar, usa una CDN gestionada por Apple que cachea el contenido. Esta CDN puede tardar entre 1 y 6…
¿Probando Universal Links en desarrollo y la CDN de Apple te frena? El modo alternativo es tu salvavidas.
🚦 Desde iOS 14, el sistema ya no descarga el archivo AASA directamente de tu servidor. En su lugar, usa una CDN gestionada por Apple que cachea el contenido. Esta CDN puede tardar entre 1 y 6 horas en actualizar su caché, lo que complica el desarrollo cuando necesitas probar cambios rápidamente en tu archivo AASA. 🔒 Peor aún: si tu servidor de desarrollo está detrás de una VPN o en una red privada, la CDN simplemente no puede acceder a él y tus pruebas quedan bloqueadas.
swiftpills.com
December 23, 2025 at 10:03 AM
Transferable: el protocolo que revoluciona copiar, compartir y arrastrar datos en SwiftUI.

🔄 Antes de iOS 16, implementar drag-and-drop o compartir datos personalizados requería trabajar con NSItemProvider, serialización manual y mucho código repetitivo. Todo eso cambió con Transferable. ✨ El…
Transferable: el protocolo que revoluciona copiar, compartir y arrastrar datos en SwiftUI.
🔄 Antes de iOS 16, implementar drag-and-drop o compartir datos personalizados requería trabajar con NSItemProvider, serialización manual y mucho código repetitivo. Todo eso cambió con Transferable. ✨ El protocolo Transferable del framework Core Transferable permite describir de forma declarativa cómo tus tipos personalizados se serializan y deserializan para transferencias de datos. Lo mejor: funciona automáticamente con APIs de SwiftUI como…
swiftpills.com
December 22, 2025 at 10:01 AM
Swift cierra 2025 como un lenguaje verdaderamente universal: del servidor al microcontrolador swiftpills.com/2025/12/21/s...
Swift cierra 2025 como un lenguaje verdaderamente universal: del servidor al microcontrolador
🎯 Diciembre marca el final de un año histórico para Swift como proyecto de código abierto. Desde su nacimiento hace una década, Swift ha evolucionado de ser un lenguaje exclusivo para plataformas A…
swiftpills.com
December 21, 2025 at 9:30 AM
Listas interactivas en macOS con SwiftUI: selección, doble clic y menús contextuales unificados

🖱️ En macOS, los usuarios esperan un comportamiento específico en las listas: un clic selecciona, doble clic ejecuta una acción principal y clic derecho muestra opciones. 📋 Para habilitar este patrón…
Listas interactivas en macOS con SwiftUI: selección, doble clic y menús contextuales unificados
🖱️ En macOS, los usuarios esperan un comportamiento específico en las listas: un clic selecciona, doble clic ejecuta una acción principal y clic derecho muestra opciones. 📋 Para habilitar este patrón necesitas dos elementos clave: un inicializador de List que acepte el parámetro selection con binding, y el modificador contextMenu(forSelectionType:menu:primaryAction:). Primero define un tipo Identifiable y la propiedad de selección:
swiftpills.com
December 20, 2025 at 8:02 AM
¿Crees que @Query en SwiftData es estático? Te sorprenderá lo dinámico que puede ser

🔍 La macro @Query de SwiftData nos permite consultar datos persistentes de forma declarativa, pero muchos desarrolladores no saben que puede volverse completamente dinámico cuando lo necesitamos. ⚡ El problema…
¿Crees que @Query en SwiftData es estático? Te sorprenderá lo dinámico que puede ser
🔍 La macro @Query de SwiftData nos permite consultar datos persistentes de forma declarativa, pero muchos desarrolladores no saben que puede volverse completamente dinámico cuando lo necesitamos. ⚡ El problema surge cuando intentas usar @State directamente en un predicado: SwiftData no puede acceder a propiedades de instancia durante la inicialización de @Query. La solución está en la arquitectura de vistas.
swiftpills.com
December 19, 2025 at 10:14 AM
¿Inicializas correctamente tus clases @Observable en SwiftUI? Algnos errores pueden romper tu app

🔄 Muchos desarrolladores experimentados siguen teniendo dudas sobre cómo gestionar el ciclo de vida de las clases @Observable en SwiftUI. El problema no es solo técnico: es conceptual. Cuando creamos…
¿Inicializas correctamente tus clases @Observable en SwiftUI? Algnos errores pueden romper tu app
🔄 Muchos desarrolladores experimentados siguen teniendo dudas sobre cómo gestionar el ciclo de vida de las clases @Observable en SwiftUI. El problema no es solo técnico: es conceptual. Cuando creamos una clase @Observable en una vista SwiftUI, podría parecer que no necesitamos @State porque las propiedades se actualizan automáticamente. Pero aquí está el peligro oculto. ⚠️ Sin @State, tu modelo no está vinculado al ciclo de vida de la vista.
swiftpills.com
December 18, 2025 at 10:09 AM
¿Guardas las API keys directamente en tu app de SwiftUI? Es el error que te costará caro

🚨 Uno de los fallos más comunes en iOS es almacenar claves de API en archivos .plist o .xcconfig sin protección adicional. Aunque mantengas estos archivos fuera del control de versiones, cualquier atacante con…
¿Guardas las API keys directamente en tu app de SwiftUI? Es el error que te costará caro
🚨 Uno de los fallos más comunes en iOS es almacenar claves de API en archivos .plist o .xcconfig sin protección adicional. Aunque mantengas estos archivos fuera del control de versiones, cualquier atacante con herramientas de ingeniería inversa puede extraer las claves del binario compilado en texto plano. 🔐 El Keychain de iOS es el mecanismo oficial de Apple para almacenar datos sensibles con cifrado.
swiftpills.com
December 17, 2025 at 10:00 AM
¿SwiftUI ha muerto en 2025? El debate que divide a la comunidad iOS

🔄 Un artículo reciente ha provocado una gran controversia al afirmar que 2025 es el año que murió SwiftUI. La tesis principal: UIKit ha recibido modernizaciones fundamentales mientras que las herramientas de IA generativa…
¿SwiftUI ha muerto en 2025? El debate que divide a la comunidad iOS
🔄 Un artículo reciente ha provocado una gran controversia al afirmar que 2025 es el año que murió SwiftUI. La tesis principal: UIKit ha recibido modernizaciones fundamentales mientras que las herramientas de IA generativa trivializan lo que antes era la gran ventaja de SwiftUI. 🛠️ iOS 18 trajo una revolución silenciosa para UIKit. Apple añadió soporte para el macro…
swiftpills.com
December 15, 2025 at 10:00 AM
¿Gestionar configuración en Swift sigue siendo un dolor de cabeza con código disperso y acoplado? Swift Configuration 1.0 cambia las reglas

🎯 Hasta ahora, gestionar variables de entorno, archivos JSON, argumentos de línea de comandos y secretos requería código repetitivo y específico para cada…
¿Gestionar configuración en Swift sigue siendo un dolor de cabeza con código disperso y acoplado? Swift Configuration 1.0 cambia las reglas
🎯 Hasta ahora, gestionar variables de entorno, archivos JSON, argumentos de línea de comandos y secretos requería código repetitivo y específico para cada origen. Cada fuente necesitaba su propia lógica de lectura, haciendo que el código de la aplicación quedara acoplado a proveedores concretos. ✨ Swift Configuration introduce una abstración limpia entre cómo accedemos a la configuración y de dónde proviene.
swiftpills.com
December 14, 2025 at 9:20 AM
SwiftData en 2025: de código caótico a arquitectura maestra

🧩 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…
SwiftData en 2025: de código caótico a arquitectura maestra
🧩 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.
swiftpills.com
December 13, 2025 at 8:36 AM