Por que RubyMotion?

Escrito por:

O aplicativo iOS do Organizze é feito em RubyMotion.

 

Com ~4 anos de AppStore, nós temos mais de 500mil downloads, estamos no destaque permanente da categoria “Desenvolvido no Brasil”, já tivemos destaques na página principal da loja mais de uma vez, temos boas reviews. Podemos dizer que nosso aplicativo até superou as expectativas de sucesso.

 

Pessoal tem nos perguntado bastante sobre essa tecnologia, que ainda é um alien aqui no Brasil.

 

Afinal, por que nós desenvolvemos nosso aplicativo iOS em RubyMotion?

 

Bom, vamos começar contando como começou a relação Organizze + iOS.

 

O projeto iOS aqui dentro do Organizze começou antes do RubyMotion. A primeira versão do nosso aplicativo (que na verdade era outro aplicativo) surgiu de terceirizações de mão-de-obra (em Objective-C) que não deram muito certo. Tivemos vários problemas e tivemos que literalmente matar o aplicativo e fazer um novo do zero.

 

Esse aplicativo novo que foi construído, é o projeto que estamos falando, de 4 anos de idade. Ele foi construído 100% aqui dentro do Organizze.

 

O processo de aquisição de know-how iOS aqui dentro começou com Objective-C. Nós inclusive estávamos com aproximadamente 30% do aplicativo novo pronto em Objective-C quando tivemos o primeiro contato com o RubyMotion.

 

Foi um encantamento a primeira vista. O obviedade e elegância do Ruby em contato direto com as classes nativas do iOS.

 

O RubyMotion, apesar de novo, foi criado a partir de um projeto interno da Apple de alguns anos, o MacRuby, que é ruby para OSX. Nós sabemos que iOS e OSX são bem próximos. O lead developer do MacRuby é o founder do RubyMotion.

 

Isso nos encorajou a fazer um test-drive com a tecnologia. Os testes foram sólidos e nos deram confiança. O ganho de produtividade foi óbvio. Assim começou nossa jornada com o RubyMotion.

 

Mas, depois desses 4 anos, o RubyMotion vale a pena?

 

Resposta simples, valeu muito a pena.

 

Resposta mais longa. Todas dificuldades que tivemos durante do desenvolvimento foram por falta de experiência com iOS, nunca foram problemas com o RubyMotion. A performance de execução podemos dizer que é a mesma de um aplicativo nativo. O app-size é o mesmo de um aplicativo nativo. A estabilidade na execução é a mesma ou até maior que de qualquer tecnologia nativa. Ele não consome mais memória e ele não roda mais devagar. A escrita de código é mais fluida e rápida, graças a sintaxe simplificada Ruby. Com uma sintaxe mais limpa e com o poder de expressividade do Ruby fica mais fácil para o developer focar, e resolver, questões arquiteturais do código. O que com o tempo tende a nos levar a uma code-base de mais qualidade.

 

Além disso, o RubyMotion herda automaticamente todo o eco-sistema das plataformas nativas. Objective-C e Swift. Qualquer código Objective-C é facilmente convertido para RubyMotion sem grandes problemas. Qualquer library, CocoaPods ou qualquer outro código nativo pode ser injetado no projeto RubyMotion sem dificuldade. Podemos usar e extender suas classes sem problema algum.

 

O RubyMotion herda também bastante do eco-sistema Ruby, que traz uma filosofia de elegância e simplicidade natural na linguagem, que podemos ver nas libraries específicas para RubyMotion.

 

A comunidade RubyMotion, apesar de pequena, é muito acima da média. Visto que não é uma tecnologia mainstream, apenas os mais curiosos e auto-suficientes dão uma chance de verdade para criar uma opinião própria sobre a plataforma.

 

O suporte técnico do RM também é muito importante. Nós temos uma licença paga ($ 20,00 / month) e sempre que preciso podemos falar diretamente com o pessoal que trabalha no desenvolvimento da ferramenta. Os poucos problemas que tivemos hoje foram de incompatibilidade de alguma lib nativa que usamos com uma versão específica que o RubyMotion atualizou ou algo nesse estilo. E sempre conseguimos resolver com a ajuda deles.

 

O RubyMotion não é cross-platform. Essa é a grande diferença para tecnologias como Titanium, Phonegap, Ionic e Xamarim. Eu gosto de falar que o RubyMotion é uma tecnologia nativa, não-oficial, apenas por que não é mantida pela Apple.

 

Os frameworks cross-platform adicionam uma camada de código própria para facilitar a reutilização de código entre as diferentes plataformas. E alguns desses frameworks não te permitem utilizar todo o toolset nativo.

 

O RubyMotion não adiciona quase nenhum código de runtime e você tem acesso a 100% das classes nativas ou inseridas no seu projeto manualmente. O que é executado é basicamente só o código da aplicação realmente. O RubyMotion converte seu código Ruby diretamente para um código de maquina muito próximo do código compilado do Objetive-C. Dai que vem a performance. Esse código de maquina de alta performance é um diferencial da ferramenta.

 

A barreira de entrada para o RubyMotion, se você vem do iOS, é basicamente apenas aprender a linguagem Ruby, que é provavelmente a linguagem mais fácil de se aprender. Você irá desenvolver sua aplicação exatamente da mesma forma que faz hoje. Seu código será iniciado a partir do AppDelegate e assim por diante criando seus ViewControllers, seus Models, suas Views. Você pode utilizar IB, AutoLayout, StoryBoards, alguma outra DSL View Library de preferencia sua ou fazer tudo por código mesmo, criando suas classes UIView (como nós fazemos no Organizze).

 

Se você vem do Ruby, a barreira de entrada é muito maior. Você precisa aprender e pegar fluência em todo o toolset, eco-sistema e estilo de programação iOS que é bem diferente do que estamos acostumados na Web (por exemplo). Não existe atalho aqui. Apenas o tempo e experiência vão te tornar proficiente na plataforma.

 

Não temos como prever o futuro. Mas hoje, sem dúvida alguma, é uma excelente opção que todo developer iOS deveria ao menos dar uma chance e criar uma opinião própria.

Categorias:
Sinta a felicidade de estar no controle de suas finanças

Cadastre-se grátis, e veja sua vida financeira mudar a partir de hoje.

Organizze

Faça como mais de 50 mil organizzados! Receba GRÁTIS em seu email centenas de artigos e dicas para manter suas finanças em ordem (e a newsletter mais legal do Brasil!!).