O caminho das pedras do HTML5

Um dos desafios de desenvolver utilizando o HTML5 é saber escolher com precisão as APIs nativas que se pretende utilizar. Digo que é um desafio, pois por não ser uma especificação ainda finalizada, a implementação das APIs nativas do HTML5 não é tão consistente como se imagina entre diversos navegadores. Existem áreas específicas, como suporte básico a Canvas ou o Local Storage, que já são amplamente suportadas de modo uniforme entre os navegadores, mas em outras áreas, como Web Audio e IndexedDB, a implementação não é ainda regular - mas tende a ser em breve. Em outras áreas então, como o Web SQL, a funcionalidade não deverá jamais ser implementada em todos os navegadores (isto ocorre frequentemente em áreas da especificação que nasceram devido ao legado de uma implementação específica, que no caso dos navegadores Open Source, podem ter sido utilizadas em mais do que um navegador).

Uma coisa que aprendi depois de ter tido diversas surpresas desagradáveis ao longo da vida desenvolvendo projetos de software, é fazer uma boa validação de APIs antes do início do desenvolvimento propriamente dito, para validar que elas funcionam conforme documentado, e para me certificar de que as plataformas alvo da minha aplicação serão de fato suportadas. Isso pode parecer chato inicialmente, mas ajuda muito a manter o foco quando a codificação começa pra valer.

Quando comecei a desenvolver com HTML5, fiquei muito feliz em ver que alguns sites simplificam bastante esta análise inicial, e gostaria de deixar aqui uma recomendação para que usem eles no seu dia a dia.

O primeiro, e para mim o mais relevante (até por possuir um nome fácil de decorar), é o portal Can I Use.... Como o próprio nome diz, ele te informa o status da implementação de uma determinada API nativa do HTML5 nos navegadores atuais. Na caixa de busca do portal você escreve o nome da API que pretende pesquisar e ele te apresenta uma tabela mostrando o atual status de suporte dentro dos navegadores, quais as versões destes suportam (ou não) a API e informa ainda se o suporte é total ou parcial. Além disso, quando você coloca o ponteiro do mouse em cima de uma determinada versão de navegador, o portal apresenta ainda qual é a utilização global daquele navegador naquela versão específica. Utilizando o Can I Use, você pode rapidamente identificar se o conjunto de APIs que você planejou utilizar vão se comportar do modo esperado nos navegadores que precisa suportar.

O segundo portal que gostaria de recomendar, é muito parecido com o Can I Use, porém tem foco em navegadores de dispositivos móveis. É o Mobile HTML5, e ele lista as funcionalidades do HTML5 (com links para a seções específicas da especificação dentro do portal do W3C), e diz se são suportadas por nada menos que 11 navegadores encontrados em dispositivos móveis. O portal mostra ainda as versões dos navegadores que suportam as funcionalidades. Novamente podemos ver o Canvas amplamente suportado e a Web Audio API ainda bastante limitada.

O terceiro portal é interessante para visualizar graficamente o suporte das APIs nativas pelos navegadores, além de visualizar ainda a evolução do suporte ao longo do tempo. Deixei esta recomendação, pois de tempos em tempos precisamos apresentar nossos projetos a clientes ou demais interessados e portanto, fica a dica de uma forma mais amigável e visual de apresentação das APIs selecionadas. Gosto principalmente da possibilidade de ver a evolução do suporte ao longo dos anos, pois ela mostra como as implementações de HTML5 estão rapidamente se uniformizando (e a especificação ainda não foi concluída).

O último portal eu deixo mais a título de curiosidade, pois ele vai te ajudar a saber qual é o nível de suporte ao HTML5 do navegador que você está utilizando. Ele é o portal The HTML test e com ele você pode ver quantos pontos o seu navegador ganha em uma escala que vai até 500 no suporte. Além de ver a nota final, você pode ainda ver quais são as funcionalidades que seu navegador suporta e quais ele não suporta, o que considero bem útil, pois já vi gente correndo atrás do rabo procurando bug que não existia em código, exatamente por estar utilizando uma funcionalidade que “tinha quase certeza” que era suportada pelo navegador que utilizava para depurar a aplicação.

Espero que com estas dicas a etapa de seleção de APIs HTML5 dos seus projetos seja feita com maior efetividade em menor tempo.

Caso a funcionalidade que você pretende usar (ou precisa usar) na sua aplicação não tenha um suporte seguro e efetivo nos navegadores que você precisa suportar, a solução pode ser a utilização de bibliotecas e APIs de terceiros que equalizem determinada funcionalidade nos diversos dispositivos. Temos um artigo aqui que explora um pouco este tema.

Fique ligado nas páginas da nossa comunidade HTML5, pois em mais alguns dias excelentes novidades serão anunciadas por aqui. Tenho certeza que todos vão adorar o que está por vir ! 

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.