What is the best cross-platform mobile framework out there?
Let’s take a look at the main three competitors.
First of all, cross-platform compatibility is all about compromising on the native look, feel and features of devices. Therefore, if you’re looking into creating a 3D game or an interactive, multimedia, animated app, you’re looking in the wrong direction.
PhoneGap, Titanium and Rhodes are all based on web technologies and are aimed at web developers that want to leverage their current skills set to the mobile apps world.
This is done the same way in PhoneGap as well. From architectural standpoint, these two frameworks are very similar. So what about the differences?
So, if your concern for your app is to make it more “native” looking, Titanium is a better choice. If you want to be able to “port” your app to another platform more easily, PhoneGap will be better.
How does Rhodes fit into the picture?
“The Rhodes application framework allows developers to create native mobile applications with portability of editing HTML templates and the power of the Ruby programming language. Applications written in Rhodes exhibit the performance and richness of apps written to the native device operating systems with local data but enable developers to have the productivity of web interfaces in HTML. Developers write their applications one time and they then run on all major mobile device operating systems: iPhone, Windows Mobile, Blackberry and more.”
Rails developers will have a quick start with Rhodes and be able to get productive in a matter of days. The framework also has its limitations though. No audio and video support make it suited for data-based apps only, and while you can extend the framework using native calls to the APIs for each device for the parts of the app that require access to features not supported by the framework, it doesn’t necessarily mean that these will work smoothly.
Moreover, developing the native calls for these features exposes the developers to the native SDK and environment and therefore take away the main point of using a cross-platform framework in place of the native SDKs (learn once, write once, deploy on all).
Another advantage of Rhodes upon the other two is RhoSync. RhoSync retrieves data via web services (REST or SOAP) from backend enterprise applications for distribution to downstream mobile devices. It keeps a master store of all enterprise application data and keeps track of the information that users have received. It is written to be far simpler to deploy and configure than similar technologies that have come and gone over the past decade.
This doesn’t mean you cannot code against web services using PhoneGap and Titanium of course.
Finally, another differentiator is the licensing for each of these frameworks.
PhoneGap is open source and free for all to use.
Titanium is free while it is in beta, but will become a commercial product.
Rhodes is a commercial product and costs 500 USD per project, to be paid upfront before you start the development.
Surgeworks has been an early adopter of Rhodes. Even though the technology was the most mature at the time, it did present our developers some surprises and several challenges. The framework has been evolving very quickly: many issues have been fixed since our first approach with it.
Our Rhodes team (Brad Midgley being the project manager and Radu Cojocaru being the lead developer) is actively contributing to the framework evolution by submitting patches. Our first project built in Rhodes should hit the store some time in February.
At the same time, we’re keeping a close eye on PhoneGap and Titanium. I tend to prefer PhoneGap between the two because it is an open technology and supports more platforms.
Now back to one of my initial sentences, about making cross-platform games and multimedia apps. We’re all waiting to see the time in 2010 when Adobe will manage to release Flash CS 5 to build iPhone Apps and there is a hope that some follow up, expensive upgrade (CS 5.5?) will support building native apps for Android and BlackBerry, but until then, you’d better forget about cross-platform games and multimedia apps. I know there’s flash Lite, but can you package that in a native Android and BlackBerry app? and will that compatible with Flash CS 5 iPhone environment?… Too many questions to adopt this technology today.
If you’re looking into cross-platform 3D games, you should check out Unity. They currently only support Mac OS X, Windows and the iPhone… but I bet that support for more mobile platforms will follow in 2010.