Adicionar feedback multissensorial a apps Android

A página descreve como enriquecer aplicativos com feedback de áudio e tátil seguindo as diretrizes do Sistema de Design Multissensorial (MSDS, na sigla em inglês). keywords_public: > recursos táteis, vibração, áudio, feedback, Android, IU, UX, design, multissensorial, msds

Os apps em dispositivos com Android podem oferecer feedback de áudio tátil multissensorial em conformidade com o Sistema de Design Multissensorial (MSDS, na sigla em inglês), uma biblioteca de componentes tokenizados para áudio e tátil consistentes.

Por que usar o MSDS?

O MSDS é um sistema de design centralizado para melhorar o feedback de áudio e tátil. Com o MSDS, não é necessário projetar, selecionar ou criar seu próprio feedback tátil ou auditivo para interações comuns do usuário.

Além disso, o MSDS funciona de maneira consistente em todos os dispositivos, sincronizando áudio e recursos táteis de maneira ideal com base nos recursos do dispositivo.

Quando usar o MSDS?

O MSDS fornece feedback para interações comuns de usuários ativos. Esse feedback é acionado em resposta a uma ação do usuário que causa um efeito no sistema ou no app e se divide em duas categorias:

  • Feedback de gestos: confirma a manipulação física em tempo real dos elementos da interface com base em gestos diretos do usuário.

  • Feedback semântico: confirma mudanças de estado, seleções ou progresso do usuário em tempo real.

Como usar a MSDS?

A API MultisensoryManager é o ponto de entrada para enviar feedback sobre a MSDS. É possível reproduzir feedback tokenizado usando o método playToken().

Para ver os tokens disponíveis, leia as constantes de números inteiros públicos de MultisensoryManager. Para usar o gerenciador no app, consulte-o como um serviço do sistema e reproduza tokens:

@RequiresApi(Build.VERSION_CODES_FULL.CINNAMON_BUN_2)
@Composable
fun MultisensorySwitch() {
    val context = LocalContext.current
    val multisensoryManager =
        remember(context) { context.getSystemService(MultisensoryManager::class.java) }
    var checked by remember { mutableStateOf(false) }
    Switch(
        checked = checked,
        onCheckedChange = { isChecked ->
            checked = isChecked
            if (isChecked) {
                multisensoryManager?.playToken(MultisensoryManager.TOKEN_SWITCH_ON)
            } else {
                multisensoryManager?.playToken(MultisensoryManager.TOKEN_SWITCH_OFF)
            }
        }
    )
}

Você também pode manter uma referência ao MultisensoryManager em um ViewModel para acionar a reprodução de MSDS em resposta a chamadas de método ou mudanças de estado da interface.

Recomendações

O feedback do MSDS geralmente é reproduzido com animações ou interações iniciais porque é acionado por interações ativas do usuário. Reproduza o feedback no momento adequado para que os elementos visuais, o áudio e o retorno tátil sejam acionados o mais próximo possível uns dos outros.

Dependendo da estrutura do app, essa recomendação pode resultar em chamadas de reprodução em callbacks de composição da interface (como o exemplo anterior de Switch), mudanças em State ou StateFlow da interface, frames de animação ou respostas da interface a entradas diretas do usuário.

Em todos os casos, a recomendação geral é enviar feedback assim que o usuário puder perceber a consequência da ação no sistema.