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.