From Rails to RubyMotion.
The Bandcamp site is written in Rails, so all the engineers know Ruby. When they planned to write a native iPhone app for their platform, Bandcamp's head of engineering naturally suggested using RubyMotion.
Using the same language made it easier for the other engineers to jump in the project.
They still had to get familiar with iOS, but the learning curve was smoother, since the language wasn't getting in the way. Adding new features was painless, and when they look through the code, all the syntax is all straight up Ruby.
Behind the curtains.
Bandcamp for iOS features a gorgeous user interface and a very reactive user experience, as you would certainly expect from a native app. Music is streamed and played as you tap, and the app makes use of iOS multitasking to keep playing in the background.
The app uses SQLite through the FMDB library for backend storage. Also, for historical reasons, a small part of the app is written in C. Because RubyMotion can easily integrate C-level code, it was as easy as pie.
Since Bandcamp uses Ruby for both the iOS and the server-side apps, they were also able to share some of the code, such as a thread-safe in-memory cache class.
"RubyMotion lets us write the Bandcamp app without that dirty feeling you get from fooling around with Xcode.Like the best tools, it makes the hard things easy."
Daniel Dickison, Programmer, Bandcamp Inc
Read the full interview on our blog