funmachine


Deixe um comentário

An Open Web

Esta força toda que tem surgido em torno do movimento Open Web tem pouco a ver com uma perspetiva puramente técnica de desenvolvimento com tecnologia Web – HTML5 e JS e CSS, etc. É muito mais que isso. Para quem desenvolve para a web no dia a dia, percebe facilmente que ainda estamos muito longe de ter tecnologia completamente agnóstica que corre em qualquer dispositivo de forma nativa. Podemos correr web apps em qualquer browser, que por sua vez existem em qualquer SO, mas ainda estamos muito longe de ter uma integração ideal a nível dos recursos do SO.

Quem tentar criar uma aplicação puramente baseada em tecnologia Web, mas que possa correr, por exemplo, num ambiente desktop, percebe bem a questão….. Não existe forma fácil de, por exemplo, criar uma aplicação chromeless, sem fazer uso dos UIs do browser. Correr em modo Fullscreen não é solução e muito menos correr em frameworks como PhoneGap, que apenas permitem correr uma aplicação web dentro de um rudimentar widget web, com muitas limitações ao nível das funcionalidades suportadas, para não falar na limitação de performance.

Além disso, mais restritivo que desenvolver uma aplicação chromeless é desenvolver uma que faça uso dos recursos do sistema operativo, e apesar de haver grande progressos nessa área (FileSystem API, Local Storage API, etc) ainda estamos longe de ter acesso aos recursos que, por exemplo, as SDK windows, mac, android, iOS nos permitem.

Para mim, frameworks como PhoneGap são uma faca de dois legumes, como o grande treinador dizia… Por um lado prometem desenvolvimento rápido e cross-platform, o que é verdade. Mas por outro, correm a app web em cima de um widget rudimentar, que é disponibilizado pelas SDKs do iOS, do Android, etc., como uma simples view para criar interfaces web simples. Depois os developers passam o seu tempo a tentar otimizar a performance da app…

Por outro lado temos os browsers. Autêntica artilharia pesada. Conseguem alta performance, mas é muito difícil sair do contexto browser, ou seja, é difícil implementar uma aplicação chromeless. É possível integrar apenas os seus layout e render engines? Sim, podemos usar o Gecko, WebKit, etc e embeber num software nosso, mas não é tarefa fácil. Existe um projecto chamado CEF que não é mais que uma API para embeber o Chromium em virtualmente qualquer aplicação. Depois existe uma série de projetos para embeber o Gecko, o motor do Firefox, mas que infelizmente, são sempre abandonados… Por fim existe um projeto chamado Awesomium que é uma framework que permite tirar partido do browser (Chromium/WebKit) para criar aplicações windowless, mas sendo algo comercial e fechado, acabamos sempre sem saber bem em que versão do browser nos podemos basear, nunca temos a certeza que funcionalidades suportam no futuro nem quanto tempo demoram a integrar as evoluções do WebKit (se é que o fazem).

Agora, temos o renascer do gigante. A Mozilla, que tem grande responsabilidade pela web tal como a conhecemos, voltou em força e está atualmente a puxar novamente as fronteiras da web!

A Mozilla está em força com a iniciativa Open Web. Ao longo dos últimos tempos têm tentado estender os web standards para incluir uma série de APIs necessárias para desenvolver aplicações em sistemas móveis que realmente fazem uso nativo do SO. Vejam aqui uma compilação das APIs que estão a ser desenvolvidas.

O primeiro é o projecto Boot To Gecko – B2G , onde estão a desenvolver um sistema operativo mobile baseado no projeto Gecko e que tem como principal novidade as aplicações nativas em aplicações HTML5/JS. Desta forma podemos desenvolver aplicações usando tecnologia HTML5 e JS e ter acesso a um conjunto de recursos do sistema operativo, ou seja, a Mozilla quer tornar a Open Web como uma plataforma para um sistema mobile.

Depois temos a iniciativa Open Web Apps. A Mozilla finalmente vai lançar o seu Web Apps Marketplace, um local onde podemos encontrar, comprar e fazer download de aplicações Web. Um pouco semelhante ao Google Web Apps, mas com a inovação e “passo à frente” que tem sido a bandeira da Mozilla. O funcionamento é muito semelhante às Web Apps Chrome. Temos um MarketPlace onde podemos distribuir  e gerir aplicações Web. O passo à frente nesta iniciativa é o WebRT – Web Run Time:

“Desktop WebRT is a project to build a desktop web application runtime that provides webapps with a native-like look and feel along with platform integration APIs on Windows, Mac, and other desktop platforms.”

A ideia é que ao instalar a Web App existe uma funcionalidade do Firefox que instala a aplicação no sistema operativo nativo e depois podemos correr a aplicação nativamente. Esta ao ser executada corre como se fosse no Firefox, mas num ambiente chromeless.

Estou ansioso por verificar como está plataforma vai desenvolver ao longo do tempo, à muito que ando à procura de uma forma de desenvolver aplicação desktop usando tecnologias Web, principalmente na parte das UIs, com todo o poder dos browsers modernos actuais, e a iniciativa Open Web da Mozilla, particularmente o projecto B2G e WebRT prometem isso mesmo!