May 25 2010

Cross-platform development options for smartphone apps

Developers have been hindered by the need to develop an app from scratch for each smartphone platform (for example, Apple's iPhone, Google Android, Windows Mobile, Palm webOS, and Nokia's Symbian). Because apps developed in the native language of one operating system aren't compatible with others, it's tough for users to have a consistent experience with an application: If you have an iPhone, and I have an Android phone, an app you suggest to me may not be available for Android, or it may work much differently. As Jason Calacanis pointed out on This Week in Startups, it's a shame that we spent so much time developing platform-independent standards for the Internet, but now we're back to fragmented platforms.


Apple iPhone4
Android phone


To address this, several cross-platform development tools have come out in the last year or two. By cross-platform development, I mean the developer writes the code for the app once, then can port it to other smartphone platforms relatively easily. One way to do this is to write the main code in web standards, such as Javascript, HTML, and CSS (cascading style sheets). Many programmers are already familiar with these standards, and they were designed to be interpreted by many platforms and browsers.

A blog post by Savio Rodrigues mentioned three cross-platform development tools; I learned of one more. Here, I've listed my impression of their features and drawbacks, but we haven't used them, so I'd like to get developers' impressions and experiences on them. I'm not a developer, so this is a high-level view from a business perspective.

1. PhoneGap

PhoneGap is an open-source tool that lets you use Javascript, HTML, and CSS to code an app once, then deploy it to the iPhone, Android, and BlackBerry.

It's from Nitobi Software, which doesn't charge anything for the software, but offers support plans from $1,000 - $25,000 per year; the pricier plans allow more developers to use the support. Nitobi offers PhoneGap training classes as well. There are also free community resources for PhoneGap, such as a Google Group and Wiki.

The big plus of PhoneGap is that you can code apps in web standards, then run them on multiple smartphone platforms via their web browsers. The downside, I've heard, is that the apps run slowly because they're essentially running inside the web browser. On a desktop or laptop computer, Javascript is often fast enough for things like animation, but it may be noticeably slow on a mobile phone that is trying to run the user interface.

2. Titanium Appcelerator

Appcelerator is also open source. It allows coding in Javascript, HTML, CSS, Python, Ruby, and PHP for iPhone, iPad, and Android.

Again, there is a free community version; it includes analytics and a forum. Appcelerator support plans are available for $1,699-$4,499 per user per year. Titanium also offers Appcelerator University Training.

Appcelerator's big plusses are being able to code in web standards and getting native code out. So your app should be quick to develop (if you don't already know Objective C, for the iPhone; or Java, for Android) and run fast. Here's one coder's review of Appcelerator.

3. Rhomobile Rhodes

Rhodes lets you code in HTML and Ruby for iPhone, Android, BlackBerry, Symbian, and Windows Mobile. If you need backend syncing, RhoSync can handle that data exchange for you. If you want a hosted development environment, RhoHub is available.

You can use Rhodes for free, but only if you open-source your app. Otherwise, Rhodes costs $500 per app. RhoSync starts at $5,000 per app for up to 100 users, then the price doubles each time the number of users increases ten-fold. The RhoHub development environment is free for public apps and collaborators; it costs $20 per month for three private apps or $100 per month for 100 private apps. RhoMobile also offers training.

Rhomobile's major plus seems to be that there's a lot of infrastructure available if you want to use it, but you do have to pay for it. There is a free, no-frills version, but you have to open-source your code, which many developers may not be willing to do.

4. QuickConnect

QuickConnect lets you code in Javascript, HTML, and CSS for iPhone; Android and BlackBerry support is in development, while Symbian and Palm WebOS development is planned (see the QuickConnect applications roadmap for updates). QuickConnect seems to be largely a one-person project: Lee Barney, a professor at Brigham Young University, is developing it and seems to reply to developers' questions extensively. Support is through online resources such as a wiki, blog, and Google group.

QuickConnect's code is open source, and you can use it for free whether you're developing open- or closed-source projects.

QuickConnect seems to be bare bones and a good choice for developers who want to be involved in the framework's development.

Final thoughts

For a bootstrapped startup like ours, Appcelerator seems to offer the best combination of price (free if you don't need support) and speed (native speed) for key platforms (iPhone and Android). If you're a well-funded company that can pay more to get to market quicker, Rhomobile may be for you. PhoneGap sticks the closest to web-standards development -- there's no conversion to a native programming language -- but you may give up app speed to gain that convenience. And QuickConnect is small and lets you interact directly with its developer to request fixes and improvements, but doesn't have the backing of a company if you need extensive resources or support.

Do you have experience with any of these cross-platform development tools? Let us know what you've found!

Image credits: iPhones: Idea go / FreeDigitalPhotos.net; Android OS: Android Open Source project.