Recentemente participei de uma semana de inovação na Locaweb, onde trabalho atualmente e, em seguida, pudemos colocar em prática algum projeto de caráter inovador dentro da empresa. No meu caso, escolhi criar um aplicativo mobile. Foi uma experiência intensa e incrível, pois, convenhamos, criar um aplicativo funcional em apenas uma semana é uma tarefa nada trivial.
A fim de podermos dar conta do desafio, escolhi utilizar o Apache Cordova. Trata-se de uma plataforma open source para o desenvolvimento de aplicativos móveis multiplataforma através de linguagens web: basicamente HTML, CSS e JavaScript.
A primeira dificuldade foi passar pelas inúmeras decisões que são necessárias para criar um aplicativo desse tipo. De início, há várias “distribuições” do Cordova. Adobe Phonegap e Intel XDK estão entre as mais conhecidas. Depois, de forma semelhante ao que acontece hoje, com toda a “ebulição” da web nos últimos anos, é necessário optar por algum framework JavaScript, como Jquery Mobile, Ionic ou Zepto. Contudo, a lista pode se estender quase que infinitamente.
Alguns desenvolvedores ainda torcem o nariz quando ouvem falar de web apps rodando fora do navegador. No meu entender, trata-se apenas de preconceito. Na quase totalidade das vezes, é possível criar um app dessa maneira e com muitas vantagens em relação ao desenvolvimento de aplicativos nativos. Para que perder tempo aprendendo a API do Android, iOS e Windows Phone (sem falar em outros sistemas) para realizar uma mesma tarefa (acessar a câmera, por exemplo) se podemos fazer o mesmo com uma única API?
A não ser que você precise utilizar todo o desempenho e potencial do hardware, como acontece em um jogo, nada me parece justificar a opção pelas plataformas nativas. E olha que, mesmo assim, WebGL e outras APIs recentes do HTML5 estão aí para “fazer miséria” pelos seus jogos. Além disso, usuários estão interessados na experiência que você entrega a eles e, para esse objetivo, sua habilidade como programador é muito mais determinante do que o fato de seu aplicativo ser escrito em Java, Swift ou C#.
Sim, tudo isso é muito recente e ainda há um longo caminho evolutivo a se trilhar. Contudo, já é possível criar uma infinidade de coisas que eram impensáveis há alguns anos, sem as ferramentas de que dispomos atualmente. Cada vez mais, veremos o mundo da web rodando fora dos navegadores: Firefox OS, Gnome Shell, a interface “Metro” do Windows 8 e de boa parte das smart TVs que você tem em casa são apenas alguns exemplos.
Se você continua torcendo o nariz, lembre-se de que o Java cresceu a partir dessa mesma premissa – quem se recorda do “write once, run everywhere”? Pois é! No fim das contas, foi a web que conseguiu entregar o prometido.