Saltar enlaces

Hápticos: cómo crear una solución multiplataforma consistente y alinear su código con Figma

Cómo tradujimos la semántica háptica de Apple en tres parámetros numéricos que funcionan igualmente bien en iOS, Android y la web, y reflejan nuestros componentes Figma.

Formas geométricas abstractas utilizadas como portada de artículo universal.

Actualmente estoy trabajando en un gran sistema de diseño. SDUI proyecto, en este artículo quiero compartir mi experiencia implementando hápticos en aplicaciones: explore los desafíos que puede encontrar y llegue a una solución consistente en tres plataformas: iOS, Android y web móvil.

En este artículo, haré un viaje paso a paso desde el caos (“cada plataforma hace lo suyo”) hasta un sistema unificado de ajustes preestablecidos hápticos configurados por diseñadores en Figma y entregados a los desarrolladores como JSON.

Pero primero, definamos brevemente qué es el tacto.

Haptics es una tecnología de retroalimentación táctil utilizada en dispositivos móviles, controladores de juegos y dispositivos electrónicos portátiles para mejorar la experiencia del usuario a través del tacto. Esta interfaz ya no se basa únicamente en señales visuales o sonoras, sino que “responde” al usuario mediante retroalimentación física (ligeras vibraciones, pulsos o micromovimientos).

Esto se ha convertido en la norma en las aplicaciones modernas y es una parte integral de la experiencia diaria de los usuarios. Pero cuando profundiza, encontrará que las plataformas adoptan enfoques muy diferentes para la retroalimentación háptica y no existe una solución multiplataforma lista para usar.

No voy a reafirmar los principios básicos aquí – Avinash Bussa “Las tácticas mejoran la experiencia del usuario” Si es nuevo en el tema, UX Collective en UX Collective es un sólido libro introductorio. En este artículo, me centraré en cuestiones prácticas: cómo hacer que los hápticos sean consistentes en iOS, Android y la web móvil, y cómo hacer que los componentes de Figma sean consistentes con su código.

Dónde y por qué se necesita el tacto

Antes de elegir un ajuste preestablecido, es importante determinar en qué escenarios entrarán en juego los hápticos. Utilicé Mobbin para recopilar materiales de referencia y agrupar casos de uso por tipo de interacción; esta agrupación luego ayudó a mapear ajustes preestablecidos específicos.

Ejemplos de retroalimentación háptica en aplicaciones móviles, agrupadas por tipos de interacción como clics, deslizamientos y arrastres
paradigma táctil

hacer clic/presionar— Botones, celdas, pancartas. La sensación táctil confirma la acción y crea la sensación de un botón “físico”. Los usuarios no tienen que adivinar si hicieron clic: lo sienten. Por ejemplo, envía un mensaje en Telegram o dale me gusta a una publicación en Instagram.

deslizar— Gestos en tarjetas, hojas, pestañas. La señal táctil alcanza un umbral: “Un poco más y la tarjeta saldrá volando”. Ayuda a controlar los gestos sin mirar la pantalla. Un ejemplo clásico es deslizar el dedo por Tinder.

arrastrar y soltar— Ordenar listas, mover elementos. El sentido del tacto crea la ilusión de peso y resistencia, confirmando que el objeto está fijo en su nueva posición. Por ejemplo, reorganice los widgets en la pantalla de inicio de iOS.

Errores y limitaciones— Ingrese contenido no válido o envíe un formulario no válido. Comentarios instantáneos sin tener que leer el texto: los usuarios sabrán que algo salió mal incluso antes de ver el mensaje. Este patrón es universal y reduce la carga cognitiva.

Éxito/Confirmación— Completa pagos, envía formularios, logra ciertos objetivos en el juego. Proporcionar refuerzo emocional y un punto final claro para la acción.

Límites de desplazamiento y contenido— Efecto rebote al llegar al final de la lista. Los usuarios pueden sentir los límites incluso sin mirar.

Pulsación larga— Llame al menú contextual para mostrar acciones adicionales. Se registra una pulsación larga de confirmación táctil.

Juegos y gamificación— Una sensación de inmersión más profunda, reemplazando la retroalimentación visual por el tacto para mejorar la emoción durante el proceso de logro.

animaciones y transiciones— Hacer que la animación sea “tangible” y resaltar los momentos clave. Comúnmente utilizado en el proceso de incorporación.

¿Qué servicios ofrece la plataforma?

Este es un punto clave que define toda la arquitectura.

Google no tiene una filosofía unificada sobre la retroalimentación táctil. Hay un conjunto de constantes (KEYBOARD_TAP, LONG_PRESS, CLOCK_TICK, etc.), pero no hay ningún modelo semántico detrás de ellas; es más bien una lista de funciones de hardware.

Apple adopta un enfoque diferente. Hay tres tipos semánticos de contacto, que se distinguen no por la intensidad sino por el significado del evento:

  • Influencia— Interacción física con elementos de la interfaz de usuario (hacer clic, deslizar, ajustar)
  • elegir— Cambiar entre valores discretos (selector, segmento)
  • notificar— Resultados de eventos que no requieren contacto (éxito, error, advertencia)

Usamos este modelo semántico como base. De ahora en adelante, uso los nombres de Apple; esto es importante para el mapeo multiplataforma.

Influencia: interacción física con elementos.

Los hápticos de impacto se utilizan durante las interacciones físicas con elementos de la interfaz de usuario, como cuando un usuario toca un elemento, una tarjeta encaja en su lugar o un gesto alcanza su umbral. Esta retroalimentación simula la sensación de contacto y hace que la interfaz parezca más tangible.

Preajustes disponibles:

Luz— Pulsos cortos y de baja intensidad.

La retroalimentación táctil óptica se expresa como pulsos cortos y de baja intensidad.
Visualización de retroalimentación táctil Impact Light

medio— Pulsos cortos y de intensidad media.

La retroalimentación táctil moderada se expresa como un pulso equilibrado de intensidad y duración moderadas.
Visualización de retroalimentación táctil Impact Medium

pesado— Pulsos cortos y de alta intensidad

La fuerte retroalimentación táctil se manifiesta como pulsos fuertes y de alta intensidad que duran mucho tiempo.
Impacto Visualización de retroalimentación táctil intensa

suave— Baja amplitud, inicio suave

La retroalimentación táctil suave se expresa como un pulso suave y de baja intensidad que comienza gradualmente
Impacto Visualización de retroalimentación táctil suave

rígido— alta amplitud, comienzo brusco

La retroalimentación táctil rígida aparece como pulsos agudos y de alta intensidad que comienzan repentinamente
Visualización de retroalimentación táctil rígida de impacto

Seleccionar – cambiar el valor actual

Utilice hápticos de selección al cambiar entre valores discretos, por ejemplo, desplazarse por un selector o cambiar de segmento. Cada cambio va acompañado de un breve “tic” táctil para ayudar a los usuarios a sentir cada paso de la interfaz.

Apple proporciona un ajuste preestablecido:

Selección cambiada— Un único pulso corto para confirmar un cambio de valor

Seleccione retroalimentación háptica expresada como pulsos sutiles y discretos de cambio de valor.
Seleccione Cambiar visualización de comentarios

Notificación: resultados del evento

Los hápticos de notificación indican el resultado de un evento: éxito, advertencia o error. Esta retroalimentación refuerza el estado del mensaje y ayuda a los usuarios a identificar rápidamente lo que sucedió. No requiere interacción física.

Apple ofrece tres ajustes preestablecidos:

éxito— Indica la finalización exitosa de una secuencia de 2 pulsos

La retroalimentación táctil exitosa está representada por una serie de pulsos luminosos positivos.
Visualización de retroalimentación táctil de éxito de notificación

advertir— Una secuencia de 2 pulsos de intensidad media que indican una advertencia.

La retroalimentación háptica de advertencia se expresa como una secuencia de pulsos modelados de intensidad moderada.
Visualización de retroalimentación táctil de advertencia de notificación

error— Una secuencia de 4 pulsos enfatizados que indican errores.

La falsa retroalimentación táctil se expresa como una secuencia de pulso fuerte y repentina que indica un mal funcionamiento.
Visualización de retroalimentación táctil de error de notificación

Toque personalizado

Para nuestra aplicación, también necesitábamos hápticos personalizables con configuración flexible, por ejemplo, para animaciones complejas de Lottie.

Importante: La retroalimentación táctil la genera el motor de vibración del dispositivo. Los motores de Apple están estandarizados, mientras que los dispositivos Android pueden tener motores muy diferentes, algunos de los cuales no admiten control de intensidad. Para las pruebas, es mejor utilizar un dispositivo en el que confíe: lo probamos en un OnePlus 15 y los resultados fueron casi idénticos a los del iPhone.

Para obtener información detallada sobre los parámetros completos del motor de vibración, consulte manzana y Google Documentación. Para simplificar el esquema JSON (importante para aplicaciones SDUI), reducimos los parámetros de vibración a tres parámetros principales:

  • Demora— Retraso antes de que comience la vibración (milisegundos, base cero)
  • período— Duración de la vibración (milisegundos)
  • fortaleza— Intensidad de vibración (de 0 a 1)

Este nombre no es casualidad: lo comparamos con Soluciones de redes móviles existentes.

Plataforma topográfica y cartográfica

Inicialmente, planeé asignar los ajustes preestablecidos de Apple directamente a los ajustes preestablecidos de Google:

https://medium.com/media/6ad45f39291619f5333168fca52015d9/href

Sin embargo, las pruebas demostraron que el mapeo directo no funcionó: las constantes de Google coincidían por similitud de nombres, pero las sensaciones táctiles reales no coincidían: la intensidad, la duración y el “carácter” diferían tanto que los usuarios obtendrían experiencias completamente diferentes en iOS y Android.

Por lo tanto, decidimos redefinir los valores predeterminados de Android con parámetros personalizados.

Apple no expone los valores preestablecidos exactos, pero proporciona una visualización clara que los convierte en valores numéricos relacionados con nuestros parámetros (retraso, duración, intensidad).

Como resultado, llegamos a valores consistentes:

Afectar preestablecido

https://medium.com/media/bc1720cd6ab5796bae7c20c477b488a0/href

elegir

https://medium.com/media/e5b2ae22ca24941e4eac8d7181fdc92c/href

Ajustes preestablecidos de notificación (compuestos)
Éxito (2 pulsos)

https://medium.com/media/4193f9bcc68e7a8c416cf9507669c15f/href

Advertencia (2 pulsos)

https://medium.com/media/e8ecbdd3ee4c8e6828eafe8a570f3349/href

Error (4 pulsos)

https://medium.com/media/37d9362b5bdd00bb1f27b56c9fdd7509/href

Alinear el código con los componentes de Figma

Es importante mantener el código y la estructura de los componentes en Figma lo más fielmente posible. Esto es especialmente útil si desea optimizar la colaboración entre diseñador y desarrollador, como por ejemplo utilizando un complemento que lea símbolos y los convierta en un esquema JSON.

En nuestro código, la estructura háptica es un parámetro OneOf que consta de un conjunto predeterminado y una háptica personalizada. En Figma, logro esto a través de parámetros de intercambio de instancias, donde el diseñador puede elegir el tipo háptico.

Las instancias de intercambio en Figma se utilizan para reemplazar dinámicamente componentes de la interfaz de usuario con parámetros configurables.
Visualización de la interfaz Figma.

Si eliges un preset, todo es sencillo. Si elige Personalizado, aparecerán parámetros adicionales:

patrón: matriz {patrón}

Una gama de modos hápticos para crear comentarios más complejos. En Figma, esto se logra mediante Variantes:

Utilice Figma Variants para modelar matrices de estado e implementar una conmutación de componentes estructurada similar a la lógica del código de programa.
Visualización de la interfaz Figma.

Cada modo contiene tres parámetros (implementados como atributos de texto ocultos):

  • Retraso: entero— Retraso antes de la vibración
  • Duración: entero— Duración de la vibración
  • Fuerza: Cantidad— de 0 a 1

En Figma, se ve así:

Los parámetros de texto ocultos en Figma se utilizan para pasar valores de configuración a sistemas de diseño y código de producción.
Visualización de la interfaz Figma.

generalizar

Terminamos con un sistema táctil preestablecido unificado:

  • Semántica— Basado en el modelo de Apple (afectar/seleccionar/notificar) en lugar de constantes de hardware
  • Multiplataforma— Se siente consistente en iOS y Android a través de parámetros personalizados en lugar de mapeo API directo
  • Ampliable— Táctiles personalizables (retraso/duración/intensidad) que cubren situaciones no estándar (animaciones de Lottie, mecánicas de juego)
  • Sincronización de diseño— El componente Figma refleja la estructura del código y la convierte a JSON.

Limitaciones: la compatibilidad táctil en los navegadores móviles todavía está por detrás de las plataformas nativas. Para la red, utilizamos un conjunto simplificado de patrones con los mismos parámetros pero sin fuerza. Es un compromiso más que una equivalencia total, pero la estructura preestablecida compartida al menos conserva una lógica y una denominación consistentes.

¡Disfruta de la retroalimentación táctil!

lectura adicional

Conceptos básicos táctiles:

Documentación de la plataforma:

Arquitectura SDUI:

Flujo de trabajo de diseño a código:

herramienta:

  • sentido de internet— La solución táctil web que inspiró la denominación de nuestros parámetros


Hápticos: cómo crear una solución multiplataforma consistente y alinear su código con FigmaPublicado originalmente en colectivo de experiencia de usuarioEn Medium, la gente continúa la conversación destacando y respondiendo a esta historia.

Home
Account
Cart
Search
¡Hola! ¡Pregúntame lo que quieras!
Explore
Drag