BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Rhodes traz Aplicações Ruby para o iPhone, Windows Mobile, BlackBerry

Rhodes traz Aplicações Ruby para o iPhone, Windows Mobile, BlackBerry

Rhodes é uma nova solução open source para trazer desenvolvimento Ruby aos dispositivos móveis. Ainda mais: ele permite usar o mesmo código Ruby em vários dispositivos. Atualmente o iPhone, Windows Mobile e BlackBerry da RIM, com suporte para Symbian e Android chegando em breve.


 A chance de fazer deploy no iPhone deve ser interessante, pois ele adiciona outra opção para o desenvolvimento do iPhone (ao lado do Objective-C). Também: Rhodes e todas os interpreters necessários e bibliotecas são open source, hospedados no GitHub e um bug tracker público para projetos Rhomobile também está disponível.

Nós conversamos com Adam Blum da Rhomobile sobre como exatamente Rhodes funciona, e como eles conseguiram usar Ruby como uma linguagem para o iPhone.

As Plataformas

A primeira questão é naturalmente sobre como o Rhomobile tornou possível escrever Ruby apps para o iPhone. Adam explica:

A resposta é [..] nós embutimos a aplicação do desenvolvedor com nosso framework e um Ruby interpreter. Para ser compatível com a AppStore os desenvolvedores não podem os baixar código interpretado "on the fly" de nenhum lugar. É a responsabilidade do desenvolvedor cumprir as regras, mas se eles querem violar há uma maneira muito mais simples para fazer isto do que a incorporação de um Ruby interpreter e baixar código Ruby de qualquer outro lugar.


O Ruby usado no iPhone é uma versão recente do Ruby 1.9. Rhodes suporta outras plataformas e planeja adicionar mais plataformas onde o Ruby está disponível, por exemplo Symbian.

Suportar Rhodes e Ruby no BlackBerry, cujas aplicações são escritas em Java, requerem um pouco mais de esforço. Rhomobile escolheu uma solução ambiciosa que usa XRuby. XRuby é uma versão do Ruby para Java que compila o código Ruby para arquivos de classe Java. O desenvolvimento do XRuby diminuiu no ano passado, mas Rhomobile pegou XRuby, melhorou ele, e está usando agora XRuby para para executar aplicações Rhodes no RIM BlackBerry. Adam também mecionou:

Nós estamos trabalhando no Android, a começar pelo nosso próprio Ruby que nós fizemos para a implementação RIM (que é baseada em XRuby não JRuby)


Adam também menciona a necessidade de manter os Ruby interpreters pequenos, que tem um efeito na bibliotecas Ruby suportadas:

Isto é definitivamente um subconjunto. Esta é parte da necessidade de fazermos nosso próprio framework. Nós fazemos um monte de coisas para torná-lo menor e vamos continuar fazendo ao longo do tempo.


Algumas funcionalidades, tais como o eval() também não são suportadas.

Considerando que o Rhomobile funciona com Ruby interpreters para plataformas móveis, nós perguntamos para Adam o que ele gostaria de ver no suport disso:

Hmm... gostaríamos de ver implementadores Ruby focados em tornar menor as implementações do Ruby acrescido de mais atenção para o tamanho dos custos de dependências quando as pessoas constroem plugins Gem úteis. Mas para agora é nosso trabalho fazer isso e tudo bem.

 

Como isso funciona?

O Rhomobile destina-se a dar suporte para diferentes plataformas de telefone móveis, então eles escolheram uma maneira para executar o framework cross platform applications Rhodes. Em resumo: aplicações Rhodes são aplicações web que são executadas localmente no telefone (ie. a parte Ruby da aplicação roda no telefone bem como a GUI HTML). A GUI dessas aplicações são definidas em HTML e exibidas usando o componente do browser que está disponível em todos os telefones. Telefones Modernos tendem a ter browsers padrões, ex. o Safari basedo Webkit do iPhone, que significa que é possível usar os métodos de desenvolvimento normal da web para definir aplicações, inclusive utilizando Javascript na GUI. Rhodes também cuida de fazer a GUI parecer-se com o componente nativo GUI na plataforma individual, ex. usando IUI no iPhone GUIs.

Mas o Rhodes acrescenta outro twist para isso: algumas das funcionalidades avançadas dos smartphones modernos estão disponíveis para as aplicações Rhodes. Atualmente está disponível informações de geolocation; acesso ao accelerometer, camera e ao PIM local estarão disponíveis na próxima versão em Janeiro.
É possível acessar essas funcionalidades com chamadas Ruby e com tags HTML nos arquivos HTML, ex.:

será mostrado algo parecido com isso:

37.3317° North, 122.0307° West;37.331689;-122.030731


Começar a trabalhar em uma aplicação Rhodes é tão simples como em muitos outros Ruby web frameworks, ele começa com um gerador:

 rhogen app accountapp

Isso gera um esqueleto de aplicação básico, com controllers e outras apps. Mais informações estão disponíveis no Rhodes Tutorial.

Outra parte do Rhodes é o Rhom, um mapeador de objeto. Rhomobile também tem outras bibliotecas no GitHub, ex. Rhosync, que ajuda com a sincronização de várias fontes de dados para o telefone móvel.


Os projetos do Rhomobile são bastantes novos - a release atual está na versão 0.1, mas uma release 0.2 será lançada no final do mês com melhor acesso ao PIM e GUI. Uma release 0.3 deve ser lançada no final de Janeiro de 2009 e deve trazer suporte para mais plataformas, acesso a mais funcionalidades do dispositivo (accelerometer, etc), além de hospedagem de projetos para desenvolvedores Rhodes.

Finalmente é importante mencionar que os projetos Rhodes são open source e hospedados no GitHub. O modelo de negócio do Rhomobile funciona no dual licensing. Aplicações Rhodes são open source, mas se uma empresa quer usar Rhodes mas manter sua fonte fechada, poderá fazê-lo comprando uma licença comercial Rhomobile.


Você conhece outras soluções cross platform como Rhodes que oferece um nível semelhante de integração? Você usaria Rhodes para escrever uma aplicação?

Conteúdo educacional

BT