La WWDC traerá una Interfaz Asombrosa
La conferencia comenzará el 10 de Junio, las Persona atraviesan la ventana, el año de Linux en el escritorio y artículos para desarrollar tus habilidades
Habemus fecha. La conferencia mundial de desarrolladores de Apple, más conocida como WWDC, de este año 2024, se celebrará entre lunes 10 y el viernes 14 de Junio. El evento comenzará, como cada año, con la presentación de las últimas novedades en el software y los sistemas operativos de la compañía. Después tendremos otro de los platos fuertes. con el Platforms State of the Union, donde se explicarán más a fondo los detalles técnicos y las novedades enfocadas a los desarrolladores. Los siguientes días, se irán publicando otras charlas, más cortas y monotemáticas, sobre las nuevas características para programadores, diseñadores y otros profesionales que quieran desarrollar productos en cualquiera de las plataformas ofrecidas por los de la manzana.
Aunque ya es tarde para apuntarse a lista y poder acudir en persona, el contenido es pre-producido y se emite on-line para todo el mundo. Podrás verlo todo a través de la aplicación Developer, y este año también un un nuevo canal de YouTube. Las conferencias principales del primer día se emiten además en la web de eventos de Apple y en la aplicación TV.
Y por supuesto, podrás seguirlo desde nuestro canal de Youtube o en Twitch en directo con muchos amigos developers e influencers de tecnología. Un directo de más de 6 horas donde cubriremos tanto la keynote inaugural como el evento Platforms: State of the Union. ¿Te lo vas a perder?
Sobre lo que nos espera, podríamos hablar largo y tendido. No obstante, los pilares serán precisamente dos. El vice-presidente de marketing de de Apple publicó en X que la conferencia sería, Absolutely Incredible, con ambas letras en mayúscula. Junto con las novedades que la propia compañía ha presentado en el campo de los modelos generativos de lenguaje, y la multitud de proyectos que la comunidad ha ido creando con las herramientas ya publicadas, avecinan un gran paso en la incorporación de la IA tanto en el sistema como en las aplicaciones. Puedes escuchar más detalles sobre los modelos en los que trabajan y lo que podrían presentar en Apple Coding Daily.
El segundo tiene que ver con un rediseño de la interfaz. Os adelantábamos que el lenguaje de diseño de visionOS podría ser trasladado, primero a iOS y iPadOS y más tarde a macOS. De esta forma, las interfaces tendrían el mismo estilo de capas, sombras difusas y transparencias basadas en materiales, suponiendo un salto del actual flat-design al neomorfismo.
Algo menos de dos meses para salir de dudas y también para ver los avances de la versión 6 de Swift.
Persona sale de la ventana para emular experiencias y tutorales
Algo que vimos en el contenido de la anterior WWDC, pero que no ha estado disponible hasta hace unos días, son las experiencias compartidas utilizando Spatial Persona. Tras una nota de prensa de Apple, esta opción se activó en todas las versiones 1.1 o superior del sistema de las Apple Vision Pro con las llamadas FaceTime. Esta suerte de avatar hiperrealista para las videollamadas, ha salido de la ventana donde estaba enclaustrado y ahora los otros interlocutores pueden verlo dentro de su entorno, manos incluidas. En otro Apple Coding Daily nos cuentan las posibilidades se abren a este respecto, pero recordemos, esta funcionalidad aún está en beta.
Otra de las noticias importantes, ha sido el cambio de las guías de revisión del App Store para permitir emuladores. Ahora se podrán subir aplicaciones que recreen hardware y software de otros sistemas y que permitan descargar contenido desde ellas. Eso si, el desarrollador es el único responsable de que el contenido descargado tengas las licencias necesarias o que las ROMS usadas no sean las originales o estén dentro del abandonware necesario, como ya sucede con otros emuladores como ScummVM que llevan tiempo en el App Store porque no es más que un intérprete de los scripts que daban vida a las aventuras gráficas de LucasArts de hace años. El quid está en no usar código protegido o ROMS (para las BIOS de las máquinas) copiadas byte a byte y que tengan propiedad intelectual.
La última noticia que os traemos tiene que ver con el sitio web para desarrolladores de Apple, que ha incluido nuevos tutoriales paso a paso para aprender el lenguaje Swift, y la creación aplicaciones con SwiftUI desde cero. Están construidos con la librería DocC que permite generar documentación y publicarla en un sitio web con una simple exportación. Recomendamos echar un vistazo, tanto a los tutoriales como a la librería. De propina os dejamos uno de los tutoriales para cachear datos de red.
La fiesta en el lado servidor la paga Apple
Aunque Swift y muchas de las librerías son open-source, el apoyo de las empresas es fundamental para el desarrollo de estos proyectos. Hace unas semanas, se anunciaba que Apple volvía a patrocinar la Server Swift Conference. Se confirma así la apuesta de los de California por esta comunidad y el uso del lenguaje más allá de sus plataformas dando un apoyo continuo al desarrollo de lado servidor.
Puede que las conexiones de red y el acceso a los servicios web sea una de las características que más aplicaciones implementen. Recibir y enviar información desde y hacia un servidor, permite que el contenido de nuestra aplicación sea más dinámico y mantiene a los usuarios conectados. Si nunca hasta ahora has desarrollado fuera de los sistemas de Apple, URLSession habrá sido tu aliado. Pero también existe otra librería llamada AsyncHTTPClient, que permite crear un cliente HTTP en Swift. Te dejamos este artículo donde cuentan como utilizarla, y porqué puede ser más conveniente en ciertas aplicaciones.
Seguimos de lado servidor con un sospechoso habitual, esta vez el genial Paul Hudson que nos ha sorprendido con una librería para crear páginas web estáticas llamada Ignite. Pese a que ya existían otras como Plot, en esta ocasión la sintaxis es muy parecida a SwiftUI, lo que reduce la barrera de entrada para desarrolladores que ya conozcan el framework. ¡Ya no hay excusa para no crear webs usando Swift!
El año de Linux en el escritorio y el nuevo paradigma
No es lo que imaginas. Desde que se liberó el código de Swift y pasó a ser un proyecto de software libre, ya se contaba con la compatibilidad de Linux. Esto permitía hacer aplicaciones para este sistema pero en modo terminal. Sólo los framework SwiftUI, UIKit, y AppKit permiten construir aplicaciones gráficas pero siempre dentro de los sistemas de Apple. En una publicación del blog de Swift nos presentaban a Adwaita, una librería de construcción de aplicaciones con interfaz de usuario para distribuciones Linux con escrito GNOME. Webs, aplicaciones de Linux… ¡Swift lo puede todo! Esta es un wrapper de la librería libadwaita, en C++, pero con una capa de abstracción que se parece mucho a SwiftUI.
Hacemos un doble mortal para hablaros de la dificultad de no dar soporte a versiones anteriores de los sistemas y poder así adoptar las últimas novedades. Si hablamos de novedades, una a la que no se le ha dado su debida importancia es nuevo patrón Observation. Nos hemos topado con esta pieza sobre cómo este patrón y uno de los framework construidos sobre él, SwiftData, suponen un cambio profundo en la forma de construir aplicaciones. Pese a las bondades de SwiftUI y CoreData había problemas inherentes a las capacidades del lenguaje que han quedado solucionadas con el uso de las macros y el paradigma de observación.
Lo que necesitas es SwiftUI
En esta edición os traemos una serie de artículos sobre el framework para la creación de aplicaciones para dispositivos y sistemas de Apple. Aunque seguramente veamos cambios y mejoras en la WWDC, la versión actual el capaz de hacer mucho y muy bien. Toda una app completa, desde 0 y al 99% libre de UIKit.
Para el aperitivo, cortesía de la casa, una pareja de lujo: crea tu propio patrón Trigger usado por algunas APIs del propio framework, y un botón asíncrono con cancelación de tareas. Como entrante tenemos un artículo con una serie de consejos para evitar el contenedor AnyView. No nos van a meter en la cárcel si lo usamos, pero para el funcionamiento interno de SwiftUI, hay una penalización en el rendimiento.
De primero os traemos una de teclas. La API para detección de teclas es bastante sencilla y completa pero esconde algunas sombras con las que debemos tener cuidado. Como plato principal proponemos algo más contundente. Esta pieza nos explica cómo funcionan los contenedores dinámicos, así como los posibles problemas a los que nos enfrentamos y algunos trucos para solucionarlos.
Café concurrente y asíncrono pero perfectamente aislado
La sección cafetera está dedicada a nuestro querido nuevo modelo de concurrencia y asincronía en general y a la forma en la que gestiona los hilos y la protección de acceso a variables en particular. Antes de nada, vamos a refrescar cómo funciona la concurrencia estructurada con varios detalles, y una comparación con el ahora vetusto Grand Central Dispatch, que aunque es parte de Swift, no puede evitar deberle mucho a estar concebida como una API en C que resulta poco “swifty”.
Conectando con la sección anterior tenemos esta pieza dedicada a cómo usan el MainActor las vistas de SwiftUI. Y otro artículo muy curioso que intenta arrojar sobre dónde se ejecutan las funciones concurrentes. Lectura 100% recomendada porque aunque la intención de la API es abstraernos de hilos y colas, podemos tener comportamientos inesperados si no tenemos claros algunos conceptos.
Por último traemos dos artículos para proteger el acceso a recursos compartidos. Una pieza pone foco en cómo funciona el aislamiento en Swift y otra entrada en cómo compartir el estado.
Y poco más
Huele a WWDC y pronto os informaremos con más detalle del seguimiento que realizaremos del mismo. Mientras tanto, muchas gracias como siempre por el tiempo que dedicas a leernos. Por cierto: a partir de ahora tendrás la newsletter en tu email, Jobs mediante, los lunes en vez de los miércoles. Los comentarios y el feedback son más que bienvenidos, puedes hacerlo en nuestros canales habituales: correo electrónico caffeswift@gmail.com y la cuenta de X @caffeswift.
Nos leemos pronto, si Jobs quiere, y hasta entonces: un saludo y Good Apple Coding.