20 jul. 2026
Las esquinas redondeadas de una interfaz suelen parecer un detalle menor hasta que aparecen varias capas anidadas. Una tarjeta con radio de 28 puntos y un panel interior con radio de 20 pueden quedar razonablemente bien, pero esos valores no garantizan que ambas curvas mantengan la misma separación. Cuando cambia el padding, el tamaño del componente o la geometría del dispositivo, el desajuste se vuelve visible.
SwiftUI tiene dos formas que evitan calcular esos radios a mano: ContainerRelativeShape y, desde los SDK de la generación 26, ConcentricRectangle. Las dos se basan en la forma que contiene la vista que lo aplica, pero no expresan exactamente la misma intención. La primera obtiene una versión con márgen de la forma completa; la segunda trabaja con un rectángulo cuyas esquinas pueden resolverse individualmente respecto a las esquinas del contenedor.
Leer articulo18 jul. 2026
Al adoptar la concurrencia de Swift es habitual encontrarse con diagnósticos como «sending value of non-Sendable type risks causing data races». El mensaje puede aparecer al llamar a un actor, crear una tarea o entregar un closure a una API, incluso cuando el código no menciona hilos ni parece ejecutar dos operaciones a la vez.
La clave está en dejar de pensar en hilos y observar quién puede acceder a cada valor. Swift divide el programa en dominios de aislamiento: un actor, el actor principal y determinadas tareas pueden ejecutar código de forma independiente. Cuando un valor cruza de uno de esos dominios a otro, el compilador necesita saber que ambos no podrán modificar simultáneamente el mismo estado. Sendable expresa precisamente esa garantía.
Leer articulo17 jul. 2026
Xcode Cloud permite implementar Integración Continua sin mantener servidores: conecta el repositorio, ejecuta pruebas, archiva la aplicación y distribuye una compilación. Sin embargo, un flujo de entrega contínua real suele necesitar tareas que no forman parte de un simple xcodebuild: instalar una herramienta, validar archivos generados, preparar notas de una versión o avisar a un servicio externo.
Los scripts personalizados cubren ese espacio. No sustituyen las acciones del flujo de trabajo, sino que añaden lógica en tres momentos concretos de la ejecución. Entender esos límites resulta esencial: el mismo script que ahorra trabajo también puede filtrar un secret (o clave), ralentizar cada compilación o publicar dos veces una versión si no se diseña como una pieza de infraestructura reproducible.
Leer articulo16 jul. 2026
Hasta iOS 26, añadir desplazamientos laterales con swipeActions implicaba aceptar una condición importante: la fila debía pertenecer a un List. El modificador podía compilar aplicado a una vista dentro de un LazyVStack, un LazyVGrid o un Layout propio, pero el gesto no producía ningún resultado. Esta limitación obligaba a elegir entre el comportamiento integrado de List y la libertad visual de un contenedor personalizado.
iOS 27 elimina esa disyuntiva. El nuevo modificador swipeActionsContainer() permite que un ScrollView coordine acciones por deslizamiento entre las vistas de su contenido. Así se puede conservar la API declarativa de swipeActions en tarjetas, cuadrículas o composiciones propias sin reconstruir manualmente el gesto, el desplazamiento, la selección de una única fila activa y el cierre de las acciones.
Leer articulo15 jul. 2026
🧩 La composición es una de las ideas que mejor explica por qué SwiftUI permite construir interfaces complejas con relativamente poco código. Una pantalla no se trata como un bloque indivisible, sino como una jerarquía de piezas pequeñas que se combinan entre sí. Un texto, un botón, una fila de una tabla y una pantalla completa… participan en el sistema a través de la misma abstracción: todos conforman el protocolo View.
Leer articulo