Lo nuevo del WWDC 2021 | Parte 2
Segunda parte del resumen del WWDC 2021: Swift Refactoring, AttributedString con Markdown, las nuevas funciones de Xcode 13, AsyncImage y Swift Package Collections.
Esta es la continuación del post anterior. En este vamos a profundizar más en temas del lenguaje, sobre todo en SwiftUI donde Apple ha mostrado más mejoras.
6. Swift Refactoring
Revisemos este apartado en la documentación de Apple: nos dice prácticamente que podemos aplicar “refactor” a una fracción del código para migrarlo al tipo async. Seguramente no aplicará a todos los casos, pero se agradece el cambio y me parece interesante para adoptar async de manera más rápida.
7. Soporte Markdown para AttributedString en SwiftUI
Ahora podemos usar una cadena con atributos en SwiftUI usando el formato de Markdown:
let cadena = try AttributedString(markdown: "page link")
Documentación de Apple: AttributedString
8. Nuevas funciones de Xcode 13
Funciones de colaboración. Xcode ahora agrega nuevas funciones de colaboración para el equipo de desarrollo, compatibles con Xcode Cloud, GitHub, Bitbucket y GitLab. Ahora podrás iniciar, revisar, hacer merge y crear pull requests desde Xcode, ver los comentarios de tus compañeros de trabajo directamente en el código y comparar de manera rápida versiones diferentes.
Comentarios en el código. Esta función también cae excelente. Actualmente lo resolvemos desde la plataforma donde estemos trabajando, pero tenerlo directamente en el IDE ahorrará mucho tiempo.
Comparación rápida. Ahora podrás tener una vista que te permitirá comparar entre dos versiones del código, directamente desde el contexto actual de edición.
Cloud Signing. Ahora solo tendremos que colocar nuestro Apple ID y nuestra Mac estará configurada para desarrollo y despliegue basado en los roles que actualmente tengamos asignados en nuestra cuenta de desarrollo, todo de manera automática.
Modo Vim. Muchas combinaciones de teclas y modos de edición familiares a los usuarios de Vim estarán soportados directamente en el editor de Xcode. En la barra de abajo podemos ver los indicadores de en qué modo estamos trabajando.
Reportes de caídas y comentarios. Todos los reportes de caídas que nos envían los usuarios desde TestFlight aparecerán en la sección Organizer en Xcode en tan solo unos minutos, incluyendo los comentarios completos con el feedback de los testers. El log de la caída será mostrado al darle clic y te enviará también de manera directa a la línea de código donde surgió la falla.
9. Versión de compilación
Ahora la versión que se envíe a revisión a la tienda podrá detectar si tenemos un número válido de compilación. Si no es el caso, o tenemos uno incorrecto que se repite a uno anterior, nos dará la opción de aumentarlo de manera automática, sin necesidad de subir una nueva versión.
Este creo que ayudará mucho también a evitar esos molestos intentos de subir de nuevo si se nos olvidó aumentar el número de compilación.
10. Swift Package Manager Collections
Están disponibles desde ya. Es una excelente adición al actual manejador de dependencias de Apple y nos permite usar y especificar colecciones de dependencias, principalmente para descubrir paquetes y decidir cuáles son mejores para nuestro proyecto.
Está diseñado para tener listas de proveedores de paquetes de confianza, en lugar de estar buscando por internet a ver qué encuentras.
Actualmente ya hay una lista de proveedores oficiales:
- Swift Server Workgroup: Forman parte del proyecto de Swift y han publicado su colección de proyectos incubados por el mismo grupo. swift.org/sswg
- Swift Package Index: Crearon un sitio web que de manera dinámica creará las colecciones de los paquetes de Swift. swiftpackageindex.com
- Apple’s OSS Swift Package: La colección oficial, vendrá incluida de manera predefinida con Xcode 13.
Por último, también podrás crear tu propia colección y compartirla con todo el mundo. Estará utilizando un proceso de firmado similar al de las apps, para verificar autenticidad e integridad de los paquetes.
11. AsyncImage
Este es un nuevo control para SwiftUI y nos permitirá establecer imágenes remotas en nuestras vistas. Este control descargará por nosotros la imagen y la colocará de manera automática. Podemos tener control en cómo manejar los resultados, colocar un placeholder en caso de error, todo a través del mismo control:
AsyncImage(url: model.imageURL)
Con estos increíbles cambios concluimos esta serie de posts. Sin duda en el futuro iré trabajando sobre algunos temas en específico y comenzaré a escribir tutoriales sobre lo nuevo visto en la WWDC. Saludos a todos.