The Rhodes framework is a framework for building locally executing, device-optimized mobile applications for smartphone devices. These applications are optimized for interacting with transactional enterprise application backends (with synced local data via RhoSync). Rhodes is now available for iPhone, Windows Mobile, Research in Motion (Blackberry) and Symbian smartphones.
Rhodes is available as an open source product under the “GNU Public License”: http://gplv3.fsf.org/ for developers prepared to abide by the GPL and open source their own application. For developers building closed source applications (either within an enterprise or as independent software vendors selling to other companies) we offer a commercial license. Contact firstname.lastname@example.org for details
Rhodes takes much of its inspiration from web-oriented MVC style frameworks such as Ruby on Rails. However it has several simplifications and optimizations for the mobile scenario. Some of these are to make it easier for the developer. Most of them are to keep the framework as lightweight as possible to be able to run on mobile devices with limited memory. As with developing apps on any good app framework (Rails, Merb, Django), building a Rhodes mobile application consists of building a set of files and putting them into the right directories for the respective models.
STARTING A RHODES APPLICATION
Install Rhodes:gem install rhodes
Rhodes features an application generator called rhogen that generates a controller and views for a given model. The syntax for running Rhogen is:rhogen app appname
This will generate a config.rb and an index.html file. Currently config.rb is focused on describing what source to sync with. Modify the URL that you see in this file with whatever your RhoSync server URL and source ID are for this particular “source” or data model. It is assumed that you’ve already set up a RhoSync “source adapter” as described by the RhoSync README.
rhogen model modelname options Generate a Model and Associated Controller and Templates
This will generate a controller as the file controller.rb and several views as action-name.erb (corresponding to the actions below). Each Rhodes model/controller pair has several actions to perform basic CRUD (create, read, update and delete) on the object generated by default by the scaffold . Specifically the template views generated are:
- index – to list all objects
- new – to display the editing form for creating a new object
- edit – to edit the actual object
- show – to show the object attributes
The Rhodes directory structure is outlined below. In a default Rhodes application, there are several subdirectories inside of an app directory, one for each model or synced data object. For example, there might be subdirectories called Account, Employee, and Case. Each model subdirectory contains a controller in the file controller.rb. These subdirectories each contain a set of template files as Embedded Ruby (ERB) files. These control how data from the model is displayed and what links are available to other actions. Note that this structure is reminiscent of Rails and MERB’s structure, but is a bit simpler by design.
build.yml (contains the settings for running builds)
rhoconfig.txt (contains settings for setting the default start and options path)
/public (contains static resources for the generated objects)
/modelname (for example Account)
/modelname (for example Case)
For questions on licensing contact our sales team