Apple y la Experiencia de Usuario en la WWDC18

En la WWDC18 también se habló del diseño en las notificaciones para una experiencia de usuario óptima

La conferencia de Apple cerró sus puertas. Y los dos últimos días del evento los dedicó a sesiones de carácter más técnico y a la experiencia de usuario, así que nuestro equipo Movetia pudo profundizar en las interioridades de la plataforma y aprender nuevas técnicas y buenas prácticas. Veamos las nuevas características que nos ha traído la WWDC18:

XCode is your friend

WWDC18 XCode Movetia

No podíamos pasar de largo la presentación de “Building Faster in XCode”, donde los ingenieros del IDE nos han enseñado métodos de mejora en la compilación de nuestros proyectos. Una de las propuestas es la de configurar la compilación de las dependencias de un proyecto de manera que se puedan ejecutar en paralelo, lo cual convierte una compilación secuencial en una superpuesta, ahorrando de esta manera mucho tiempo de desarrollo.

Por otro lado, en sintonía a lo anterior, también hemos visto cómo resolver y simplificar nuestro árbol de dependencias para favorecer los tiempos de compilación, consiguiendo trabajar en paralelo con las tareas de construcción.

En la sesión “Behind the Scenes of the Xcode Build Process” hemos recibido un par de lecciones de alto nivel de lo que ocurre con nuestras aplicaciones al transformar el código fuente en el ejecutable final. Un ápice de conocimiento necesario para interpretar errores o problemas que surjan a la hora de compilar y empaquetar nuestro código.

“Connecting people. Delivering information”

Una de las sesiones a la que hemos asistido los últimos días ha venido de la mano de diseñadores de Apple, los cuales nos han presentado qué debemos tener en cuenta en el diseño de las notificaciones para que la experiencia sea óptima para el usuario. Una de las principales frases con la que Movetia está totalmente alienada, “Connecting people. Delivering information“, se convierte también en una de las premisas de Apple: las notificaciones conectan a la gente, por lo que la experiencia del usuario con ellas ha de ser muy buena. Han puesto mucho énfasis en “respetar la atención del usuario” con el uso de las notificaciones (estamos de acuerdo, no pueden ser un bombardeo constante hacia el usuario).

De entre las recomendaciones para una buena experiencia de usuario en Apple, destacan:
1.- no notificar en el primer arranque de la aplicación
2.- explicar por qué tus notificaciones tienen valor para el usuario (a la hora de pedir permiso)
3.- presentarlas en un momento relevante
4.- proporcionar en tus Apps la posibilidad de configurarlas para que el usuario pueda elegir qué tipos de notificaciones e información de la App son de su interés

Welcome Network.framework!

Este año la solución al complejo mundo de desarrollo con sockets (conexiones UDP o TCP directas) viene con el Network Framework de Apple. Este framework era el utilizado internamente por la capa URLSession y ahora Apple lo ha abierto a los desarrolladores para que lo podamos utilizar directamente en nuestras apps.

Tenemos que decir que, con este framework, el desarrollo de comunicación de red de bajo nivel (sockets) es muy simple e intuitivo. Y el ejemplo presentado en la sesión de la WWDC18 mostraba una implementación sencilla y reducida.

¿Qué aplicaciones se podrán beneficiar con el Network Framework de Apple? Juegos, mensajería y app’s de retransmisión de video en directo. Y todo esto, ¡disponible este año!

App Store Connect’ed

Otra de las APIs nuevas presentadas en esta WWDC18 ha sido la relacionada con App Store Connect (nuevo nombre para iTunes Connect). En esta ocasión, no se trata de un nuevo framework, sino de la existencia de una API REST que permite la gestión de las funcionalidades presentes en TestFlight y AppStore. Esta API sigue todos los estándares de la industria de REST, incluso a nivel de autenticación, la cual se basa en JWT (Json Web Token). Store Connect, y el hecho de que utiliza los estándares REST, abre el abanico de posibilidades de utilizar cualquier lenguaje de programación para gestionar tu AppStore Connect: usuarios, grupos de usuarios, provisioning profiles, aplicaciones, etc…

Se ha abierto la posibilidad de integrar en los sistemas comunes de Integración continua la gestión y publicación de Apps. ¡Bien hecho, Apple! La previsión es que podamos disfrutar de ella a partir de este verano.

Avances en el reconocimiento y seguimiento de objetos

WWDC18 ARKit2 Movetia

Hemos asistido a una explicación más en detalle de las novedades de ARKit y el Vision.framework y su funcionamiento a la hora de realizar reconocimiento y seguimiento de objetos en el mundo real. Como siempre, Apple ha conseguido simplificar la vida a los desarrolladores, ocultándonos toda la complejidad que existe en los algoritmos de detección y de tracking (hay Machine Learning por medio). Cualquiera podría hacerlo con tres líneas de código (literalmente).

Hay que decir, que estas dos tecnologías no sólo se han actualizado aprovechando iOS12, sino que desde que salieron hace un año, se han ido incorporando mejoras. Entre las mejoras existentes con iOS12 destacamos un nuevo FaceDetector, que con la nueva versión de Vision es capaz de detectar un número más elevado de caras en una imagen que en la versión anterior. Y ahora es agnóstico respecto a la orientación (¡puede detectar caras boca abajo!).

Adicionalmente a las novedades, se ha explicado el funcionamiento interno, así como las recomendaciones de buenas prácticas de utilización del framework.

Como viene siendo una constante en esta WWDC18, Apple también ha trabajado el rendimiento en estos sistemas, tanto en coste de proceso de CPU y/o GPU, como en consumo de memoria. Tampoco se olvidan de la privacidad y todo el proceso de reconocimiento de caras y elementos, que ocurre íntegramente en el dispositivo local, asegurando la seguridad y privacidad de los datos de los usuarios.

Algo de accesibilidad

WWDC18 accesibilidad VoiceOver Apple Movetia

En la sesión “VoiceOver: App Testing beyond the visual” vimos cómo podemos implementar VoiceOver en nuestra app para que sea más inclusiva. Implementar la accesibilidad en nuestras apps, puede ayudarnos a detectar errores y mejorar la experiencia de usuario a todo el mundo, no sólo a los usuarios que usan VoiceOver.

También pudimos repasar algunos gestos útiles para probar nuestra app con VoiceOver y así poder asemejar los test realizados por los equipos de QA al uso final de los usuarios.

En la sesión “Deliver an Excepcional Accessibility Experience” hemos profundizado en las funciones de VoiceOver para conseguir, con unas pocas líneas más de código, que nuestra app ofrezca una accesibilidad excepcional, aumentando la velocidad de navegación y preparando nuestras pantallas para el uso habitual de las herramientas y buenas prácticas en general de accesibilidad.

Code, code and code

Hemos asistido a unas cuantas sesiones centradas en buenas prácticas de desarrollo y de utilización de las herramientas. En ellas hemos podido profundizar en el uso de las colecciones con trucos específicos para ganar rendimiento en nuestras aplicaciones. Nos han mostrado todos los tipos de colecciones que existen, cómo podemos usarlas y qué operaciones podemos emplear para sacar el mayor rendimiento según la situación. Pudimos repasar también los errores más comunes cometidos a la hora de programar las colecciones y cómo podemos exprimir la potencia de Swift para mejorar nuestro código, hacerlo más claro y fácil de mantener.

Y como somos humanos y cometemos errores, Apple nos ha mostrado cómo analizar en detalle los logs de los crashes, qué información útil contienen y cómo podemos usarla para poder averiguar el origen del crash y resolverlo. Además, nos ha recordado a los desarrolladores las herramientas que nos proporciona XCode para detectar errores de memoria y errores debidos a multithreading difíciles de reproducir.

Y para terminar con la intensa semana de trabajo, hemos asistido a una sesión en la que nos han enseñado técnicas para hacer nuestro código más testable, de manera unitaria aprovechando protocolos, valores por defecto e inyección de dependencias. Además de conocer maneras de reducir el tiempo de ejecución de nuestros test para minimizar el tiempo que empleamos en esta tarea.

Y hasta aquí las crónicas acerca de las conferencias y sesiones de la WWDC18. Para Movetia ha sido una experiencia más que provechosa, donde hemos aprendido muchísimo y hemos testeado “lo mejor” de “los mejores”. Nos llevamos a casa nuevas y mejores implementaciones para nuestros clientes, lo que se convierte en nuevas y mejores oportunidades de ofrecer un resultado óptimo.

Echando ya la cuenta atrás para la próxima edición del WWDC19. ¡Un saludo!

Acerca de: Comunicación Movetia

Mucho más que diseño y desarrollo. Transformamos procesos empresariales en servicios digitales eficientes para un mundo en movimiento.