Reproducir haptic feedback en SwiftUI

Haptic feedback o retroalimentación háptica en español, es un método de comunicación táctil utilizado por los dispositivos para notificar eventos a los usuarios. En los dispositivos Apple, los haptics feedbacks son representados por sensaciones de vibración y/o señales de audio que aumentan la experiencia del usuario en aplicaciones con estas características, logrando que sean más intuitivas, naturales y más accesibles a usuarios en situaciones de discapacidad.

Durante el WWDC23, Apple presentó un nuevo modificador denominado sensoryFeedback(_:trigger:), el cual simplifica la generación de haptic feedbacks en SwiftUI. Esto representa un avance con respecto a la forma que habíamos explicado en un artículo anterior.

Puedes reproducir un haptic feedback a partir del cambio de estado de una variable:

import SwiftUI
struct ContentView: View {
@State private var playHaptic = false
var body: some View {
Button("Play haptic feedback") {
playHaptic.toggle()
}
.sensoryFeedback(.success, trigger: playHaptic)
}
}

Ten en cuenta que no podrás reproducir haptic feedbacks en el simulador; necesitas un dispositivo físico para hacerlo.

Este código muestra una vista de SwiftUI que contiene:

  1. Una variable de estado playHaptic que indica cuándo se debe de reproducir el feedback.
  2. Un Button que, al presionarlo, cambiará el estado de la variable playHaptic. Además, este botón posee el modificador sensoryFeedback(_:trigger:) que reproducirá el haptic success cuando cambie de estado de playHaptic.

El modificador sensoryFeedback hace uso de la estructura (struct) SensoryFeedback para representar los distintos tipos de feedbacks que se pueden reproducir. En el ejemplo anterior, se utilizó el feedback .success para indicar que que una tarea o acción se completó. Existen otros feedbacks dentro de esta estructura:

  • start y stop indican que una actividad ha iniciado o detenido.
  • alignment, decrease, increase, levelChange y selection para indicar cambios o selecciones de un valor u objeto.
  • success, warning y error se utilizan para indicar un resultado de una operación.
  • impact, impact(weight:intensity:) y impact(flexibility:intensity:) para indicar un impacto físico entre elementos de UI.

Hay otras opciones con las cuales puedes crear sensoryFeedback de manera más personalizada:

  • sensoryFeedback(trigger:_:) para reproducir diferentes tipos de feedbacks según los diversos estados de la variable que activa el modificador.
  • sensoryFeedback(_:trigger:condition:) para reproducir un feedback cuando cambie el estado de tu variable de acuerdo con las condiciones que especifiques.

Te recomiendo consultar la guía de interfaces de Apple para conocer las mejores prácticas al utilizar haptic feedbacks.

Comparte este artículo

Subscríbete a nuestro Newsletter

Mantente al día en el mundo de las aplicaciones móviles con nuestro blog especializado.

Artículos semanales

Todas las semanas artículos nuevos sobre el mundo de las aplicaciones móviles.

No spam

No te enviaremos spam, solo contenido de calidad. Puedes darte de baja cuando quieras.

Contenido de calidad

Nada de contenido generado de manera automática usando ChatGPT.

Recomendaciones

Tips indispensables sobre mejores prácticas y metodologías.

© 2024 AsyncLearn