Seu site já pode vibrar... (Web Haptics)

BBetter Stack
컴퓨터/소프트웨어스마트폰/모바일AI/미래기술

Transcript

00:00:00Acabei de encontrar um pacote muito legal que adiciona um detalhe pequeno, mas incrível, aos seus sites
00:00:04que eu nem sabia que queria até agora.
00:00:07O WebHaptics faz exatamente o que promete e permite que seus sites utilizem
00:00:11feedback háptico, seja no Android ou no iOS, fazendo com que pareçam mais
00:00:15um aplicativo nativo. Ele faz isso de uma forma muito limpa e simples, sendo literalmente apenas
00:00:20uma função.
00:00:21E parece que não sou o único que acha isso sensacional; ele está em alta
00:00:24em todo o Twitter e, pelo visto, o Polymarket já implementou esse pacote.
00:00:29Então, vamos mergulhar e ver o que é todo esse barulho, e também falar um pouco sobre como
00:00:33ele funciona, pois o pacote tem um truque muito legal para rodar no iOS.
00:00:43Agora, obviamente é difícil mostrar exatamente o que este pacote faz, pois é
00:00:46uma vibração física do seu telefone, mas é o exato tipo que você sente quando clica
00:00:50em se inscrever no app do YouTube. Mas se você já é inscrito e ainda quer testar
00:00:54isso, o site do WebHaptics é um lugar super divertido para fazer isso. Então, depois de ver
00:00:59o vídeo, recomendo muito conferir, pois ele mostra alguns dos feedbacks comuns,
00:01:02como sucesso e erro, e obviamente a vibração ao clicar em um botão.
00:01:06Ele também tem um editor muito legal para criar seus próprios padrões hápticos, que veremos
00:01:10daqui a pouco.
00:01:11Por enquanto, vamos ao código. Como podem ver, é um pacote npm muito simples,
00:01:15e ele até tem helpers para React, Vue e Svelte, mas você ainda pode usar a variante
00:01:19JavaScript puro se quiser, e a função trigger será a mesma em todas elas.
00:01:23No meu caso, usarei React e vocês podem ver que o código é incrivelmente simples.
00:01:24Tudo o que precisamos fazer é usar o hook useWebHaptics e, a partir dele, obtemos uma função trigger
00:01:28que podemos vincular a algo como um botão para disparar um feedback háptico.
00:01:32Vocês também podem ver que esse hook nos dá uma função cancel, que cancela qualquer
00:01:36vibracão em execução, e também um booleano isSupported para verificar se o navegador
00:01:39suporta feedback háptico.
00:01:44Com esse código simples, quando eu clicar neste botão em um dispositivo Android
00:01:45ou iOS, ele terá uma pequena vibração. Mas estou no notebook no momento,
00:01:48então não vai acontecer nada.
00:01:53Existe uma pequena maneira de sabermos que isso está funcionando enquanto desenvolvemos,
00:01:54que é definir debug como true dentro do hook aqui. Isso significa que quando
00:01:57eu clicar no botão, ele emitirá um som que simula o que seria o feedback
00:02:00háptico.
00:02:04Na hora de personalizar o padrão de vibração, também é super simples e podemos
00:02:05fazer isso na função trigger.
00:02:09O primeiro método é usando alguns presets que já vêm com o pacote, então você
00:02:10pode importar default patterns e neles encontrará predefinições como buzz, error, heavy e
00:02:14várias outras. Você pode sentir como elas são no site também.
00:02:18O segundo método é para quando você quer um padrão de vibração totalmente personalizado.
00:02:21Basta fornecer um array para a função trigger e definir suas vibrações.
00:02:22No momento, tenho quatro vibrações neste padrão. Como podem ver, você define uma vibração
00:02:25com um objeto onde temos um delay, que é o atraso desde a última vibração
00:02:29em milissegundos. Depois temos a duração em milissegundos de quanto tempo ela
00:02:33vai durar, e também um valor de intensidade, onde 1 é a vibração mais forte.
00:02:37Com este padrão que tenho aqui, quando clico no botão, vocês podem ouvir como seria o som,
00:02:41mas imaginem isso vibrando no telefone do usuário.
00:02:46Um bom truque para criar padrões personalizados é usar aquele site, pois eles têm
00:02:49um editor excelente onde você clica para adicionar uma nova vibração ao array,
00:02:53pode arrastar para mudar a duração, arrastar para cima ou para baixo para mudar a intensidade e clicar
00:02:57em play para ouvir o som. E você também pode usar no celular para realmente
00:03:02sentir a sensação.
00:03:06Como eu disse, é um pouco difícil mostrar isso em vídeo, mas espero que tenham
00:03:09entendido a ideia. É um pacote simples, mas o que quero mostrar agora é como isso funciona,
00:03:11já que o iOS não facilitou as coisas.
00:03:14A primeira coisa a saber é que existe uma API que deveria expor a função de vibração
00:03:19do seu telefone simplesmente usando navigator.vibrate.
00:03:21O problema é que isso funciona muito bem no Android, mas o iOS tem zero suporte para isso.
00:03:24Felizmente, há outra maneira de obter feedback háptico no iOS, que é usar um
00:03:27input do tipo switch. Quando o usuário clica nisso no iOS, há um feedback háptico.
00:03:32O que esta biblioteca faz para tirar proveito disso é que, quando acionamos o feedback,
00:03:36ela basicamente clica em um switch invisível para nós, imitando nosso padrão de vibração.
00:03:41Vemos isso aqui embaixo com este checkbox; quando aciono o feedback háptico, ele liga
00:03:44e desliga várias vezes, simulando o switch no iOS.
00:03:49Se você quiser ver esse switch enquanto depura sua aplicação, tudo o que precisa
00:03:53fazer no hook aqui é adicionar a configuração showSwitch e defini-la como true.
00:03:56Se dermos uma olhada rápida no código do pacote em si, dá para ver o que ele está fazendo.
00:03:59Se web haptics forem suportados, a função navigator.vibrate será usada para reproduzir
00:04:03nosso padrão de vibração. No entanto, se não forem suportados, aqui embaixo ele vai clicar
00:04:06naquele switch. E também temos esta função aqui, responsável por criar de fato
00:04:11o padrão de vibração, clicando no switch várias vezes, como vemos aqui embaixo.
00:04:15Achei que era um contorno muito inteligente que valia a pena mostrar, e espero que a Apple não
00:04:19encontre um jeito de bloquear isso ou, se bloquearem, que adicionem suporte para a
00:04:23função vibrate.
00:04:27Isso é basicamente tudo sobre este pacote, então me digam nos comentários se
00:04:31isso é algo que vocês usariam. Aproveitem e se inscrevam, e como sempre, nos vemos
00:04:32no próximo vídeo.
00:04:35[Música]
00:04:38até o próximo.
00:04:41[Música]

Key Takeaway

O WebHaptics é uma ferramenta inovadora que utiliza uma solução técnica criativa para levar feedback tátil de alta qualidade a sites móveis, superando as limitações históricas do sistema iOS.

Highlights

O WebHaptics é um pacote npm que permite adicionar feedback tátil a sites, simulando a sensação de aplicativos nativos.

A biblioteca oferece suporte para frameworks populares como React, Vue e Svelte, além de uma variante em JavaScript puro.

O pacote resolve a falta de suporte nativo do iOS para a API navigator.vibrate através de um "truque" criativo com elementos de input.

Existe um modo de depuração (debug) que emite sons para simular a vibração durante o desenvolvimento em computadores desktop.

Os desenvolvedores podem usar padrões predefinidos (como erro ou sucesso) ou criar vibrações personalizadas com controle de delay, duração e intensidade.

O site oficial do WebHaptics inclui um editor visual para testar e gerar o código de padrões hápticos complexos.

Timeline

Introdução ao WebHaptics

O apresentador introduz o WebHaptics como uma biblioteca capaz de transformar a experiência do usuário em sites móveis, adicionando pequenos detalhes de vibração. Ele destaca que a ferramenta já está ganhando popularidade no Twitter e foi adotada por plataformas conhecidas como o Polymarket. O diferencial do pacote é a sua simplicidade, funcionando basicamente através de uma única função principal de gatilho. O objetivo central é diminuir a barreira entre sites web e aplicativos nativos, proporcionando uma sensação tátil premium. Este segmento estabelece o contexto de que o feedback háptico é um desejo que muitos desenvolvedores nem sabiam que tinham até conhecer a solução.

Exploração do Site e Feedback Visual

Nesta parte, o vídeo explica a dificuldade de demonstrar vibrações físicas através de um vídeo, comparando a sensação ao clique de inscrição no aplicativo do YouTube. O autor recomenda fortemente a visita ao site oficial do WebHaptics para que o espectador possa sentir os exemplos de sucesso, erro e cliques de botão em seu próprio dispositivo. É apresentado o editor interativo presente no site, que permite aos usuários criar e ajustar seus próprios padrões de vibração de forma visual. O foco aqui é demonstrar a utilidade prática do feedback em interações comuns de interface. Este recurso visual ajuda a validar a eficácia da biblioteca antes mesmo de o desenvolvedor escrever qualquer linha de código.

Implementação Técnica e Hooks

O vídeo mergulha na parte técnica, mostrando como instalar o pacote via npm e utilizá-lo em diferentes frameworks modernos. No exemplo com React, é demonstrado o uso do hook useWebHaptics, que fornece as funções trigger, cancel e o booleano isSupported. Um ponto crucial mencionado é a propriedade debug: true, que permite ouvir sons representativos da vibração enquanto se desenvolve em um notebook ou desktop. O palestrante enfatiza a limpeza do código, onde apenas algumas linhas são necessárias para vincular a vibração a um evento de clique. Essa facilidade de integração é um dos pilares que tornam o pacote atraente para projetos de qualquer escala.

Personalização de Padrões Hápticos

O conteúdo detalha os dois métodos principais para definir como o telefone deve vibrar: usando predefinições ou criando arrays personalizados. O pacote inclui constantes como 'default patterns' com estilos pré-configurados como 'buzz', 'error' e 'heavy'. Para personalização total, o desenvolvedor pode passar um array de objetos definindo o atraso (delay), a duração e a intensidade da vibração, sendo 1 o valor máximo de força. O editor do site é novamente citado como uma ferramenta essencial para arrastar e ajustar a duração e intensidade de cada pulso tátil de forma intuitiva. Assim, o desenvolvedor tem controle granular sobre a experiência sensorial que deseja entregar ao usuário final.

O Truque do iOS e Funcionamento Interno

O vídeo finaliza revelando o segredo técnico por trás do funcionamento no iOS, já que a Apple não suporta a API padrão navigator.vibrate no navegador Safari. A biblioteca contorna essa limitação simulando cliques rápidos em um elemento de 'switch' (checkbox) invisível, o que dispara nativamente o feedback tátil do sistema da Apple. O apresentador mostra o código-fonte do pacote, explicando como ele alterna entre a API nativa no Android e o truque do switch no iOS de forma transparente para o desenvolvedor. Ele elogia a engenhosidade dessa solução e expressa esperança de que a Apple não bloqueie esse comportamento no futuro. O vídeo encerra incentivando a comunidade a testar a ferramenta e a se inscrever no canal para mais novidades de desenvolvimento web.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video