Mi favorito fue el gráfico de líneas de área con etiqueta de ventas a lo largo del tiempo. Quiero decir, si estuviera usando un lector de pantalla, no estoy seguro de que estaría contento con esta descripción porque en realidad no me ayuda a entender cómo van mis ventas.
Incluso cuando los gráficos eran solo instancias del mismo componente utilizando nuestros componentes internos que construimos, porque la API se veía algo así, como pueden ver, tenemos que pasar muchas props diferentes para que un gráfico tenga un aspecto específico y estas props tenían que repetirse para cada instancia del gráfico. Por lo tanto, era muy fácil para un desarrollador, por ejemplo, decir que el margen horizontal era 30 en lugar de 20 y ahí lo tienes, los gráficos ahora no se ven iguales.
Entonces, para resolver todos esos problemas, comenzamos a crear una colección de componentes de React que no solo tenían los mismos estilos visuales, sino que también se enfocaban en cosas que son muy importantes para nosotros. Como el diseño de movimiento, por ejemplo, porque creemos que a través de la animación podemos guiar la vista de un usuario y ayudarlo a comprender mejor el conjunto de datos, reduciendo la carga cognitiva. También nos enfocamos en la accesibilidad. Por ejemplo, al permitir que nuestros usuarios resalten una serie de datos específica en un gráfico, les ayudamos a aquellos que tienen deficiencias en la visión del color a hacer la conexión en términos de lo que esa serie de barras específica significa, sin tener que depender de los colores. También nos enfocamos en implementar la accesibilidad para lectores de pantalla. Este gráfico de líneas, por ejemplo, utilizamos filas de área en el marcado SVG para que un lector de pantalla pueda acceder a los puntos de datos que alimentan el gráfico de líneas e interactuar con él como si fuera una etiqueta. Por lo tanto, pueden ver que aquí estoy navegando en la fila del 2 de abril, y podemos navegar por las diferentes celdas a través de filas y columnas como lo haríamos si estuviéramos interactuando con una tabla HTML simple.
Y, por supuesto, Shopify tiene muchas marcas diferentes que utilizan estilos visuales diferentes. Como mencioné antes, planeamos lanzar la biblioteca como código abierto pronto, por lo que queríamos que la biblioteca fuera lo suficientemente flexible como para que las personas pudieran implementar su propia identidad visual en los gráficos, pero también queríamos mantener las cosas consistentes para quienes usaran nuestros gráficos. Por lo tanto, no es necesario pasar props a cada uno de estos componentes. Tenemos un lugar centralizado donde puedes definir el tema que deseas usar y se aplica automáticamente a todas las instancias de un gráfico en tu aplicación. Hablaremos un poco más para explorar más a fondo cómo funciona eso un poco más adelante.
Entonces, en enero de 2020, Shopify anunció que React Native era el futuro. Y desde entonces nos hemos centrado en escribir nuestras aplicaciones móviles con React Native y todas nuestras nuevas funciones con React Native. Para nuestro equipo, esta fue una oportunidad muy buena para aprovechar las cosas que habíamos aprendido mientras construíamos Polaris Viz para la web y entender cómo podríamos crear experiencias muy buenas para dispositivos móviles con React Native. Lo primero que pensamos fue, bueno, podemos simplemente crear una nueva biblioteca, llamarla Polaris Viz Native, y eso es todo. Sin embargo, eso fue mucho trabajo. Habíamos estado trabajando en Polaris Viz durante algunos años en ese momento para llevar la biblioteca a donde estaba, y comenzar desde cero no podíamos reutilizar todas esas cosas, ¿verdad? Entonces, ¿qué pasaría si pudiéramos extraer el código específico de la plataforma, el código independiente de la plataforma de Polaris Viz para la web, en una tercera biblioteca, Polaris Viz core, y luego tanto React Native, la versión de Polaris Viz para la web y la versión de Polaris Viz para React Native podrían tener Polaris Viz core como una dependencia? ¿Qué exactamente podríamos compartir? Así que hablemos un poco sobre las similitudes y diferencias entre React y React Native.
En React Native, creamos componentes utilizando etiquetas HTML. Como divs y p para párrafos, por ejemplo. En React Native, por otro lado, tenemos que importar el marcado de la biblioteca React Native. Esto significa que tenemos, por ejemplo, vistas en lugar de divs y texto en lugar de p. Como todavía estamos en el mundo de React, podemos usar todas las funcionalidades comunes de React, como los hooks, por ejemplo. Puedes ver que estoy usando el useState hook exactamente de la misma manera, tanto en la web como en React Native. Hay algunas diferencias en cuanto a cómo adjuntamos eventos al marcado, como puedes ver aquí en el botón HTML, estoy pasando setCount a OnClick, y en el botón Native, se lo paso a OnPress.
Comments