Gear & Gadgets —

Rhomobile unveils Ruby-based cross-platform mobile framework

Rhomobile has officially released version 1. iPhone.

Rhomobile has announced the official 1.0 release of Rhodes, an open source Ruby-based framework for mobile application development that supports all of the mainstream smartphone operating systems. The framework, which is modeled after Ruby on Rails, has the potential to accelerate the development of data-driven mobile software while guaranteeing high portability.

Version 1.0, which was released Tuesday, adds support for Google's Linux-based Android mobile operating system. Rhodes also supports the iPhone, Blackberry, Windows Mobile, and Symbian. Rhodes applications are written with Ruby and with HTML, using the erb templating engine. The applications are compiled down into self-standing executables for each of the supported platforms.

The executables contain an embedded Ruby interpreter, a lightweight web server, and a simple shell with a native HTML rendering component that is used to display the content. These components are all executed from within a self-contained application, so the user doesn't need to depend on an external runtime component. This approach also ensures that Rhodes applications fully conform with Apple's draconian App Store requirements, which broadly prohibit conventional interpreters.

The internal Ruby environment in the Rhodes framework is largely custom and has been significantly pared down to minimize the memory footprint of applications. When I built a test program for Windows Mobile, the resulting distributable CAB file was only 2.3MB. The framework also omits much of the extra baggage that comes with a conventional Ruby runtime and includes only a slim subset of the standard library.

Rhodes applications use HTML for displaying a user interface. The framework comes bundled with some default CSS stylesheets which are intended to make the applications look more native. On the iPhone, this is achieved by taking advantage of the iui web library. A somewhat generic default stylesheet is supplied for the rest of the platforms. It's trivially easy to customize the default stylesheets or create your own.

Adum Blum, CEO of Rhomobile, insists that the Rhodes applications are so seamless that regular users will not be able to guess that they are made with HTML. The experience comes close to achieving that on the iPhone, but not so much on Windows Mobile where Rhodes applications still look unmistakably like web pages.

One of the most compelling features of Rhodes is its support for some native platform capabilities, such as access to a device's GPS, camera, and address book. Rhodes provides simple high-level Ruby APIs and specialized HTML tags that wrap these features and make them easy for application developers to use in a way that is entirely platform-neutral. The scope of supported native platform features is still somewhat limited, but it's likely that additional functionality will be introduced as the framework matures. Blum suspects that third-party developers might contribute to the framework by helping to flesh out these aspects.

The Rhodes framework is largely intended to be used for data-driven business applications. Rhodes integrates with a server-side intermediary framework called RhoSync that can be used to keep data synchronized between the client application's local data store and your backend web services. Rhodes also bundles a lightweight object-relational mapper called Rhom that serves as an abstraction layer for accessing data. Much like rails, Rhodes comes with simple command line development tools that can automatically stub out projects.

"By using HTML, Rhodes breaks down the barrier between an inspired idea and a full blown mobile application that works on all the top smartphones," Blum said in a statement. "Whether you are an enterprise developer who wants to tap into the power of today's smartphones for the mobile workforce or an entrepreneur who wants to build software for app stores, our Rhodes framework provides unparalleled ease-of-use and efficiency, allowing developers to build powerful mobile applications with about ten percent of the code used in apps today."

Blum tells Ars that Rhomobile is planning to launch a RhoSync hosting service called RhoHub that will reduce the barriers to entry for building new Rhodes applications. It could also potentially offer automated build services.

Rhomobile has adopted a dual-licensing model. The source code is all available under the GPL. Developers who want to use the technology to build proprietary applications can pay for a commercial license. A growing community of developers is already converging around the framework.

There is an increasing trend towards building web-oriented mobile applications that are essentially site-specific browser shells with some native platform functionality tied in for specific features. Rhodes offers a simple way to build such applications but also offers key advantages like platform neutrality and easy support for facilitating local offline data access and efficient communication.

I tested Rhodes myself on Windows XP with a Windows Mobile handset. To get a working build environment, you will need a full install of Visual Studio, Ruby 1.8, Ruby gems, and the Windows Mobile 6 Professional SDK. After all of the dependencies are installed, you can get Rhodes by running "gem install rhodes" at the command line. You can then use the rhogen tool to automatically generate a new project.

At its current stage of development it still has a lot of limitations, but it's very promising. In many cases, it will still make more sense for developers to simply make a mobile-friendly stylesheet for their existing browser-accessible web applications, but there are some situations where the native platform functionality exposed by Rhodes could be very useful to application developers who are looking to tie richer capabilities into their mobile web applications.

5 Reader Comments

Haven't tried it yet, but sounds compelling! I suspect that eventually there will be a convergence of device SDKs into something like this. It just doesn't make sense to have to build native applications for the many OSs out there.

1. Rule 3.3.2 of the App Store disallows downloading code to interpreters not embedding an interpreter. Many apps on the App Store have embedded interpreters (anything with a shell such as telnet clients, anything from PhoneGap, etc.) See the FAQ at http://rhomobile.com/documentation.faq2. Check out the RhoCRM SugarCRM sample app on Windows Mobile. It looks pretty good based on contributions of CSS stylesheets from Rhodes users. Those stylesheets are just getting better and better (still soliciting contributions from Symbian devs as Symbian apps do indeed look pretty plain)3. RhoHub isn't just hosting the RhoSync server but also provides a complete hosted, web-based development environment including app generation and code editing (for both the Rhodes client HTML templates and RhoSync server source adapters). It also provides user provisioning and automatic build for all supported smartphones.

Accelerometer support would be nice (iPhone, Symbian and G1 at least).

Rendering is surely a bitch. iPhone, Symbian and G1 devices can at least cope with [X]HTML correctly (and certainly consistently). They all should have some capability as regards SVG (even if they don't all have it turned on right now) but performance is certainly a problem on the iPhone I've found.

Windows Mobile can't render anything correctly of course, so I'm guessing portability is limited by the increased fucking around as regards that. No idea about Blackberries.