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.