BT

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

por Werner Schuster , traduzido por Flávia Castro de Oliveira em 24 Dez 2008 |

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?

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT