Swift 6 y la encriptación post cuántica
También recomendaciones sobre cómo mostrar tu aplicación al mundo, desierta tu lado servidor 2.0, el poder de SwiftUI y no faltamos a nuestra sección final para muy cafeteros
Esta semana no pasará a la historia, al menos a la que a esta newsletter atañe, por haber sido generosa en noticias y contenido. Pero conviene recordar que estamos a las puertas de la entrada en vigor de la Ley de Mercados Digitales, y la puesta por tanto en producción, de los cambios que Apple ha realizado para iOS 17.4. Después de varias betas y con el 6 marzo como fecha límite no se esperan cambios significativos.
Un cambio tectónico en Swift
Lo que si va a suponer un cambio significativo es la versión 6 de Swift. Aún hay varias características en discusión, y otras varias por cerrar a nivel implementación, pero ya tenemos el roadmap a seguir por parte del equipo al cargo. El proceso de lanzamiento comenzará el 15 de Marzo con la creación de la rama de desarrollo en el repositorio. Esta contendrá los cambios a implementar en la versión 6.0 y serán incluidos mediante proceso de pull request tras su discusión en el foro de evolución de Swift. Todo apunta a que incluirá novedades como la comprobación estricta de concurrencia, aunque no es seguro que se implementen otras características como un modelo de memoria que remplace a ARC.
Veremos como se desarrolla el proceso, pero lo más seguro es que veamos ya charlas en la WWDC de este mes de Junio y que la versión final se libere en Septiembre, junto con la llegada de nuevas versiones de los sistemas operativos de Apple. En el hemisferio norte aún es invierno pero ya avistamos un verano movidito para los desarrolladores.
Despierta tu lado servidor: Hummingbird 2.0
Uno de los mejores frameworks para desarrollo de aplicaciones de lado servidor, y un férreo competidor de Vapor, anuncia su segunda versión y viene cargada de novedades. Hummingbird es una herramienta de desarrollo en lenguaje Swift para aplicaciones de servidor HTTP. Nació con el foco en la simplicidad para aquellos desarrolladores que no quisieran complicaciones. Entre las novedades principales se encuentran la migración prácticamente completa al nuevo modelo de asincronía y concurrencia async/await, o la adopción de la versión 2 de la librería para dar servicio al ciclo de vida de aplicaciones Swift. También hacen uso de la recién liberada librería de tipos HTTP de Apple, implementan los Jobs mediante TaskGroup y han fusionado la librería Core con la rama principal a la espera de la aparición de la nueva implementación de Foundation, modular y reescrita en Swift.
Sin duda una noticia estupenda, hayas o no desarrollado aplicaciones de lado servidor previamente. Si algún día lo necesitas o si utilizas alternativas como Vapor, no está de más darle una oportunidad. Incluso si ya has hecho tu pinitos, lánzate a la adopción de la nueva versión porque supone sin duda un salto en cuanto a simplicidad y robustez.
¿No querías cifrado? Pues toma dos tazas
Otro de los anuncios importantes de la semana, ha sido la inclusión del estándar PQ3 de cifrado para iMessage. Empezando desde iOS 17.4 y equivalentes, Apple migrará a este nuevo sistema de cifrado todas las conversaciones en las que se pueda aplicar. Esto quiere decir, aquellas cuyos integrantes tengas instaladas estas versiones, o una mayor, en todos sus dispositivos. ¿Qué aporta esta nueva tecnología? Seguridad frente a los temidos procesadores cuánticos que están por venir. La velocidad de proceso que podrían alcanzar, pone en tela de juicio muchos de los sistema de encriptación de datos actuales. El problema es que podrían generar secuencias de claves tan rápido que comprometerían el cifrado por una suerte de ataque de fuerza bruta.
El artículo del blog de Apple entra en detalle sobre los distintos niveles de encriptación y qué algoritmos añade cada uno de ellos. Tenemos el más básico de clave única, luego estaría el punto a punto (donde cada uno tiene su llave) y por encima de estos, tendríamos a Signal Protocol. Este añade una capa más de seguridad al establecer tanto sesiones como rotación de claves, e incluso aleatorización en puntos intermedios para que, si se compromete un mensaje, no puedan leerse ni los anteriores, ni los siguientes. En la actualidad, las empresas que presumen de cifrado punto a punto, utilizan principalmente Signal o alguna variante. Apple quiere ir un paso más allá añadiendo nuevas rotaciones dentro de la cadena de cifrado para hacerla aún más robusta.
Lo primero que se ve de una app y los mapas de SwiftUI
Ya hemos hablado de los iconos y de cómo mejorar la presencia de nuestras aplicaciones en al App Store. Pero una vez que el usuario se ha descargado el software, es muy probable que lo primero que vea sea el mítico onboarding. Este puede consistir en una o varias pantallas que presentan ya no sólo la aplicación, si no en muchas ocasiones además, un pequeño tutorial sobre cómo usarla. Os traemos esta pieza de Javier Torné donde nos muestra las claves y la importancia de que el usuario empiece a su usar nuestra aplicación con bien pie.
Continuando con la obra y milagros de SwiftUI, hoy tenemos un artículo sobre lo fácil que es trabajar con los puntos de interés en los mapas. Podemos decidir cuáles mostramos, gestionar la selección, personalizar cómo se muestran… y todo con una API muy sencilla. Ninguna edición de esta newsletter sin mostraros todo de lo que SwiftUI es capaz.
Swift para cafeteros: Librerías y extensiones
Una de las características más celebradas de Swift son las extensiones. La programación orientada a protocolos no serían ni de lejos tan potente sin el uso de las mismas. Nos permiten dos cosas: extender (valga la redundancia) la funcionalidad de tipos importados de otros módulos, pero también implementar un comportamiento por defecto para métodos de los protocolos. Es una especie de herencia basada en la composición, es decir, aportando funcionalidad modular en lugar de jerárquica. Tanto si dominas las extensiones como si has desconectado hace un par de frases, te recomendamos echar un ojo a esta pieza.
Y aquí están nuestras amigas las librerías de terceros. Me ahorraré los juicios de valor para ir directo al grano: os traemos una forma de mantenerlas a raya. El truco consiste en dos fases. La primera es encapsular el código dentro de entidades propias. Así evitamos hacer un import en cada fichero que lo necesite. Y la segunda es generalizar sus tipos. Con una suerte de traducción a tipos de dominio, lograremos una interfaz desacoplada, de forma que podamos sustituir dicha librería en el futuro sin cambiar el contrato de nuestras API.
Y poco más
Cerramos no sin antes dejar constancia que Tim Cook comentó el otro día en una reunión de accionistas, que las próximas versiones de los sistemas de Apple “abrirán nuevos caminos” en cuanto a IA generativa.
Por nuestra parte, abrimos desde ya nuevos caminos, pues el 1 de marzo se lanza una nueva edición de nuestra formación intensiva Swift Developer Program, que impartirá nuestro compañero Arturo Rivas y que será vuestra puerta de entrada al desarrollo en Swift, SwiftUI y uso de red. Y que cerrará con una masterclass de desarrollo en Apple Vision Pro. Echadle un ojo a la información en nuestra web pues empezamos el 1 de abril. La primera ocasión en que convocamos 2 formaciones en un año, dada la alta demanda de esta formación intensiva.
Hemos empezado sin muchas pretensiones pero creo que ha quedado un edición bastante redonda. ¿Opinas lo mismo? Esperamos que si porque no queremos perder el honor del tiempo que dedicas a leernos. Si quieres contactar con nosotros puedes hacerlo en nuestro correo caffeswift@gmail.com o en la cuenta de X @caffeswift.
Nos leemos pronto, si Jobs quiere, y hasta entonces: un saludo y Good Apple Coding.