ux vs dx

Esta, quizás sea una de las preguntas más complejas que puedas tener en tu mente a la hora de tomar una decisión: ¿Es necesario sacrificar la experiencia del usuario (UX), por mi propia experiencia como desarrollador (DX)?. La respuesta a continuación…

Como desarrollador móvil, es comprensible centrarse en la perspectiva del desarrollador de que la fragmentación y la escritura de la IU son dos veces una molestia.

Desde la perspectiva del usuario, la fragmentación es lo que hace que las diferentes plataformas sean únicas. Los juegos pueden evitar tener la misma interfaz de usuario en todas las plataformas porque los usuarios esperan que los juegos sean su propio mundo, no limitado a las convenciones de la plataforma. Y, aunque las convenciones de la interfaz de usuario de la plataforma han visto convergencia, todavía son diferentes. Cuando las aplicaciones que no son juegos no se ajustan, se perciben como una aplicación de Linux que se ejecuta en Windows; o una aplicación de iOS que se ejecuta en Android, o en algún lugar del valle misterioso.

Las aplicaciones no deben conformarse al 100%

Desarrollo de apps

Tienen marcas diferentes, casos de uso, flujos, audiencias, etc., pero requieren un diseño deliberado tanto para qué elementos se comparten como para qué divergen. Ahí es donde las IU nativas se convierten en un activo. Sí, los desarrolladores tienen más en qué pensar y tratar. Es difícil para los desarrolladores mantener las cosas actualizadas y cumplir con las expectativas de los usuarios de diferentes sistemas operativos y versiones de sistemas operativos. Pero también puede hacer la mejor interfaz de usuario posible para cada plataforma.

Apple , Google y Microsoft invierten mucho en herramientas de interfaz de usuario estándar, bibliotecas y widgets para que cuando use una aplicación en iOS, Android, MacOS o Windows, haya una cierta consistencia de calidad y experiencia, y cuando desarrollar para ellos, está utilizando la mejor herramienta para el trabajo.

Es posible crear una aplicación terrible sin importar las herramientas que use. Flutter and React Native puede hacer que sea más fácil crear una aplicación decente en todas las plataformas, pero debes convertirte en nativo para crear una aplicación excelente en todas las plataformas.

La historia de la IU de escritura, ejecución y ejecución en cualquier lugar y compartida es volátil. La historia del código compartido, debajo de la interfaz de usuario, es exitosa. Kotlin Multiplatform se centra en el código compartido debajo de la interfaz de usuario y le permite utilizar las herramientas proporcionadas por la plataforma en toda su extensión. Eso lo hace doblemente menos arriesgado: menos riesgo de hacer una interfaz de usuario pobre y menos riesgo de quedar encerrado en una tercera parte (por ahora, Flutter es, en el mejor de los casos, la segunda parte).

Volviendo al tema de la interfaz de usuario. Ya hay intentos de bibliotecas de UI compartidas creadas en KMP, y habrá más y habrá otras que ganarán popularidad y madurez. El hecho de que ya pueda escribir código UIKit con Kotlin lo hace más fácil.

Nuevamente, tenga cuidado, sea deliberado, conozca a sus usuarios.

El hecho de que pueda compartir la IU no significa que deba hacerlo. Android, iOS y Web son muy diferentes. Pero aprendimos de Catalyst que los usuarios incluso notan la diferencia entre iPad y Mac. La protesta impidió que un desarrollador prominente lanzara un puerto rápido a Mac y quedó claro que Apple debería haber proporcionado una mejor orientación sobre las diferencias de interfaz de usuario esperadas .

Por último, recuerde que Apple y Google ponen mucho dinero, tiempo y esfuerzo en sus plataformas. Quieren que las personas compren sus dispositivos, lo que significa una buena experiencia de usuario (UX) y necesitan que los desarrolladores creen más aplicaciones para cada plataforma. Esto significa una buena experiencia de desarrollo (DX). Jetpack Compose está madurando, Swift UI está madurando. Kotlin Multiplatform tampoco te impide invertir en nada. Jetpack Compose ya es Kotlin First, y SwiftUI + KMP podría ser una experiencia de desarrollador ideal para crear experiencias de usuario ideales en iOS también.