Desde el lanzamiento del lenguaje de programación Swift en 2014, su ciclo de evolución ha coincidido siempre con el de iOS y las versiones mayores de Xcode. Así fue en su lanzamiento que coincidió en ese momento con iOS 8. Cada nuevo junio nos traía la versión beta y cada septiembre la versión final. Pero eso ha cambiado a partir de 2018.
Swift 5, cada vez más cerca
Como ya comentamos en el artículo del lanzamiento de Swift 5 en versión de desarrollo el pasado mes de diciembre, el lenguaje se enfrenta a un proceso de estabilidad binaria en su librería estándar que ha requerido más tiempo y trabajo por parte del equipo tras el proyecto de código abierto (tanto de Apple como de empresas externas o colaboradores independientes) para conseguir este hito. Por lo tanto, en junio del año pasado en la WWDC se presentó Swift 4.2 como versión menor que acompañó al lanzamiento de iOS 12 y se dijo que Swift 5 llegaría a comienzos de 2019.
Y así parece que va a ser ya que el pasado día 24 de enero Apple lanzó la primera beta de su versión de primavera de todos sus sistemas operativos (cuya versión final se lanzará, presumiblemente, en la última semana del mes de marzo). Junto a iOS 12.2 y el resto de sistemas, también se lanzó Xcode 10.2 Beta. Con una enorme novedad: Swift 5 ya forma parte de Xcode.
En cuanto a compatibilidad, si tenemos un proyecto aún en Swift 3, Xcode 10.2 pierde soporte para esta versión del lenguaje, por lo que no podremos ni siquiera abrirlo. Tendremos que usar la versión 10.1 para abrir el proyecto en Swift 3 y convertirlo a Swift 4.2. Con ello conseguiremos que el proyecto esté preparado para sufrir el siguiente paso que Xcode 10.2 sí podrá hacer: migrar a Swift 5.
No obstante, no olvidemos que ahora mismo seguimos en versión beta por lo que un proyecto en Swift 5 aún no puede enviarse al App Store ni funcionará en ningún dispositivo que no tenga la versión beta de iOS 12.2, macOS 10.14.4, tvOS 12.2 o watchOS 5.2.
Binario estable
Esta versión de Swift, por primera vez, requiere una actualización paralela del sistema operativo para funcionar. Como ya expliqué en el artículo anterior donde hable de Swift 5 que podéis leer aquí, esta versión consigue estabilidad binaria para la librería estándar del lenguaje.
Todo lenguaje tiene un binario que permite a los binarios que se generan para ese lenguaje ser ejecutados y traducidos a código máquina. Pero hasta ahora Swift requería que la librería estándar del lenguaje se uniera como librería al ejecutable porque cada versión tenía llamadas completamente diferentes a nivel binario (no era estable).
A partir de la versión 5 esto ya no sucede, por lo que ahora la librería de Swift viene cargada en iOS, macOS, watchOS y tvOS como un recurso más. ¿Qué supone eso? No solo que al estar cargada en el sistema funciona mejor al estar como componente del sistema, también hace que (y esto es un caso real) una app vacía hecha en Swift, solo con una pantalla en blanco y nada más, pase de ocupar en nuestro dispositivo de 2.4MB a solo 24KB. Por lo tanto, todas las apps hechas en Swift no solo serán más rápidas a partir de iOS 12.2 y el resto de sistemas de primavera, también serán más livianas en espacio.
With archiving by XCode 10.2 beta, I got two apps:
— Leon.yan (@yanyin1986) January 25, 2019
For iOS 12.2, its size is 24KB.
And for iOS 12.1 or earlier, its size is 2.4MB. pic.twitter.com/W4vtW6s4Ew
En cuanto al lenguaje en sí, solo se han realizado ajustes a alto nivel y bastante leves. Cualquier código que funcionará en Swift 4 podrá ser migrado a Swift 5 casi sin tocar una sola línea de código y simplemente con un análisis que busque alguna cambio que pudiera necesitar el código pero que estará soportado por el asistente de migración de Xcode.
Cuando vayamos probando esta versión y sus cualidades, os iremos contando más sobre el tema, pero somos testigos de un pequeño paso de esos que la mayoría no ven pero que mejorará mucho el rendimiento y estabilidad del sistema.
Ver 3 comentarios