GuíasSwift
Trending

Novedades en Swift 4.2

Lo que podemos encontrar en la nueva versión presentada en la WWDC 2018

Resumen del artículo

  • Ayer comenzó la WWDC 2018 y nos trajó unas cuantas novedades bastante interesantes y un par de promesas para el año que viene (léase Marzipan y Swift 5). Lo que sí nos dejó es la versión 4.2 de Swift, versión ya disponible en la versión beta de Xcode. ¿Qué novedades trae? A lo largo de este artículo te las desvelamos.

Ayer comenzó la WWDC 2018 y nos trajó unas cuantas novedades muy interesantes como ARKit 2.0, Core ML 2 y CreateML, las acciones de Siri o muchas novedades productivas en la nueva versión de macOS. Pero también nos dejó un par de promesas para el año que viene como el proyecto Marzipan para ejecutar apps de iOS en el Mac o la versión 5 de Swift que se retrasa también hasta 2019.

Por lo tanto, la versión oficial que habrá actualmente junto a iOS 12 y macOS 10.14 Mojave será Swift 4.2, versión ya disponible en la versión beta de Xcode 10. ¿Qué novedades trae? A lo largo de este artículo te las desvelamos.

Iterar sobre las opciones de una enumeración

Una de las cosas más demandadas por lo desarrolladores es una forma rápida y sencilla de obtener todas las opciones de una enumeración.

Los ingenieros de Swift nos han escuchado y ahora sólo hay que indicar que nuestra enumeración conforma el protocolo CaseIterable y el compilador se encarga de proporcionar una implementación por defecto. Dicha implementación añade la propiedad allCases a la enumeración, que no es más que un array con todos los case del enum.

La documentación especifica que esta implementación automática se añade a cualquier enumeración sin valores asociados o sin el atributo @available en cualquiera de sus case. ¿Y qué pasa si mi enumeración tiene valores asociados?

Pues nada, que podemos usar el literal del case o su valor asociado.

Directivas de compilador. Error y Warning

Dos nuevas directivas se añaden a la ya existentes: #error(mensaje), que provoca un error que detiene la compilación y muestra el mensaje que se pasa como parámetro y #warning(mensaje) que hace lo mismo pero no detiene la compilación.

¿Y para qué queremos provocar nosotros mismos errores de compilación? Pues por ejemplo cuando vayamos a distribuir un cliente de acceso a algún servicio web. Estos servicios necesitan de unas claves de acceso que no vamos a compartir con los demás, pero que son necesarias para poder usarlo. Así que distribuyes tu framework con #error(mensaje) para que al compilar el desarrollador vea que necesita establecer las credenciales de acceso. Vamos a ver un ejemplo.

Hay que decir que el String que se pasa como parámetro debe ser estático, es decir, que no permite String Interpolation o concatenación.

Y el resultado que obtendremos al compilar será algo como la imagen inferior.

Random para Int, Float, Double y Bool

Ya podemos dejar de usar las funciones arc4random_buf o arc4random_uniform y emplear las nuevas funciones de random de los tipos numéricos, y boleano. Veamos algún ejemplo.

En este primer ejemplo simularemos el lanzamiento de una moneda 10 veces…

Y ahora el resultado de un partido de baloncesto…

O por último, generamos un color de forma aleatoria.

Si os fijáis la función random en los tipos numéricos usa como parámetro un rango de valores entre los que estará el valor aleatorio, mientras que la misma función para el boleano no necesita ningún parámetro para operar.

Orden aleatorio de los elementos de un array

Ahora tenemos una forma rápida y sencilla de ordenar los elementos de un colección gracias a la función shuffle o shuffled, si es que el array está declarado como let.

Eliminar elementos de un array

A través de la nueva función removeAll(where:) que incorpora los Array, mediante el protocolo RangeReplaceableCollection, podemos eliminar aquellos elementos que cumplan con una determinada condición.

Bool toggle

Estoy seguro que la inmensa mayoría teníamos una extensión para el tipo Bool que te permitía cambiar su valor. Con Swift 4.2 podemos eliminar esa extensión y usar la función toggle que forma parte de los tipos Bool.

Conclusiones

Y hasta aquí las novedades más importantes que incorpora Swift 4.2, pero no son las únicas, ahora toca bajarse la beta de Xcode 10 y empezar a probar todas estas cosas. Un saludo y Good Apple Coding.

Etiquetas

Adolfo Vera

Me gustan las camisetas y las zapatillas // Swift + UX/UI en sistemas Apple // Ahora @seeyuu_app // Creador de @GetPomodoroApp · @MADatBUS · @GetMeteo y...

Artículos relacionados

También en

Close
Close
Close