sexta-feira, 21 de agosto de 2009

Widgets!

Os widgets são pequenas aplicações com funções específicas. Todos já devem ter visto um alguma vez. Eles tem uma filosofia bastante generosa: facilitar o acesso à um serviço de forma rápida e simples e com um visual agradável (na maioria dos casos).

Eles estão presentes no Windows Vista, no Dashboard do Mac, Yahoo e agora estão se mostrando extremamente eficientes na área dos celulares, smartphones e internet tablets. A tecnologia em si é padronizada pelo w3c, que orienta de forma geral como deve ser a estrutura dos widgets.

Quem tiver interesse em ler a padronização, basta ir em: http://www.w3.org/TR/widgets/

Em linhas gerais, segundo a definição do W3, os widgets são aplicações no estilo cliente-servidor e possuem um ciclo de desenvolvimento bem definido em conformidade com uma série de padrões (chamados de web standards).

Os widgets possuem um conjunto de especificações, dentre elas temos a Widgets-API, Widgets-DigSig (os widgets podem ser assinados digitalmente usando um padrão de assinatura baseado em XML), a Widgets-Security que especifica as ações dos widgets quando estão em execução e a Widgets-Update que permite criar um esquema de atualização dos widgets via HTTP, o que torna o ciclo de desenvolvimento, distribuição e atualização bem definido.



Imagem da arquitetura de um Widget, retirada do site: http://www.w3.org/TR/widgets-land/

Acima, a imagem mostra a arquitetura básica dos widgets. O user agent é o que se chama de “runtime environment” , lugar onde os widgets são executados. É possível notar o conjunto de tecnologias que podem ser usadas na construção de um widget, que vai desde a popular combinação de XML, Javascript (ou mais formalmente, ECMAScript), HTML e CSS. Tudo combinado com um poder de desenvolvimento que dá a liberdade de criação desde as mais simples até as mais complexas.

Nesse caso, é evidente que o uso da internet é fundamental. Todo o esquema de execução é baseado no consumo de uma fonte de informação (nesse caso, o Widget Resource da imagem).

Para um estudo mais completo da especificação dos Widgets, basta ler o documento disponível no site do W3 Consortium.

Como continuação deste post, pretende me apronfundar mais na tecnologia dos Widgets e abordar a tecnologia do Web Runtime, ou WRT, desenvolvido pela Nokia e que hoje é uma grande promesse na área de desenvolvimento em celulares e smartphones.


Fonte:

Widgets 1.0: Packaging and Configuration (W3C Working Draft 22 December 2008): http://www.w3.org/TR/widgets/

Iniciando com Web Runtime (WRT) da Nokia

Para quem não conhece, o WRT é uma nova tecnologia da Nokia que foi liberada para o público no ano passado. Como é algo bem recente, a Nokia está investindo bastante na tecnologia e principalmente na comunidade de desenvolvimento.

O S60 usa a engine do Webkit no seu navegador de internet. O WRT faz justamente extender o Web Browser para habilitar a execução de Widgets.

Widgets são uma categoria de aplicações que tem foco no usuário final, provendo acesso a serviços através de consumo de informações. Exemplos são os widgets do Windows Vista, Yahoo!, etc. Eles seguem uma padronização do W3 Consortium e seguem uma arquitetura bem rígida e definida. Escrevi um pouco sobre os widgets em http://ryganon.blogspot.com/2009/04/widgets.html

Aí entra o WRT e a popularização dos celulares e smartphones. Nada mais óbvio que esse tipo de serviço migrasse perfeitamente para essa área. Os widgets do WRT já são bem integrados na nova safra de smartphones da Nokia, como os da 5a edição. Alguns modelos anteriores como os da 3a edição também rodam os widgets.

Eles são construídos de forma a serem aplicações feitas usando a combinação de HTML, CSS e Javascript com recursos de comunicação, segurança (permite assinatura e criptografia baseada em XML) e acesso a muitos recursos do S60.

A IDE "oficial" da Nokia para construção dos widgets é o Aptana Studio com o plugin do WRT. O Aptana é uma IDE baseada no eclipse, gratuita (também possui versões pagas) focada na pate de edição web. Eu considero uma das melhores IDEs para edição de Javascript. Para desenvolver os widgets é preciso basicamente o Aptana, pois ele tem uma série de ferramentas que permitem o teste das aplicações. Download e informações em: http://www.forum.nokia.com/Resources_and_Information/Tools/Runtimes/Web_Runtime/Aptana_Plugin/

Paralelo a isso pode-se (na verdade deve-se) usar os SDKs de desenvolvimento da Nokia. Uma boa opção é usar o SDK da 5a edição, que já traz recursos de touchsreen, baseado nos aparelhos mais recentes da Nokia.

Informações sobre o WRT em http://www.forum.nokia.com/Resources_and_Information/Explore/Web_Technologies/Web_Runtime/
Na página tem um tour pela tecnologia, com descrição de mercado para publicação, arquitetura, ferramentas, etc.

No wiki sobre o WRT tem muito código de exemplo, guias e tutoriais http://wiki.forum.nokia.com/index.php/Category:Web_Runtime_(WRT)

Bom, quem quiser se aventurar mais em widgets e estiver afim de estudar o básico está aí no texto.