I wrote an introductory post a while back that gave a brief overview of the three main cross-platform mobile development frameworks. At that time, Rhodes was definitely the leading solution in terms of features and support of several different platforms, while Titanium was still in a pre-release state and presented an uncertain future in terms of licensing. PhoneGap was a nice solution, but didn’t feel ready for prime time.
Our platform of choice has been Rhodes.
Things are changing very fast though, and nowadays we’re considering the best approach on a project-by-project basis.
We now have a few projects under development using Rhodes, and while we’ve been working hard to improve and contribute to the framework, which made us formally become Rhomobile development partners, we also kept our eyes open for alternatives.
If your project is to develop a reference app, or some data-driven app, then it is a good fit for Rhodes, however we learned the framework requires an extra effort in coding all interface behaviors that are not included in it. We’re building a library of javascript code on top of what is available out there so in time our Rhodes apps will look and feel more and more native. However this is still a work in progress and doesn’t deliver all the features required for an app to be indistinguishable from a native app.
The main point is that to achieve a decent user experience on iPhone, Android and BlackBerry with Rhodes you can’t just rely on the framework, and that added effort needs to be done to deliver a quality product. When we look at the other platforms supported by the framework (namely Symbian and Windows Mobile), the situation gets worse because the browsers in those platforms offer rather primitive javascript support which will make it harder to create the user experience one would expect out of a latest genration smartphone (ok, perhaps Symbian and Windows phones cannot really be considered such?…).
For this reason, I tend to recommend, for projects that are being planned today, to target Windows 7 Phone Series instead of Windows Mobile 6.x. About Symbian: there are very many versions out there and you should pick the ones you wish to support carefully. You will probably want to support only touch-based Symbian devices at start in order to minimize the extra effort in redesigning and re-implementing the user interface. Same goes for the BlackBerry: supporting the touch devices only will save you time and money.
Now back to our main topic: Rhodes is a “catch all” framework in which they bet on supporting the highest number of platforms, and that means sacrificing on the user experience and the look & feel of the app. The main issue with Rhodes is that you will be trying to make a webpage look like a native screen. The Appcelerator Titanium team realized that won’t get you an app that feels native, and made a big change in the framework from 0.8 to 0.9 versions: they focused on getting the user experience right on a platform before moving on to support another one.
Titanium only supports iPhone and Android with BlackBerry and iPad support coming later in 2010. This new framework matured a lot faster then Rhodes, in part thanks to the focus on less platforms at a time. The main feature that sets Titanium apart from Rhodes and PhoneGap is that it has an user interface API. This leads to the best replication of the look and feel of a native app.
So far, we’ve seen that the effort required for a Titanium project is near to the one for iPhone SDK apps, while Rhodes projects always require that extra effort I mentioned.
On top of that, Titanium has a much better support for multimedia (audio, video) then Rhodes has, making it a better suited framework for anything that requires multimedia.
Another great thing about Titanium is that we’ve been successfully deploying in parallel on both platforms so far, so this would allow for simultaneous releases on iPhone, iPod Touch and Android based smartphones.
Titanium 1.0 was released earlier this week and Appcelerator finally unveiled the official licensing terms. Titanium Community is free and open-source. It includes the full featured Titanium SDK, access to the community forum, the Analytics Portal with 1 week worth of data to keep up with the usage of your app.
Titanium Professional includes the same SDK, access to Priority Platform Fixes and Beta Previews (such as BlackBerry and iPad beta support), gets you 6 months worth of data in the analytics, includes a free introductory training and access to the Premium Support Portal, that guarantees a response time of 48 hours. Titanium Professional costs 199 USD per developer per month, with a 25% saving on annual subscriptions.
If you ask me, this is very expensive especially for smaller companies. Appcelerator also mentioned an Indie version to be available at 499 USD, but the details on who can access this license are still unclear.




App submission changes
iPhone 4 reception issue: myth or fact? Design flaw or software issue?
How to build and submit a Universal App for distribution on the App Store with the iOS 4 SDK
Microsoft Pink smartphone project: KIN gets killed
Always a pleasure to read your analysis Mauro. In Rhodes 2.0 we are doing stylesheets that use best of breed techniques from JQTouch, IUI, WebApp.net that provide far better UI than “native controls”. This will be released this month. And you can see the Android stylesheets in the Rhodes 2.0 unstable branch. The “convert HTML to underlying controls” approach is not portable and the typical such app doesn’t like as good as a well-styled UIWebView control focusing app anyway.
Rhodes 2.0 also features streamining BIDIRECTIONAL HD audio-video. You can write an app that embeds audio and video capture from the device. Very few App Store apps have such a feature.
Today Rhodes is the only framework that offers:
- an MVC framework
- an Object Relational Manager
- an application generator
- synchronized data
- the first Ruby on mobile devices
- the first and only Development as a Service for mobile.
Rhodes 2.0 will take those advantages and the productivity and portability that Rhodes offers and allow building apps that are difficult to even do with a single underlying SDK (such as Objective C) on a single platform.