Choosing a Framework for Cross-platform Mobile App Development

Five Mobile Systems

A friend of mine asked me today:

I have my own idea for a mobile and desktop app.

Would you have any recommendation on what SDKs to use? I’d like to use as few as possible and get cross platform as possible. The app is simple, it basically connects to a web service, gets data, and makes charts.

I get this kind of question a lot, so I thought I’d share what I wrote to him:

There are a couple options for app frameworks, and on one framework there are a bunch of options for UI/DOM frameworks.

First off, the cross-platform mobile frameworks I know about are JavaScript-based. I know at least one which is game-oriented and uses Lua, but it doesn’t sound like you’re doing game dev. So, you’ll need to be doing your work in JS at least, and possibly JS/HTML/CSS.

There are really two solid options I see for locally-installed apps:

  • Appcelerator Titanium Mobile: focuses on native-looking apps; essentially a JavaScript bridge to the native platform on iOS and Android. They’re close to having Blackberry available too. This works well if you really need to use truly native UI widgets and only need those top 2-3 platforms, and/or need deeper integration into native APIs.

  • PhoneGap: Basically a packager that takes a webkit browser app and encapsulates it into a package to install locally on your device. Has much wider support for different platforms, but only hooks into the most common native APIs. Also doesn’t provide any kind of UI toolkit — it’s all Webkit, so you make your own choices for a DOM framework. Mobile web frameworks to look at include Jo, xui, Sencha Touch, jQuery Mobile, jQTouch, and others. Or, you just build it yourself with custom HTML/CSS/JS.

Hope that helps!