Warning Older Docs! - You are viewing documentation for a previous released version of RhoMobile Suite.

Rhodes

Introduction

Rhodes is a framework for building locally executing, device-optimized mobile applications. These applications are optimized to interact with transactional enterprise application backends. They are also designed to work with synced local data using a local database, such as SQLite or HSQLDB, and a generic backend synchronization framework, such as RhoConnect (another open source component available from Rhomobile). Rhodes is available for iPhone, Research in Motion (Blackberry), Windows Mobile, and Android phones.

The Tutorial describes how to install Rhodes and build your apps. The rest of this Developer Reference covers all Rhodes features.

Supported Operating Systems

BlackBerry

BlackBerry 4.6, 4.7, 5.0, 6.0, 7.0

4.2 and 4.5 are supported but database access is very slow on these devices.

Windows Mobile

As of Rhodes 3.3.3 Windows Mobile/CE are only supported under RhoElements

Android

Android 2.1 and greater

iPhone

All versions of iPhone 3.0 or greater, iPad

Windows Phone 8

Latest Windows Phone devices

Rhodes Application

A Rhodes application is a web application that runs locally on your mobile device. It is implemented with the standard MVC architecture:

  • Views are sets of ERB templates: HTML, CSS, and JavaScript files executed by the WebView control available on the device and served by the local web server. This server is a very lightweight web server running on the device. See User Interface section for more details on Layouts, CSS framework, JavaScript frameworks, Menus, and Native UI elements that you may use in the View.
  • Controllers are sets of usually very simple Ruby scripts in controller.rb files. You have access to many native device capabilities from your controllers.
  • Models are defined by a Ruby script in the model.rb file.

See Rhodes App Structure for more details.

You may generate a Rhodes application using the rhodes utility.

Rhodes built-in the following Ruby version: 1.9.2-p290. Rhodes application may use all functionality of the built-in Ruby version.

Contributing

Do you want to add features to Rhodes? Have you found a bug that you want report or fix? Read on.

Reporting Rhodes Issues

Please report bugs/features/enhancements to the google group.

Run Rhodes Specs

You should run the rhodes specs to make sure your development environment is up-to-date (currently the specs only run on OSX):

Fork the Rhodes repository.

Clone your new repo:

$ git clone git://github.com/<yourhandle>/rhodes.git
$ cd rhodes
$ bin/rhodes-setup

Run Rhodes framework_spec and phone_spec targets

$ rake run:allspecs 

If everything passes (pending specs are OK), then your environment is ready for development. If you have trouble installing a particular gem, or the specs won’t run properly, please feel free to email the Rhomobile google group or hop on IRC to chat with other Rhodes developers.

Contributing your Patch

Now that your environment is ready, make your changes!

Create a topic branch:

$ git checkout -b cool_new_feature

Write tests, such as this code in a Rhom example.

Make changes to your project to ready it for others to use.

Add relevant documentation for your project (use RDoc, update the README if relevant).

Push to your branch:

$ git push origin cool_new_feature

Send a note to the google group

That’s it! We recommend following these ruby style guidelines when coding.

If you are interested in having us use your patch to Rhodes, you will need to submit a contribution agreement to us.

Framework Architecture

Back to Top