Explore os novos sensores disponíveis no HTML5 com Caio Gondim

Uma API é um conjunto de funções que um programador pode usar para acessar um determinado tipo de serviço. Entre as diversas novas APIs que chegaram com o HTML5, temos as de Geolocalização, Acelerômetro, Câmera e Microfone.

O acesso a esses dispositivos de hardware já era possível em aplicações nativas dos sistemas operacionais. Com a introdução dessas APIs tornou-se possível acessá-los também a partir do ambiente dos navegadores, o que significa maior facilidade de desenvolvimento de aplicações web com capacidades similares às de aplicações nativas.

Na Webbr 2013 você poderá conferir a palestra de Caio Gondim, desenvolvedor na Globo.com e co-fundador do Loop Infinito. Em sua apresentação irá abordar sobre 4 dos novos sensores/dispositivos disponíveis no HTML5: Acelerômetro, Geolocalização, Câmera e Microfone. Ele irá expor exemplos de uso de cada uma dessas APIs e mostrar como elas funcionam. Enquanto a sua palestra não chega, confira a entrevista que realizamos com ele.

Entrevista Caio Gondim

1) Com a introdução das novas APIs do HTML5, de que forma você avalia o impacto no desenvolvimento de aplicações web?

É com certeza um novo começo no desenvolvimento de aplicações web. Essas APIs vão nos permitir criar aplicações com o alcance da web e com características que antes eram exclusivas de aplicações nativas.

Imaginem fazer aplicações web robustas, acessando (quase) todos os componentes da máquina. Aplicações que não precisam ser instaladas, que podem ser distribuídas e conectadas facilmente com qualquer outra e, principalmente, que não serão exclusivas a uma única plataforma. Quando essas APIs estiverem presentes em todos os grandes navegadores, veremos um outro nível de interação e imersão nas aplicações web.

2) Cite exemplos interessantes que podem ser feitos com as APIs de Acelerômetro, Geolocalização, Câmera e Microfone.

Com Câmera existem muitos experimentos incríveis relacionados à realidade aumentada. Com Geolocalização acredito que a maioria dos exemplos esteja focada em dar mais relevância, baseada na localização, ao conteúdo entregue ao usuário. Com o microfone, além da óbvia captura de áudio, temos APIs para sintetizar e reconhecer fala, o que será muito importante para criarmos aplicações para pessoas com dificuldades de usarem os dispositivos padrão de entrada, o mouse e o teclado.

Veja estes ótimos exemplos que essas novas APIs tornam possíveis de serem feitos:

-http://www.findyourwaytooz.com/

-http://webcamtoy.com/

-https://www.peanutgalleryfilms.com/

-http://mtschirs.github.io/js-objectdetect/examples/example_sunglasses_jquery.htm

-http://www.soundstep.com/blog/experiments/jsdetection/

Nós no Loop Infinito também implementamos e fizemos um “passo-a-passo” de como implementar algumas dessas APIs. Os experimentos vocês pode ver aqui:

http://loopinfinito.com.br/2013/07/30/ambient-light-events/

http://loopinfinito.com.br/2012/11/20/html5-camera-com-webpix/

http://loopinfinito.com.br/2013/03/21/battery-api/

http://loopinfinito.com.br/2013/02/19/eventos-online-offline/

http://loopinfinito.com.br/2012/10/10/acelerometro-do-mallandro-glu-glu-ie-ie/

3) Como podemos garantir a segurança dos usuários, se as APIs de microfone e de câmera permitem acessar suas imagens e sons?

O acesso à câmera, microfone, geolocalização, e outros só é liberado à aplicação com a permissão do usuário. No Chrome, por exemplo, além de pedir a permissão do usuário, toda vez que a aplicação estiver usando a API de microfone ou câmera, ele mostra um indicador no favicon do website, para reforçar que o seu microfone e a sua câmera estão sendo usados nesse momento. O Safari no Mac faz algo parecido com a API de Geolocalização, mostrando no menubar do Mac o mesmo símbolo que é mostrado no iOS quando uma app está usando alguma API de Geolocalização.

Então, sempre irá depender do usuário liberar ou não o acesso de seus dispositivos à aplicação. Fiquem tranquilos, sua privacidade está garantida (caso você queira).

4) Quando falamos de acelerômetro e geolocalização, nos vem logo a mente aplicações para celular, será possível também se beneficiar dessas APIs em desktops e notebooks? Como?

O acelerômetro certamente faz mais sentido em aplicações móveis. Mas geolocalização pode ser usada de várias formas no desktop. Imagine você entrar em um site de notícias e a aplicação lhe mostrar as notícias mais relevantes de acordo com a sua cidade ou bairro. Ou então você fazer uma busca por pizzaria delivery no Google, e ele mostrar as que estão mais perto de você. Geolocalização nos dá contexto, e com contexto conseguimos mais relevância ao entregar determinado conteúdo ao usuário.

Muitas dessas APIs utilizam alguns dispositivos que só existem (e só fazem sentindo existir) em dispositivos móveis, como bússola. Mas o mais importante é que elas tornam possível o que antes era impossível (ou impraticável) e força a criatividade do desenvolvedor. Estou muito otimista com o que todos os desenvolvedores irão fazer com esses novos brinquedos (as APIs) que estão sendo dados a eles.

5) Existem outros dispositivos de hardware que ainda não são acessíveis por meio de uma API para navegadores que seria bacana ser suportada no futuro? Quais?

Novas APIs para dispositivos estão surgindo de forma muito rápida. Hoje já temos API para, além das citadas anteriormente, sensor de luminosidade, bateria, informações sobre a rede, vibração, acesso a agenda do usuário, etc.

Algumas APIs de mais baixo nível como acesso a dispositivos Bluetooth e USB ainda não existem. Não sabemos ainda se vamos ou não ter esse tipo de acesso através de um browser, pois há algumas questões relacionadas a segurança em aberto. Mas eu, como programador, não espero a hora de ter uma acesso mais irrestrito à máquina por meio da Web.

O Device API Working Group do W3C está trabalhando incansavelmente para cobrir todos os casos de uso possíveis que sejam úteis para a comunidade. O progresso pode ser visto aqui:http://www.w3.org/standards/techs/js#w3c_all

conferenciaweb

3 comentários