Lecciones aprendidas de la construcción de aplicaciones interactivas en React

Rate this content
Bookmark

Cuando los usuarios manipulan directamente objetos en la pantalla en lugar de usar controles separados para manipularlos, están más comprometidos y comprenden más fácilmente los resultados de sus acciones. Las animaciones sutiles pueden brindar a las personas una retroalimentación significativa para ayudar a aclarar el resultado de sus acciones. Pero, el diablo está en los detalles. Lo que a menudo parece simple puede ser complejo de hacer correctamente, especialmente cuando te importa la accesibilidad. Sid comparte las lecciones que ha aprendido construyendo interfaces de usuario interactivas.

This talk has been presented at React Summit Remote Edition 2021, check out the latest edition of this React Conference.

FAQ

Code Sandbox es un entorno de desarrollo online donde Sid ha trabajado, enfocándose principalmente en el desarrollo de front-end, especialmente en animaciones, diseño, gestos, y la funcionalidad de arrastrar y soltar.

Según Sid, las animaciones pueden ser muy útiles para dar contexto al usuario, ayudando a entender mejor las transiciones y estados de la interfaz, lo que mejora la experiencia de usuario en sitios web profesionales.

Saturday es un sitio web de redes sociales construido por Sid que tiene la característica particular de estar solo disponible los sábados.

Sid utiliza animaciones de desvanecimiento para que las nuevas publicaciones y respuestas se integren de manera más suave en la pantalla, proporcionando una sensación de cambio y manteniendo el contexto visual para el usuario.

Frame of motion es una herramienta que permite animar elementos en React. Sid lo utiliza para controlar animaciones de entrada y salida de elementos, mejorando la interacción del usuario con la interfaz.

Las actualizaciones optimistas son una técnica donde se asume que una operación será exitosa, mostrando inmediatamente los cambios en la interfaz mientras se realiza la validación en segundo plano. Sid simula esto usando la propiedad de retraso en Framer Motion para gestionar la aparición de comentarios.

Sid tiene en cuenta a usuarios que prefieren reducir el movimiento debido a condiciones como enfermedades vestibulares. Utiliza funcionalidades como el gancho de 'reduced motion' de Framer Motion para ajustar o eliminar animaciones y hacer la interfaz accesible para todos.

Siddharth Kshetrapal
Siddharth Kshetrapal
35 min
14 May, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Las animaciones pueden mejorar la experiencia del usuario y proporcionar contexto en el diseño de interfaces. El uso de frame y motion en React puede crear efectos de desvanecimiento suaves y mejorar la navegación. Las actualizaciones optimistas y la aparición instantánea de comentarios pueden eliminar el tiempo de espera y mejorar la experiencia del usuario. El movimiento se puede utilizar de varias formas para dar contexto y mejorar la experiencia del usuario. Se debe tener en cuenta la accesibilidad y el rendimiento al implementar animaciones. Elegir la biblioteca adecuada, como frame of motion o React Spring, puede simplificar la implementación de animaciones. Las animaciones pueden mejorar el rendimiento percibido e influir en la percepción de velocidad de los usuarios.

1. Introducción a las animaciones de interfaz

Short description:

Hola, soy Sid y hago muchas cosas aquí y allá. He estado explorando qué hace que una interfaz sea fácil de usar. Las animaciones se pueden utilizar para dar contexto al usuario cuando se usan con buen gusto. Permíteme mostrarte un ejemplo con mi sitio web de redes sociales llamado Saturday. Actualmente, la interfaz carece de suavidad, por lo que la primera mejora que haremos es desvanecer los elementos.

Hola, soy Sid y hago muchas cosas aquí y allá, así que lo he puesto todo en la pantalla para ti. Pero lo que quiero hablar contigo es el trabajo que he realizado en Code Sandbox durante el último año y medio. La mayor parte de ese trabajo se centró en el frente del front-end y me enfoqué en las animations, el design, los gestos, el arrastrar y soltar, ese tipo de cosas. Y quiero hacerles esta pregunta. ¿Qué hace que una interfaz sea fácil de use? Esto es lo que he estado explorando durante el último año. Y hay respuestas comunes, como que debe estar bien diseñada, debe ser minimalista, sin desorden en la pantalla. Debe ser rápida para que cuando uses la interfaz, se sienta ágil, se cargue rápidamente, haya retroalimentación. Pero algo que a menudo se pasa por alto es el uso del movimiento o las animations para ayudarte. Y las animations se clasifican en esta categoría donde se utilizan para sitios web caprichosos o, ya sabes, si estás haciendo un sitio web de películas o juegos, entonces podrías usarlas. Pero estoy aquí para decirte que las animations se pueden utilizar para dar contexto al usuario cuando se usan con buen gusto, y definitivamente las quieres en tus sitios web profesionales también. Así que suficiente charla. Voy a mostrarte a qué me refiero. Así que construí esta especie de sitio web de redes sociales. Se llama Saturday, y la lógica es que solo está abierto los sábados. Y esta es mi, esta es mi feed. Tengo algunas publicaciones de mis amigos, y permíteme mostrarte cómo se ve eso. Así que cuando hago clic en una publicación, simplemente se abre. Simplemente aparece. Y luego aparece esta respuesta. Y si hago clic en la segunda, va a la página de feed. Va a la página de la publicación y puedes ver cómo cambia la URL y simplemente aparece. Así que eso se ve un poco extraño. Permíteme ir a pantalla completa en esto. Y luego las respuestas también simplemente aparecen. Entonces, eso realmente no da la sensación de que esta es una interfaz con la que estás interactuando. No se siente suave. Así que lo primero que haremos es desvanecerlos. Y eso, creo que es bastante común.

2. Usando Frame y Motion para animaciones de desvanecimiento

Short description:

Puedes usar frame y motion para animaciones CSS en React. Al usar motion.div, puedes definir los estados inicial y animado de un elemento. Esto crea un efecto de desvanecimiento suave al abrir publicaciones y comentarios, proporcionando una sensación de contexto y cambio. Al implementar este efecto de desvanecimiento, puedes mejorar la experiencia del usuario y mejorar la navegación entre diferentes secciones de tu sitio web.

cosa en la web. Lo ves bastante a menudo. Y puedes, por supuesto, hacer cualquiera de los ejemplos que te muestro con CSS animaciones. Pero voy a usar frame y motion para mis ejemplos solo porque es lo que he estado usando durante un tiempo. Y si ya estás en el mundo de React, definitivamente deberías echar un vistazo a frame of motion si no lo has hecho.

Entonces, la forma en que funciona frame of motion es que puedes tomar cualquier elemento y puedo decir motion.div. Y si usas styled components o algo similar, la API es similar a eso. Donde básicamente puedes obtener cualquier elemento de motion y usarlo. Solo voy a usar motion.div porque eso es lo que era. Y como estoy usando una biblioteca de componentes aquí, voy a pasarlo como prop 'as' y eso es solo para mostrar que frame of motion se puede combinar bien con tus bibliotecas de componentes. Entonces me da acceso a estas dos props. La primera es 'initial' y la segunda es 'animate'. Y puedo decir cuál es el estado inicial y a qué debe animarse. Por supuesto, hay muchas otras props, pero esto es suficiente para comenzar. Ahora, cuando abro una publicación, se desvanece en lugar de simplemente aparecer, lo que te da esta sutil sensación de que algo ha cambiado. Hay algún contexto aquí. Incluso la primera publicación, aunque esté en su lugar, solo ese pequeño destello que se desvanece te da la sensación de que has navegado a un lugar diferente. Así que hagamos eso también con nuestros comentarios. Porque ahora mismo los comentarios o respuestas simplemente aparecen, como si nada. Así que voy a cambiar de rama porque ya he escrito el código para ello. Permíteme guardar esto y cambiar a esta rama, solo desvanecer. Así que esta es mi rama donde todo se desvanece. Y puedes ver cuando paso de una publicación a otra, las respuestas se desvanecen sutilmente. Y esto está bien. Aún no es genial. Otro lugar donde puedes ver esto es si tienes nuevas publicaciones, entonces se desvanecen y te da una sensación de que algo ha cambiado aunque hayas perdido tu posición allí. Así que hagamos algo al respecto primero. Voy a recargar. Y este es un patrón común que también se ve en Twitter y estoy seguro de que tienen sus razones para ello. Cuando cargas más publicaciones o cuando eligen cargar más publicaciones para ti, las publicaciones aparecen al frente o

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Un Marco para Gestionar la Deuda Técnica
TechLead Conference 2023TechLead Conference 2023
35 min
Un Marco para Gestionar la Deuda Técnica
Top Content
Today's Talk discusses the importance of managing technical debt through refactoring practices, prioritization, and planning. Successful refactoring requires establishing guidelines, maintaining an inventory, and implementing a process. Celebrating success and ensuring resilience are key to building a strong refactoring culture. Visibility, support, and transparent communication are crucial for addressing technical debt effectively. The team's responsibilities, operating style, and availability should be transparent to product managers.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
React Summit US 2023React Summit US 2023
28 min
El Potencial Caprichoso de los Marcos de Trabajo de JavaScript
Top Content
The speaker discusses the whimsical and detailed work of Stripe, particularly their interactive and dynamic pages. They explain the use of React for building whimsical details and tracking mouse position. The speaker introduces React Spring for smooth animation and React3 Fiber for creating a 3D egg model. They also mention the use of Framer Motion and React server components for animating CSS properties.
Construyendo un Asistente AI Activado por Voz con Javascript
JSNation 2023JSNation 2023
21 min
Construyendo un Asistente AI Activado por Voz con Javascript
Top Content
This Talk discusses building a voice-activated AI assistant using web APIs and JavaScript. It covers using the Web Speech API for speech recognition and the speech synthesis API for text to speech. The speaker demonstrates how to communicate with the Open AI API and handle the response. The Talk also explores enabling speech recognition and addressing the user. The speaker concludes by mentioning the possibility of creating a product out of the project and using Tauri for native desktop-like experiences.
Una Guía Práctica para Migrar a Componentes de Servidor
React Advanced 2023React Advanced 2023
28 min
Una Guía Práctica para Migrar a Componentes de Servidor
Top Content
React query version five is live and we'll be discussing the migration process to server components using Next.js and React Query. The process involves planning, preparing, and setting up server components, migrating pages, adding layouts, and moving components to the server. We'll also explore the benefits of server components such as reducing JavaScript shipping, enabling powerful caching, and leveraging the features of the app router. Additionally, we'll cover topics like handling authentication, rendering in server components, and the impact on server load and costs.
Solucionando Problemas de Rendimiento en React
React Advanced 2023React Advanced 2023
22 min
Solucionando Problemas de Rendimiento en React
Top Content
This Talk discusses various strategies to improve React performance, including lazy loading iframes, analyzing and optimizing bundles, fixing barrel exports and tree shaking, removing dead code, and caching expensive computations. The speaker shares their experience in identifying and addressing performance issues in a real-world application. They also highlight the importance of regularly auditing webpack and bundle analyzers, using tools like Knip to find unused code, and contributing improvements to open source libraries.

Workshops on related topic

Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Node Congress 2024Node Congress 2024
152 min
Construye Aplicaciones Modernas Utilizando GraphQL y Javascript
Featured Workshop
Emanuel Scirlet
Miguel Henriques
2 authors
Ven y aprende cómo puedes potenciar tus aplicaciones modernas y seguras utilizando GraphQL y Javascript. En este masterclass construiremos una API de GraphQL y demostraremos los beneficios del lenguaje de consulta para APIs y los casos de uso para los que es adecuado. Se requiere conocimiento básico de Javascript.
Cómo crear arte generativo increíble con código JavaScript simple
JS GameDev Summit 2022JS GameDev Summit 2022
165 min
Cómo crear arte generativo increíble con código JavaScript simple
Top Content
WorkshopFree
Frank Force
Frank Force
En lugar de dibujar manualmente cada imagen como en el arte tradicional, los artistas generativos escriben programas que son capaces de producir una variedad de resultados. En esta masterclass aprenderás cómo crear arte generativo increíble usando solo un navegador web y un editor de texto. Comenzando con conceptos básicos y avanzando hacia la teoría avanzada, cubriremos todo lo que necesitas saber.
Construyendo una Aplicación de Shopify con React & Node
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Construyendo una Aplicación de Shopify con React & Node
Top Content
WorkshopFree
Jennifer Gray
Hanna Chen
2 authors
Los comerciantes de Shopify tienen un conjunto diverso de necesidades, y los desarrolladores tienen una oportunidad única para satisfacer esas necesidades construyendo aplicaciones. Construir una aplicación puede ser un trabajo duro, pero Shopify ha creado un conjunto de herramientas y recursos para ayudarte a construir una experiencia de aplicación sin problemas lo más rápido posible. Obtén experiencia práctica construyendo una aplicación integrada de Shopify utilizando el CLI de la aplicación Shopify, Polaris y Shopify App Bridge.Te mostraremos cómo crear una aplicación que acceda a la información de una tienda de desarrollo y pueda ejecutarse en tu entorno local.
Construye una sala de chat con Appwrite y React
JSNation 2022JSNation 2022
41 min
Construye una sala de chat con Appwrite y React
WorkshopFree
Wess Cope
Wess Cope
Las API/Backends son difíciles y necesitamos websockets. Utilizarás VS Code como tu editor, Parcel.js, Chakra-ui, React, React Icons y Appwrite. Al final de este masterclass, tendrás los conocimientos para construir una aplicación en tiempo real utilizando Appwrite y sin necesidad de desarrollar una API. ¡Sigue los pasos y tendrás una increíble aplicación de chat para presumir!
Problemas difíciles de GraphQL en Shopify
GraphQL Galaxy 2021GraphQL Galaxy 2021
164 min
Problemas difíciles de GraphQL en Shopify
WorkshopFree
Rebecca Friedman
Jonathan Baker
Alex Ackerman
Théo Ben Hassen
 Greg MacWilliam
5 authors
En Shopify a gran escala, resolvemos algunos problemas bastante difíciles. En este masterclass, cinco oradores diferentes describirán algunos de los desafíos que hemos enfrentado y cómo los hemos superado.

Tabla de contenidos:
1 - El infame problema "N+1": Jonathan Baker - Vamos a hablar sobre qué es, por qué es un problema y cómo Shopify lo maneja a gran escala en varios APIs de GraphQL.
2 - Contextualizando APIs de GraphQL: Alex Ackerman - Cómo y por qué decidimos usar directivas. Compartiré qué son las directivas, qué directivas están disponibles de forma predeterminada y cómo crear directivas personalizadas.
3 - Consultas de GraphQL más rápidas para clientes móviles: Theo Ben Hassen - A medida que tu aplicación móvil crece, también lo harán tus consultas de GraphQL. En esta charla, repasaré diversas estrategias para hacer que tus consultas sean más rápidas y efectivas.
4 - Construyendo el producto del futuro hoy: Greg MacWilliam - Cómo Shopify adopta las características futuras en el código actual.
5 - Gestión efectiva de APIs grandes: Rebecca Friedman - Tenemos miles de desarrolladores en Shopify. Veamos cómo estamos asegurando la calidad y consistencia de nuestras APIs de GraphQL con tantos colaboradores.
De 0 a Autenticación en una Hora para tu Aplicación JavaScript
JSNation 2023JSNation 2023
57 min
De 0 a Autenticación en una Hora para tu Aplicación JavaScript
WorkshopFree
Asaf Shen
Asaf Shen
La autenticación sin contraseña puede parecer compleja, pero es fácil de agregar a cualquier aplicación utilizando la herramienta adecuada.
Mejoraremos una aplicación JS de pila completa (backend Node.js + frontend Vanilla JS) para autenticar usuarios con contraseñas de un solo uso (correo electrónico) y OAuth, incluyendo:
- Autenticación de usuario: Gestión de interacciones de usuario, devolución de JWT de sesión / actualización- Gestión y validación de sesiones: Almacenamiento seguro de la sesión para solicitudes posteriores del cliente, validación / actualización de sesiones
Al final del masterclass, también abordaremos otro enfoque para la autenticación de código utilizando Flujos de Descope en el frontend (flujos de arrastrar y soltar), manteniendo solo la validación de sesión en el backend. Con esto, también mostraremos lo fácil que es habilitar la biometría y otros métodos de autenticación sin contraseña.