Home » Noticias » Apple publica el proceso de lanzamiento de Swift 4
Swift

Apple publica el proceso de lanzamiento de Swift 4

Swift 4, la próxima major version del lenguaje, verá la luz en otoño de este año coincidiendo con el lanzamiento de iOS 11. Y Apple acaba de publicar los pasos que llevarán hasta su lanzamiento final, en un cuidado post que define cómo será su proceso y evolución hasta ese momento, escrito por el actual jefe de proyecto, Ted Kremenek.

El objetivo de esta versión está centrada en dos partes esenciales: la estabilidad de todo el código en Swift 3 y la mejora en la estabilidad de los binarios que genera aprovechando mejoras importantes para el trabajo normal con el lenguaje. Esta versión tendrá importantes mejoras en el núcleo del lenguaje y la librería estándar, especialmente en el sistema de genéricos y en la construcción de un nuevo tipo String mejorado.

Todo en un momento dulce para Swift, que ha subido 4 puestos con respecto a febrero del año pasado en el índice de popularidad TIOBE, confirmando que será uno de los lenguajes de mayor proyección de este año con casi una subida de un punto porcentual.

Compatibilidad de código

Esta es la parte más esencial para entender Swift 4: que el compilador tendrá dos modos de funcionamiento que podrán activarse mediante parámetro: swift-version-3 y swift-version-4. De esta forma, cualquier código ya portado a la versión estable Swift 3.1 que se lanzará en marzo (y que es 100% retrocompatible con las versiones anteriores de Swift 3) podrá ser usado sin modificación alguna y el compilador se encargará de añadirle las mejoras que incorpore Swift 4 en la construcción de binarios y en la mejora interna del propio lenguaje.

En el modo Swift 3, que será el de por defecto del compilador cuando detecte código ya existente, se conseguirá que los binarios que genere el compilador de Swift 4 sean 100% compatibles, salvo contadas excepciones que contemplen bugs que ya existieran en el lenguaje y suponga código que aunque funcionara en Swift 3, lo hiciera por algún fallo pero nunca debería haber permitido que funcionara.

Swift 4, en contra, no será compatible en código con la versión 3 y requerirá adaptar nuestro código al uso de las nuevas APIs del sistema, donde la más importante es una completa refactorización del tipo String enfocada en mejorar el rendimiento y ergonomía de esta importante API. No obstante, los cambios a nivel de código serán mucho menos importantes que los que se tuvieron que adoptar al pasar de Swift 2.2 a Swift 3.

Uso de targets

Otro de los focos del nuevo lenguaje es la compatibilidad en la mezcla de código entre diferentes versiones. Para ello el lenguaje usará una estructura de targets como la usada para proyectos en Xcode, donde cada target será un módulo compilado (o a compilar) de forma separada. De esta forma, si tenemos un framework externo a nuestro app que esté compilado y generado en Swift 3, funcionará sin problema aunque nosotros estemos usando la versión 4.

Y de igual manera el Package Manager aceptará incluir paquetes que estén en Swift 3 aunque trabajemos y usemos este desde un proyecto en Swift 4, y no requerirá actualización alguna del código a la versión 4. Esto es, sin duda, una gran ventaja operativa para poder funcionar con Swift 4 desde el momento 0 sin tener que esperar que cualquier dependencia externa a nuestro proyecto se actualice a la nueva versión.

Este esquema permitirá que mientras los módulos se vayan migrando de la versión 3 a la 4, no tengamos problemas de compatibilidad alguna en la compilación del proyecto completo.

Swift 4 Open Source

Al igual que ahora mismo se genera al menos una versión diaria de Swift 3.1 a través de la implementación de integración continua que usa Apple, el hilo master pasa a trabajar para Swift 4, que igualmente generará una versión diaria con el objetivo de depurar errores y probar la estabilidad de la versión en general. Cada una de estas versiones tendrá superados los test unitarios implementados para cada versión, lo que validará su publicación.

De aquí a la WWDC de 2017, aproximadamente, el lenguaje seguirá recibiendo implementaciones de mejoras y propuestas de evolución en su especificación. Terminado el evento de Apple a comienzos de verano y con el lanzamiento de la primera beta de iOS 11, Swift 4 ya vendría como compilador por defecto de Xcode 9 y se entraría en una fase de corrección y búsqueda de estabilidad, enfocada en el lanzamiento final en otoño de la versión final en el hilo pertinente de release dentro del proyecto.

En ese punto del verano, se creará un nuevo branch del proyecto swift-4.0-branch, que será el encargado de gestionar todos los arreglos y depuraciones, quedando el hilo master para la gestión de la siguiente nueva versión del lenguaje que sería la 4.1.

Camino a Swift 4

Aun quedan muchos meses, mucho trabajo, pero el plan es simple. Trabajo en la versión preliminar de Swift 3.1 (retrocompatible con anteriores versiones de Swift 3), trabajo con el hilo master que mantiene el núcleo de evolución de Swift 4 y sus nuevas funciones y en verano con la WWDC, creación del hilo de lanzamiento de Swift 4 y depuración del mismo hasta conseguir la versión estable que debe lanzarse al público general en otoño, dejando de incluir evoluciones al mismo.

Y por otro lado, un tema muy importante: mientras la compatibilidad entre Swift 3 y Swift 4 no existe a nivel de código, el compilador de Swift 4 sí es compatible con el código Swift 3 y cualquier framework externo podrá seguir siendo usado sin necesidad de adaptar o compilar nada. Sin duda una evolución muy interesante cuyo objetivo final es que las adaptaciones a las nuevas versiones del lenguaje tenga un impacto nulo o mínimo en los proyectos existentes de aquí en adelante, gracias a haber alcanzado una versión estable de especificación del lenguaje en la versión 3. Seguiremos informando de este proceso. Un saludo y Good Apple Coding.

Acerca de Julio César Fernández

Analista, consultor y periodista tecnológico, desarrollador, empresario, productor audiovisual, actor de doblaje e ingeniero de vídeo y audio.

Otras recomendaciones

Files Banner

¡BOOM! Se filtra el gestor oficial de archivos de Apple: Files

A solo una horas de comenzar la WWDC, se filtra en el App Store durante unos minutos la app Files, gestor oficial de archivos para iOS 11. Analizamos cómo podría iOS 11 incorporar la gestión de archivos, que el hecho de cómo y dónde está publicada nos da mucha información de lo que Apple piensa hacer con este demandado servicio para sus dispositivos iOS.