RubyMotion Success Story: Cabify
We had the great pleasure to talk to Mark Villacampa about Cabify and their use of RubyMotion in production. Another great RubyMotion success story!
Hi Mark! Thanks for taking the time to talk to us. Could you introduce yourself?
I’m a 20 year-old Electronic Engineering student from Madrid (Spain), who also happens to be a programmer. I’m currently on an internship as a software developer at Cabify and bootstrapping LEAPto3D, a company focused on 3D Printing which is going to launch very soon.
What is Cabify exactly?
Cabify offers a customer orientated urban transport service. You can request a high-end car with chauffeur from your mobile phone or website, at very affordable rates. You simply select the pick-up and drop-off points, have a great ride in a quality car, and only pay for the distance and time, seamlessly and securely using your credit card.
You guys are using RubyMotion there in production. Could you tell us a bit more about your experience with RubyMotion as well as how RubyMotion is used at Cabify?
I started learning Ruby on Rails about a year ago, and I enjoyed Ruby so much that I decided to use it for more than web applications. Shortly after that, I started using MacRuby.
I was preparing to give a MacRuby talk at our local Madrid Ruby group last May, when RubyMotion was released. I thought ‘Why not add RubyMotion to the talk?’, so I bought a license, and I’ve been using RubyMotion ever since.
Cabify is predominantly a Ruby and Rails shop, with a bit of Node.js on the side. After battling with iPhone development for the best part of a year they were starting to get really frustrated with the amount of effort required to get high quality apps.
They contacted me shortly after my presentation to see if I would be interested in working with them over the summer to develop their driver application on iPhone using RubyMotion. This is the app that the drivers use to update their position and accept new hires. The idea was to test the waters and see if it worked out.
My boss was blown away by the results :-) After just four weeks I had a working application with concise easy to read and maintain ruby code. They were so impressed in fact that they scrapped the new Objective-C rider app they were working on (the one customers use to request a car) and moved completely to RubyMotion. We hope to launch a new completely redesigned app in the next few weeks, as opposed to months!
Why did you chose RubyMotion over another toolchain?
While apprehensive at first to try something other than the Apple supported XCode, seeing RubyMotion in action and given the passion for Ruby in the development team, it was an easy decision!
How was your workflow with RubyMotion? What code editor did you use? Did you get to use any 3rd-party library or gem?
I use Sublime Text 2 as code editor, with the SublimeRubymotionBuilder and SublimeLinter configured to work with RubyMotion’s syntax.
Adding 3rd party libraries to your app is easier than with XCode, where there is no standard way to do so.
We’re using AFNetworking, QuickDialogs, SVProgressHUD, and of course, Teacup, a RubyMotion gem and DSL for styling views.
What are your favorite features of RubyMotion? How do you see RubyMotion in the future?
Being able to use my favorite programming language to develop applications for iOS!
The REPL really impressed me the first time I used it. I think it can be extended to make it much more powerful. Also, I’m looking forward to on-device REPL and debugger.
As opposed to XCode, RubyMotion’s build tools are open source, so you can modify them to fit your needs and even send pull-requests.
I think people are going to release very innovative apps using RubyMotion. The flexibility of Ruby and the faster development time make RubyMotion a great platform for experimenting with new ways of creating iOS applications. At Cabify there is certainly no going back!
Thank you Mark!
If you are using RubyMotion in production and would like to participate to our success stories series, contact us! We would love to hear about what you are doing.