Ruby para mobile: MRuby, RubyMotion, Ruboto, Android,...
Ruby para mobile: MRuby, RubyMotion, Ruboto, Android,…
Algumas novas implementações e dialetos do Ruby têm aparecido, juntando-se ao grande conjunto de dialetos existentes. As novidades são MRuby, MobiRuby e RubyMotion. Aqui apresentamos o que trazem de novo.
Começamos pelo MRuby, desenvolvido pelo criador do Ruby, Yukihiro "Matz" Matsumoto. Na RubyConf 2010, Matz anunciou seu trabalho no desenvolvimento do Rite, uma implementação leve do Ruby. O resultado daquele trabalho é o MRuby, disponibilizado no GitHub, que contempla parcialmente a especificação da linguagem do ISO. O foco, porém, é completamente diferente do MRI e do Ruby 1.9; logo o MRuby não é o Ruby 2.0.
O MRuby pode ser usado simplesmente para executar programas Ruby, mas foi projetado especialmente para ser integrado em outros programas (por exemplo, em jogos, como uma alternativa à linguagem Lua). Pode também ser utilizado em pequenos dispositivos com pouca memória.
O MRuby tem uma biblioteca padrão bastante reduzida e não apresenta algumas funcionalidades da linguagem original. Matz mencionou no keynote que threads emultilingualization (m17n) não são suportados. Outras bibliotecas/funcionalidades podem ser customizadas em tempo de compilação (por exemplo, remover file I/Oou escolher o encoding).
Matt Aimonetti escreveu um guia sobre como iniciar com MRuby, e também fez um comparação detalhada entre MRuby e Lua.
O MobiRuby "pretende substituir pelo Ruby as linguagens Objective-C, C e Java nas plataformas mobile, da mesma maneira que se pode utilizar Lua ou Mono para construir aplicações nestas plataformas". Matt Aimonetti apresenta uma análise dos desafios que o projeto enfrenta, como o impacto no desempenho ocasionado pela existência de dois runtimes (ambientes de execução), e a interação com as APIs e documentações nativas da plataforma. Infelizmente, o código do MobiRuby ainda não foi disponibilizado, de modo que ainda não é possível fazer um julgamento embasado.
Para desenvolver para iOS hoje em Ruby, há outras opções. Laurent Sansonetti, o criador do MayRuby, acabou de lançar o RubyMotion, um fork proprietário do MacRuby que também permite escrever aplicações para iOS em Ruby. O Rake é utilizado para criar, executar e compilar aplicações, e todo o fluxo é controlado via linha de comando, sendo também possível utilizar o Interface Builder da Apple e o StoryBoard. O RubyMotion é mais um dialeto do Ruby do que outra implementação completa; logo não é possível reutilizar facilmente gems existentes do Ruby.
Android e mais
Os desenvolvedores Android também têm opções: o Ruboto progrediu bastante nos últimos meses; e há o Mirah, o qual possui um sintaxe bem próxima ao Ruby, oferecendo suporte ao Android através do Pindah. Como nota final, a empresa Rhomobile, criadora do Rhodes, um framework independente de plataforma baseado em Ruby, foi recentemente adquirida pela Motorola Solutions.