Yo! Bitch — World’s first production Android app in Ruby

Yo Bitch
4 min readAug 16, 2014

--

Yo Bitch app lets you bitch at your friends in just a tap!

It is written in 100% Ruby :-)

Our love for Ruby

Ruby is what we all love. No second thoughts to that. We at Yo! Bitch have been writing code in Ruby from almost 6 years now — starting from the ubiquitous Ruby on Rails & then re-discovering Ruby as a fun & easy — yet super powerful language. Ruby’s ability to quickly let you get dirty with the domain modelling is what is its true power.

Motivation

Ever since Yo App came out — it was simple & beautiful. However, it always kept shouting for more functionality. One day, at an everyday coffee gathering in office, someone suggested what if Yo App could be used to bitch at friends?

And we thought, why not!

Enter, Yo! Bitch : the android app to bitch at your friends, in Yo style.

Ruboto

Being a Ruby enthusiast, we thought : why Java? Why not any other language which is more fun. Our obvious choice was Ruby. We started our search on how could we execute Ruby in Android’s context — specially from app development perspective.

We discovered that Ruboto was maturing very fast & suited our purpose just perfect. It had enough tutorials & documentation for us to get started. Other alternatives were either too naive or too passive in development stage.

We did some hello world apps in Ruboto, studied the ecosystem & were sure that Ruboto will be the correct choice.

Personal Challenges

Though we knew Ruby well, this was our first tryst with Android. Hence the biggest challenge was to learn Android development as well as simultaneously convert it into Ruboto’able code. For every module we wrote, we first had to pickup how it’s done in Android, try it out in a Java demo & then go back & implement in Ruboto. It was pure fun :-) but surely took us a lot of time.

We ended up creating several modules of reusable Ruboto code which we would use in the future projects.

Learnings

Some pointers which can help you getting kick started immediately with Ruboto, given you know how android development works

  • All camelCase methods from Java are word convertible into underscore_case code
  • Access to static variables is via the :: convention => Foo.var becomes Foo::var
  • “self” of the class which extends the Activity can be used as Context anywhere required
  • Access to resources is governed by the Ruboto variable => Ruboto::R::id::foo_id
  • Methods which need overriding, need to be implemented in the camelCase convention instead of the underscore_case convention
  • Callbacks are beautifully handled as Procs

Operational Challenges

While things went pretty smooth, there were some dev-time challenges which I hope will be addressed by Ruboto’s growing community

  • Ruboto needs more examples — lots of them. The Ruboto team should ideally gun for converting the entire set of Android samples to Ruboto samples. Ability to see & explore working code is a HUGE plus point for budding developers
  • We need deep tutorials on how to debug Ruboto apps. Being able to use “debugger” will be a BIG win. Right now, it’s all redeploy, check, repeat!
  • More apps written in Ruboto — will help the community grow in visibility & support.

Some important links

If you are just starting out in Ruboto, here are some links which you should absolutely not miss. Many of our own understanding of the Ruboto system came from reading these.

A shameless plug

If you have read so far, we would love you to show us some Ruby love & try out our Yo! Bitch app from Google Play. It would be awesome to see your genuine feedback at hello[at]yobitch.me

Final thoughts

Yo! Bitch started out as an experiment & eventually become the project we wanted to do to prove that Ruboto works & works fantastically well.

Without an iota of doubt — we will definitely pick up Ruby & Ruboto as the language of choice for Android.

We love you Ruby & Ruboto ♡

Till then, keep Yo! Bitching!

--

--

Yo Bitch

A fun android app to Bitch at your friends (Powered by Ruboto & Ruby) .