Ruby Weekly is a weekly newsletter covering the latest Ruby and Rails news.

Rhodes: Develop Full iPhone, RIM, and Symbian Apps using Ruby

By Peter Cooper / January 23, 2009

rhomobile.png Rhodes - developed by Rhomobile - is an intriguing framework of Ruby interpreters that can be used to develop native applications for the iPhone, Windows Mobile, RIM (Blackberry) and Symbian smartphone platforms (with Android support to come). Last month, Werner Schuster (of InfoQ) wrote a basic roundup of how Rhodes works.

Essentially, Rhomobile has put together a set of technologies that each work on each mobile platform supported, including a Ruby interpreter, a synchronization library, an object mapper, and functions that enable developers to gain access to features like GPS, accelerometers, and contact storage. Rhodes is not yet at version 1.0 and while some developers are beginning to submit Rhodes-powered apps to the iPhone App Store - none have yet been accepted (although Rhomobile claim that there's no reason why they shouldn't be).

Notably, Rhodes is open source (GNU GPL) and is available directly from Github. Rhomobile has put together a solid tutorial on how to get started. They've also launched a mobile application "Development Challenge" with a top prize of $10,000 in order to promote the framework.

Rhodes is a pretty exciting technology and opening up the iPhone to Ruby developers is a big deal, so we'll be catching up with Rhodes again when it hits its 1.0 release next month.

Support from: acts_as_conference; - A two day Rails conference in Orlando, Florida on February 6 and 7. Only $125, free food, a great venue, and lots of top Rails speakers including DHH. Click here to learn more.


  1. Chuck says:

    There actually is a reason why these apps wouldn't be accepted for the iPhone: Interpreted languages are against the App Store rules.

  2. Matthew Lang says:

    Looking forward to seeing what the Rhodes framework can do when the Android support is ready.

  3. Peter Cooper says:

    Chuck: I brought up that issue with Rhomobile and they seem to think it's not an issue in this case. They claim (and I hope they correct me if I got this wrong!) that as long as an app cannot fetch and execute code that's not initially included with the app, it's okay, and supposedly they have locked down the interpreter to go along with this.

    I would really love it if someone from Rhomobile could comment on this here though, so I will give them a prod :-)

  4. Adam says:

    Peter: Thanks for the great post. First of all, to clarify, we precompile all framework and app code down to Ruby 1.9 VM bytecode. This yields great performance advantages. We also disable eval and other dynamic execution aspects of Ruby. In the end, on all platforms your app gets compiled with our framework all into one single executable, indistinguishable from any other executable.

    But even if we were shipping a fullon Ruby interpreter without compiling to bytecode and leaving dynamic evaluation enabled (as has been well remarked in the blogosphere by now) App Store rule 3.3.2 does not disallow interpreters but only downloading code to be executed by the interpreter.

    Matthew: The full 1.0 release with it should be available in late February.

    - Adam

  5. Andrew says:

    Wonderful! I'm looking forward to seeing some working examples.

    I'll keep an eye on for announcements of Rhodes apps on the App Store :-)

  6. Apostlion says:

    Interesting as a concept, but iPhone apps built without touching iPhone SDK are kind of killing the purpose—almost (but not completely) ditto for Android.

  7. Adam says:

    If you mean that it's important to expose rich device capabilities then I agree with you and we're committed to doing that. If you want to write for all smartphones keeping six (or even three) device operating system implementations in multiple languages in sync isn't really a practical option. If you only want to write for iPhone, you don't need synced data and other features that our framework provides and you like writing in objective c versus ruby then by all means you should stick with the iPhone ask. Best of luck with you mobile app projects.

  8. David says:

    Adam, thank you so much, this is very cool. I'm excited to learn and extra excited I don't have to learn new languages/technologies to write some simple apps to work with my web apps. I was really wanting to develop some iphone apps, even bought the book, but got turned off pretty quick when I realized I was going to have to learn a bunch of new stuff just for one platform. Good luck and good day! cheers.

  9. Hubert Łępicki says:

    Is there a way to actually run and develop applications in this framework on Linux? Or any other ruby-enabled system which is not-osx and not-windows?

    I mean - is this possible to develop and test applications without SDKs for iphone/symbian/etc, and then just build/test on emulators after? In the end these are "just" web apps so any browser should do the basic job - right?

  10. Adam says:


    No, you need to have a machine with the build environment of the device SDK you want to build for: a Mac for iPhone, Windows for everything else. We are going to release a hosted service in about a month which offers (among other things) the ability for you to do builds for all devices on our servers.

    Currently testing can only happen on the emulators. This is something we'll think about changing based on user demand (i.e. we could do a Rhodes which would run on your desktop/server if its widely requested).

    - Adam

  11. Kai says:

    would love to know which apps built on top of Rhodes are indeed approved by Apple.
    Until that day comes, I will be holding off.

Other Posts to Enjoy

Twitter Mentions