Rhodes compiles Ruby into Ruby 1.9 bytecode. Apps written in Rhodes are very fast, and in fact faster on Android than an Android Java app (since Rhodes itself is written in C++ with the Android NDK). Since most Rhodes apps use RhoSync for synchronized local data, the data is always available locally and hence most Rhodes apps appear to the user as far faster than apps written with an underlying SDK.
There are thousands of apps written with Rhodes and other frameworks on the App Store. Apple has clarified that use of frameworks is completely acceptable. No Rhodes app has ever been rejected for using a framework.
Rhodes is for building native apps. But for developer productivity, Rhodes allows programmers to use HTML for its their views (interfaces). Combined with HTML5/CSS/JavaScript libraries like SenchaTouch and JQuery Mobile Rhodes enables much better user interfaces than are typically done with underlying SDKs or with frameworks that use their own JavaScript UI libraries (such as Appcelerator). Rhodes apps are generated with support for JQTouch out of the box today, but it is easy to use Sencha or JQuery Mobile as well.
Rhodes includes several “native controls” such as native mapping, a date/time picker, and tabbars and toolbars. But developers can add their own controls as well via native extensions
Rhodes exposes almost every capability of the underlying device.
You can implement it with Rhodes native extensions
The Model View Controller pattern separates data definitions (models) from business logic (controllers) from interfaces (views). MVC based apps are far more maintainable and understandable. All modern web development languages now use MVC as their dominant approach (Java/Struts, ASP.NET MVC, Python/Django, Ruby/Rails, PHP/Zend). Rhodes is the only framework to offer MVC for native mobile app development.
Having a backend app written with MVC is great. If you have real business logic on the device, MVC is a better approach.
Ruby is easy to learn. See Ruby in Twenty Minutes. Just as most Ruby on Rails programmers came to Rails years ago without any Ruby background, most Rhodes developers do not start doing Rhodes development with existing Ruby knowledge. The Rhodes app generator generates the basic business logic in Ruby, allowing developers with zero Ruby knowledge to be immediately productive with Rhodes.
Rhodes apps can be written with any editor or IDE which supports Ruby and HTML. This includes Eclipse, IntelliJ, NetBeans, Visual Studio, Textmate, VIM, emacs and others.
We do provide an Integrated Development Environment called RhoStudio. We also supply, RhoHub 3.0 which features a hosted IDE, allowing developers to write apps whether or not they have anything installed locally on their own machine. You can generate, edit, and build your native smartphone apps, all online on RhoHub.
Use the Rhodes debugger. See the Rhodes debugger webinar
Rhodes is the only smartphone framework to include a test framework. You can include tests with both your Rhodes and RhoSync apps. See the Rhodes advanced testing webinar
You can use the RhoGallery feature of RhoHub to distribute apps to your initial testers.
The RhoSync app integration server makes it much easier to connect to enterprise apps and informational feeds. But it is not required. You can connect directly from Rhodes via AsyncHttp. See the AsyncHttp example code which connects to an XML feed at and parses it with Rexml.
RhoSync bypasses the need to connect, retrieve, parse, and store data on the device. All data is automatically retrieved from the backend and synchronized to the device. All that is necessary is providing the RhoSync server a “source adapter” which implements “query”, “create”, “update” and “delete” methods to interact with the data source.
Rhodes and RhoSync feature a metadata framework. The metadata framework let you write a single app which works regardless of the underlying data schema. This is important when writing an app to connect to an enterprise application for CRM or ERP, which never use a standard schema. It allows ISVs to build apps to make available on App Stores, which will work regardless of how the customer has customized their enterprise application.
Rhodes is the most scalable sync server available. This is primarily due to its use of a NoSQL database: Redis
RhoSync handles large data sync better than any other sync server with bulk sync
Rhodes is the only way (framework or underlying SDK) to support automatic data encryption
You need to handle on device encryption (see last question), transport security, and delegated authentication. See Building Highly Secure Apps.
You can purchase a mobile device management server or just use the free RhoGallery feature on RhoHub