RubyMotion is a framework for creating iOS applications with the flexibility and familiarity that Ruby provides. By architecting around a web view and a single page javascript application, building native iOS applications can leverage all of the tools and techniques that we’ve developed for the web.
In this talk, I will walk through the development of an iOS application that uses this approach with RubyMotion, a Rails backend, and AngularJS. I’ll discuss how we decided what responsibility each component should have, how they interact with one another, a couple of things that turned out to be a bit tricky. Our iOS app has an Android and a mobile web equivalent and this is where this approach really shines: we’re essentially building all three at the same time.
There are some downsides to this approach. Familiarity with iOS conventions and the Cocoa APIs are still necessary to build an app that looks and feels polished. It’s a poor fit for applications that need to be completely or mostly available offline and if your app does not have an Android or mobile web version, you lose one of the largest benefits.
Dan Luchi is a developer at the Boston based, dinosaur themed consulting company, Terrible Labs. Dan spends his days converting snippets of Objective-C from StackOverflow to Ruby syntax, trying to remember which methods are camel case, which ones are snake case and trying to come up with funnier jokes that only the other 20 or so RubyMotion developers would understand. He moved to Boston from San Francisco only a year ago, so he spends his free time with his wife and dog, Watson exploring New England’s strangely pronounced attractions.