2 puntos por GN⁺ 2026-03-28 | 1 comentarios | Compartir por WhatsApp
  • Amplía el lenguaje, la biblioteca estándar, el sistema de compilación y el soporte de plataformas en general, y mejora la experiencia de desarrollo
  • Los cambios principales son el fortalecimiento de la interoperabilidad con C, la incorporación del SDK oficial para Android, las mejoras para entornos embebidos y la expansión de la herramienta de documentación DocC
  • Swift Package Manager mejora la consistencia de compilación multiplataforma mediante un motor de compilación unificado y soporte para Swift Syntax precompilado
  • Swift Testing agrega nuevas funciones, como registro de incidencias de nivel advertencia, cancelación de pruebas y adjuntos de imágenes, para reforzar la flexibilidad de testing
  • Con el lanzamiento oficial del SDK para Android, se amplía el alcance del desarrollo multiplataforma de Swift y se habilita la integración con apps Kotlin/Java

Actualizaciones principales de Swift 6.3

  • Swift 6.3 ofrece funciones ampliadas en el lenguaje, la biblioteca estándar, el sistema de compilación y el soporte de plataformas
  • Los cambios clave son el fortalecimiento de la interoperabilidad con C, la incorporación del SDK oficial para Android, las mejoras para entornos embebidos y la expansión de la herramienta de documentación DocC
  • El objetivo es mejorar la experiencia de desarrollo y la integración del desarrollo multiplataforma

Lenguaje y biblioteca estándar

  • Interoperabilidad con C

    • El nuevo atributo @c permite exponer funciones o enums de Swift al código C
    • Se puede especificar un nombre de declaración C personalizado con la forma @c(MyLibrary_callFromC)
    • Si se usan juntos @c y @implementation, es posible implementar en Swift funciones declaradas en encabezados C
    • En esa combinación, Swift valida si coincide con la declaración C existente
  • Selectores de nombre de módulo (Module Name Selectors)

    • Al importar APIs con el mismo nombre desde varios módulos, se puede hacer una llamada indicando el módulo explícitamente con la forma ModuleA::getValue()
    • La sintaxis Swift::Task permite acceder a APIs de concurrencia y procesamiento de cadenas
  • Control de rendimiento para APIs de biblioteca

    • @specialize: ofrece una implementación especializada previa para tipos específicos de una API genérica
    • @inline(always): fuerza el inlining para expandir el cuerpo de la función en el punto de llamada
    • @export(implementation): expone la implementación de una función en bibliotecas con ABI estable para permitir optimizaciones adicionales
    • Las propuestas relacionadas pueden consultarse en el panel de Swift Evolution

Mejoras en paquetes y compilación

  • Swift Package Manager incluye una vista previa de integración de Swift Build, que ofrece una experiencia de compilación consistente en todas las plataformas
    • Refuerza la consistencia del desarrollo multiplataforma mediante un motor de compilación unificado
    • Los usuarios pueden probarlo directamente en paquetes y reportar problemas
  • Principales mejoras de SwiftPM 6.3
    • Soporte para Prebuilt Swift Syntax: las bibliotecas solo para macros pueden usar binarios precompilados de swift-syntax
    • Control flexible de herencia de documentación: los plugins imperativos que generan grafos de símbolos pueden controlar si se incluye la documentación heredada
    • Función de exploración de traits del paquete: con el comando swift package show-traits se pueden verificar los traits compatibles del paquete
    • Más detalles están incluidos en las notas de lanzamiento de SwiftPM 6.3

Actualizaciones de bibliotecas principales

  • Swift Testing

    • Registro de incidencias de nivel advertencia: con Issue.record(..., severity: .warning) se muestran advertencias sin marcar la prueba como fallida
    • Función de cancelación de pruebas: con try Test.cancel() se puede detener una prueba en ejecución y sus subtareas
    • Soporte para adjuntar imágenes: se pueden adjuntar imágenes durante las pruebas en plataformas Apple y Windows
    • Propuestas relacionadas: ST-0012, ST-0013, ST-0014, ST-0015, ST-0016, ST-0017, ST-0020
  • DocC

    • Soporte de salida en Markdown: genera documentación Markdown con la opción --enable-experimental-markdown-output
    • Contenido HTML estático por página: insertar HTML de resumen dentro de `` mejora motores de búsqueda y accesibilidad
    • Expansión de anotaciones en bloques de código: se agregan nuevas opciones de formato como nocopy, highlight, showLineNumbers, wrap
    • Puede activarse con la opción --enable-experimental-code-block-annotations

Plataformas y entornos

  • Embedded Swift

    • Incluye múltiples mejoras, como mayor interoperabilidad con C, mejoras de depuración y avance hacia la finalización del modelo de linkage
    • Los detalles pueden consultarse en el blog “Embedded Swift Improvements coming in Swift 6.3”
  • Android

    • Primer lanzamiento del SDK oficial de Swift para Android
    • Hace posible el desarrollo de apps nativas de Android con Swift y el soporte de compilación de paquetes Swift en Android
    • Permite integración con apps Kotlin/Java mediante Swift Java y Swift Java JNI Core
    • Se considera un hito importante para la expansión multiplataforma de Swift
    • La guía de inicio está disponible en el documento “Getting Started with the Swift SDK for Android”

Siguientes pasos

  • El toolchain de Swift 6.3 puede instalarse desde la página Install Swift
  • Los desarrolladores pueden empezar a probar de inmediato las nuevas funciones y enviar feedback

1 comentarios

 
GN⁺ 2026-03-28
Opiniones en Hacker News
  • Da gusto ver un lanzamiento tan bueno de Swift
    No lo he usado desde más o menos la v3, pero por allá de 2015~17 Swift pudo haber reemplazado a Python
    porque era simple, rápido y encajaba bien con el ecosistema de C/C++. En la época en que IBM impulsaba la parte de servidor, de verdad parecía posible
    Pero Apple no logró atraer lo suficiente a la comunidad y, al final, Swift se quedó como un lenguaje exclusivo de Apple. Ahora además su complejidad ya subió al nivel de C++

    • En la universidad trabajé como freelance e hice un backend web en Swift. Lo desplegué con buildpacks de Heroku y fue una etapa bastante divertida
      Me gusta Swift, pero fuera del ecosistema de Apple todavía siento que no ha pasado la masa crítica. Al final el año pasado me cambié a Typescript
    • Incluso usando Swift 6.3, desarrollar fuera de las plataformas de Apple sigue siendo doloroso
      Sobre todo, creo que casi nadie quiere meter voluntariamente a Apple como guardián de acceso dentro de su stack
    • Google también intentó en algún momento mover TensorFlow de Python a Swift
      Proyecto TensorFlow Swift
    • Incluso Python 3 tardó mucho en reemplazar a Python
    • Python es fuerte en el desarrollo iterativo y en Jupyter Notebook gracias a su intérprete interactivo
      CircuitPython también fue útil para prototipado embebido. Swift no logró apropiarse bien de esas áreas
      Además, Swift llegó a Linux en 2016, a Windows en 2020 y recién a FreeBSD en 2025
      A mediados de los 2010 salieron muchos lenguajes nuevos como Go, Julia, Rust, TypeScript y Solidity, así que la mayoría apenas tenía tiempo para aprender uno o dos
  • Esperaba que Swift se volviera un lenguaje para toda la pila, pero la realidad no fue esa
    Se siente como si Apple hubiera desperdiciado la oportunidad

    • Yo sí trabajo toda la pila en Swift
      Por ejemplo, ClearSurgery está escrito completamente en Swift, incluso sus componentes en tiempo real sobre Linux
  • La semana pasada porté el sistema operativo xv6-riscv a Zig, Nim, LISP y Swift
    Gracias al avance de Swift embebido, me pareció un lenguaje de alta productividad. Las abstracciones que envuelven el acceso a memoria también se veían limpias
    Pero la velocidad de compilación era tan lenta que al final me enfoqué en Nim

    • Hace mucho que no escuchaba el nombre Nim; me da curiosidad por qué lo elegiste
    • Pregunta si se refiere a McCarthy LISP
  • Da pena que no se mencione la mejora en la velocidad de compilación de Swift
    Compilar más lento que Rust perjudica bastante la experiencia de desarrollo

    • Yo también hice hace poco un proyecto en Swift y me sorprendió lo lenta que se vuelve la compilación mientras más dependencias hay
      Si ya estás acostumbrado a los builds rápidos de Go, Swift de verdad vuelve doloroso el desarrollo iterativo. El lenguaje en sí es excelente, pero el ciclo de retroalimentación es demasiado lento
  • Swift 6.3 incluyó por primera vez un SDK oficial para Android

    • Me pregunto si también hay para Windows y Linux
      Para Windows está este post del blog de hace 5 años,
      y para Linux esta guía para GNOME
      Estaría bien poder desarrollar una vez y desplegar en varias plataformas, como en los tiempos de OpenSTEP
    • Parece que se va a usar todavía menos que Swift para servidor
  • La mejora de los tipos noncopyable es la parte más subestimada de este lanzamiento
    Ahora modelar propiedad única en Swift es mucho más realista

  • Con el atributo @c de Swift 6.3 ahora se pueden exponer funciones de Swift a código C
    Pero me pregunto por qué lo agregaron tan tarde. Haber metido primero la interoperabilidad con C++ parece una prioridad extraña

    • En realidad antes ya existía como un atributo con guion bajo
    • La interoperabilidad con C++ era importante para que Apple pudiera absorber bases de código de bajo nivel ya existentes
      En cambio, exportar Swift a C tiende a crear espagueti de FFI y facilita bugs de ABI en cosas como enums, propiedad y manejo de null
      Sobre todo si se mezclan closures, las convenciones de llamada se desalinean y puedes perder un día entero depurando
    • Ya existía la capacidad de exportarlo a ObjC, por eso la prioridad era baja
    • Llevo tiempo usándolo de forma experimental; ahora simplemente se oficializó
  • Antes, cuando hacía un dylib en Swift para programas en C, tenía que usar @cdecl, así que da gusto ver que ahora tenga soporte oficial

  • Los cambios reales más allá del marketing se pueden ver en el CHANGELOG y en
    la lista de propuestas de Swift Evolution
    La 6.3 fue sobre todo una versión centrada en trabajo de integración: stdlib, interoperabilidad con C/C++, swift-java, sistema de compilación, etc.
    SPM está absorbiendo cada vez más funciones de Xcode, y también se están probando el nuevo motor swift-build y los módulos precompilados
    Pero la interacción entre SPM y Xcode sigue siendo inestable, y la complejidad interna está creciendo
    El avance del lenguaje en sí es más silencioso, pero siguen en marcha trabajos estructurales profundos como el control de vida útil y el coloreado de concurrencia
    Como hay muchos OS, dispositivos y entornos de CI entrelazados, los desarrolladores de Swift siempre están en una situación de tener que mantener el equilibrio en medio del cambio

    • En Swift 6.4, swift-build será el predeterminado
      Según este post oficial del foro,
      Xcode ya lo usa internamente, pero los problemas de rendimiento son serios
      También está esta discusión relacionada.
      Si SPM y Xcode usan el mismo motor, tal vez mejore, pero no tengo grandes expectativas
  • Me da curiosidad cómo está el toolchain en las versiones recientes de Swift. Quisiera saber si Swift Lint y Swift Format están soportados
    Un lenguaje moderno debería tener un formateador integrado y reglas de lint recomendadas. No importa solo el lenguaje, sino todo el ecosistema

    • Ahora ambas herramientas ya vienen incluidas por defecto. Se pueden usar directamente con swift format y swift format lint sin dependencias externas