Ainda a propósito do Codebits 2010, estava sentado numa mesa com o Pedro Cavaco, que estava a participar na competição de programação com um jogo para smartphones: Android e iPhone.

Estávamos a conversar sobre isso e eu não estava a ver uma forma fácil de fazer isso para duas plataformas ao mesmo tempo, o que se devia apenas a nunca ter tomado muita atenção a essa área...

O Pedro estava a usar uma ferramenta que compila para as duas plataformas ao mesmo tempo, usando a linguagem Lua. Posteriormente, não consegui encontrar essa framework, mas encontrei várias outras para o mesmo efeito.

A maior parte delas suporta apenas duas plataformas (Android e iPhone) e através do uso de um componente web view. Qualquer um dos factores isolados já é mau, mas seria suportável. Em conjunto, não serve para mim.

Acabei por ficar com, apenas, duas das frameworks que encontrei, a Rhomobile Rhodes e a Appcelerator Titanium, para testar.

Rhomobile Rhodes

A Rhodes suporta um conjunto muito alargado de dispositivos móveis: Android, iPhone, Blackberry, Windows Mobile, Symbian e até dispositivos J2ME (dumb phones normais), em certas condições.

A linguagem usada é Ruby, o que também me deixou ligeiramente desconfortável (nunca programei, sequer, um Hello, World nela), com as views em HTML, CSS e Javascript. A vantagem de suporte para tantos dispositivos acabou por suplantar o inconveniente de aprender uma linguagem nova.

No entanto, acabei por descobrir que, e apesar da Rhomobile publicitar aplicações nativas, é usado um web view para as views e incluído um mini-interpretador Ruby. Isto não é verdadeiramente nativo.

Acabei por não ter que aprender Ruby, porque a seguinte demonstração foi feita apenas criando uma nova aplicação. Este foi outro ponto que me desiludiu - não existe uma interface gráfica para o Rhodes. Todas as operações, desde a criação de uma nova aplicação até à compilação da mesma, são feitas por linha de comandos. Não é que seja difícil; só não é prático.

Rhodes: iPhone Rhodes: Blackberry Rhodes: Android Rhodes: Windows Mobile

Appcelerator Titanium

A Titanium apenas suporta Android e iPhone, estando o suporte para Blackberry em fase beta. Além disso, suporta também os três sistemas desktop, Windows, Linux e MacOS, o que é sempre um bónus bem-vindo, apesar da existência do Qt.

A linguagem usada do lado mobile é Javascript, o que é óptimo, com suporte a HTML5 e CSS3 para a apresentação. No entanto, o uso de apresentação declarativa é quase nulo, porquanto a Titanium disponibiliza a sua API específica para componentes nativos invocados através de Javascript. Isto pode levar a crer que é mais outra como a Rhodes, em que tudo corre dentro de uma web view, mas não é: a Titanium transforma o código em verdadeiras aplicações nativas, usando os respectivos SDKs. Como é lógico, não invalida que se use mesmo uma web view para aceder à web ou para outro objectivo específico.

Apesar de também não disponibilizar um IDE, ao menos as operações relacionadas com a framework – criar novas aplicações, mudar configurações gerais, testar nos simuladores – são feitas numa interface própria (o Titanium Developer). Como ambiente de desenvolvimento, acabei por usar o meu fiel Netbeans.

Titanium: iPhone Titanium: iPhone

Em suma...

Vou acabar por usar a Appcelerator Titanium para as minhas pequenas experiências. O uso de linguagens com as quais estou à vontade, o processo de trabalho mais linear, o pequeno bónus do desktop (onde posso usar, entre outras, a linguagem PHP) e o look’n’feel verdadeiramente nativo venceram o combate. A falta do Windows Mobile é um ligeiro incómodo, suplantado pelo já citado Qt, e o Blackberry, que acaba por ser mais preocupante, está a caminho.

Partilhar no Sapo Links Partilhar no del.icio.us Partilhar no Digg Partilhar no Twitter Partilhar no StumbleUpon Partilhar no MySpace Partilhar no Facebook

Comentários Deixar um comentário

Tem que efectuar login para poder deixar comentários!

Se não está registado, registe-se aqui.
 Doar (via PayPal)
 Categorias
 Arquivo
 Projectos em Destaque
 Últimas Postas no Blog
 Últimos Comentários do Blog
Yet Another Blog» Arquivo » Liberdade de Expressão na Blogosfera @ Seg. 10 Out. 11 07:10