Swift 5

Artículo

Analizamos las novedades que trae Swift 5

El principal lenguaje de programación para dispositivos móviles de Apple acaba de recibir la actualización a la versión 5 para XCode 10.2 y trae nuevas características, algunas dignas de ser mencionadas. Hemos analizado lo más relevante.

La principal novedad de esta versión es la estabilidad binaria del lenguaje, el cual es el principal motivo del retraso de esta entrega teniendo en cuenta que cada versión importante suele llegar cada año en septiembre. Swift 5 debería haber salido en septiembre de 2018, pero en su lugar se publicó la versión 4.2 para poder posponer esta entrega.

¿A qué se refieren con estabilidad binaria? Los lenguajes de programación para poder ejecutar y traducir a código maquina necesitan un binario. Anteriormente este se generaba exclusivamente para cada aplicación con sus llamadas propias y este binario era incompatible con el resto de aplicaciones. Swift generaba una librería del lenguaje que se incluía en cada Aplicación y ahora han conseguido que esta librería esté integrada en el SO y que no sea necesario tener que hacer una copia de esta en cada aplicación.

A nivel de sintaxis de código, apenas hay diferencia con la versión 4 por lo que las migraciones de proyecto no serán nada tediosas como pasaba con versiones más antiguas.

Además, no queda aquí la cosa. Microsoft hace unos años en una conferencia Build para desarrolladores se comprometió a incluir Swift como un lenguaje más para poder ser usado en el IDE Visual Studio. Para que esto sea posible tan solo pidieron que Swift tuviese estabilidad binaria. Swift hasta ahora permitía crear programas para Linux, incluso Android, y veremos si a partir de ahora Windows se une a la lista de Sistemas Operativos compatibles.

En cuanto a XCode 10.2, Swift 3 pierde soporte por lo que no podremos compilar un proyecto que no esté en la versión 4, 4.2 o 5. Si deseas migrar un proyecto en la versión 3, deberías usar XCode 10.1 para poder actualizar el proyecto subiéndolo a una versión compatible.

Swift Playgrounds fue presentado al público en su primera versión en la WWDC 2016 y hace un año lanzó la versión 2.0. Esta vez se actualiza lanzando la versión 3.0 en la que se incluye Swift 5. A pesar de que en esta actualización sigue manteniendo la misma interfaz, ahora se pueden incluir recursos y carpetas comunes a todo el Playground Book quedando a disposición en cualquier página.

Vamos a adentrarnos en algo más referente al código para poder ver qué cambia en esta versión a la hora de desarrollar.

  • Han mejorado los delimitadores en las cadenas de texto. Antes, cada vez que querías meter comillas dobles (“) en una cadena de texto String tenías que escribir contra barra (\) delante. Ahora esto se resuelve escribiendo almohadilla (#) al inicio y al final de la cadena de texto String.

Input:

Swift5

Output:

Swift5
  • También han añadido la función ‘compactMapValues’, la cual simplifica bastantes tareas. Una de ellas es limpiar valores nulos dentro de un diccionario. Aquí podemos ver cómo se usa en un diccionario de Strings el valor del medio contiene un nulo por lo que de esta manera se limpia con una escasa línea de código.

Input:

Swift5

Output:

Swift5
  • Además de eso, ‘compacMapValues’ permite parsear valores del diccionario de un tipo a otro, en este caso de String a Int.

Input:

Swift5

Output:

Swift5
  • Hay algo que todavía no ha salido, pero que es una propuesta. Se trata del patrón Async/Await que nos evitará el Callback Hell. Esto facilitará el trabajo a la hora de trabajar con el resultado de varias APIs. Con estos dos bloques de código entenderéis perfectamente el funcionamiento: el primero muestra cómo se hacen las llamadas actualmente y el segundo con el patrón Async/Await.

Input:

Swift5

Como conclusión sacamos que Swift 5 a pesar de no tener grandes cambios en el código si que incorpora grandes cambios internos importantes que son transparentes para el programador y que van a beneficiar el rendimiento de nuestras aplicaciones en el futuro. Desde mi punto de vista creo que es recomendable actualizar nuestro entorno de desarrollo para poder usar Swift 5.

Raúl Miralles

Raúl es Consultant en DxD de Deloitte, formando parte del área de movilidad en el desarrollo de proyectos nativos iOS y Android especializado en tecnologías iOS. Tiene 4 años de experiencia en movilidad trabajando para todo tipo de clientes nacionales e internacionales en nuevos proyectos y evolutivos en proyectos de Banca, ERP y demás. Principalmente trabaja con lenguajes como Swift, Objective-C, Kotlin y Java usando metodologías Agile como Kanban y Scrum.