If you’re doing any kind of mobile development, chances are you’re targeting a specific platform – you download the platform SDK, use the language and the preferred IDE for that platform. You take time to learn the SDK and sometimes the language (as you probably haven’t done anything with objective-c unless you are an apple developer). When you’re done, you take your work to app store for the world to see.

Some times later (presuming you were lucky not to have your app rejected) you decide to port your app to platform B. Unfortunately, platform B, being a direct competitor, doesn’t share a thing with platform A so it’s back to step 0 for you – download SDK, setup IDE, learn both, submit to app store, yadda yadda. What’s worse, your job of maintaining the app is now doubled.

Now, how about if there was a way to build mobile app in a fraction of time, which could run on all major mobile platform out-of-the box?

Too good to be true? Almost. Basically, the trick is to write a web app, and by web I mean – built atop of web technologies such as HTML, Javascript, AJAX – not necessary that these run on web.

Then, using tools designed for this, turn this web app into an installable off line app. These tools also give you API to access otherwise non-accessible parts of device such as camera, phone, contacts or GPS. And from there, you can treat it like any ordinary application (submit it to app store, for example).

It’s just Webkit embedding

Now, building mobile specific versions of your web sites has been around ages but we’re not talking about stripped to mere basics version of your web sites – mobile phones nowadays usually ship with some flavor of Webkit, meaning HTML 5, CSS 3, local storage, SQL database, hardware accelerated animations with full javascript support. Theoretically these could have native application look and feel.

In a nutshell:

Pros

  • it’s a web app. Meaning, it runs inside a browser on any platform out there.
  • it’s built with HTML and Javascript meaning fast development, easy way to prototype your app and try new ideas.
  • you don’t have to deal with any platform obscurities development or publishing-wise. You don’t event have to submit your app to app store – just give users the URL.

Cons

  • it’s a web app. It runs on Javascript interpreter inside a browser control, on a device with limited resources. Obviously, you won’t be writing games using this.
  • there are constraints to API usage via javascript; For example, you cannot access GPS data via Javascript on your Iphone > 3.0. You have to use software as Phonegap to bridge this.
  • it’s a web app so the way it looks and behaves is entirely up to developer. There are no platform specific UI elements to start with, but there are libraries such as Jqtouch that can provide you some of these.

A few resources to get you started

Javascript libraries – you’ll need one of these:

  • JQTouch – a JQuery plugin giving you a lot of UI/behavior to jump start your app development.
  • iUI – The original framework to build iPhone-like applications.
  • Jquery or Mootools – general purpose Javascript frameworks I’ve found to run well on a mobile device
  • XUI – A lighter alternative to the above, targeting mobile devices and nothing else. I’m keeping an eye on this one
  • BaseJS – Some as above, this one more tied to Iphone.

Cross-over application frameworks – you need this only if you’re app makes usage of some platform specific API not accessible via Javascript or you’re releasing it as an offline app:

  • PhoneGap – Open source and activly developed. Supports Iphone, Android, RIM, Windows Mobile, Symbian, Palm and Nokia WRT. Really, is there anything left?
  • Titanium – something of a beast compared to Phonegap as it can even be used to build cross-platform desktop apps. It supports larger amount of native APIs and comes with its own UI library, but as of writing this only Android/Iphone are supported.
  • Rhomobile – this one even more ambitious with its own cloud service to sync data and build apps without even installing the native SDK. Oh yes, and you can write your apps in Ruby too.
  • MotherApp – the official release of is around the corner say the developers, and it promises a unified Javascript Html SDK called DevEngine that runs on cloud and builds apps for Android, Iphone and Blackberry.

I’d also recommend a book by Johnatan Stark. It has Iphone in title, but it’s really about mobile development using HTML and Javascript.

Should I use it?

If your app is one of those simple display of data kind apps, that doesn’t do much I’d say yes. For else, hold on to your objective-c skills for now. The mobile platform ecosystem seems to be moving into web direction, judging by support from platform owners (more and more APIs being introduced in javascript).
Of course, we at fiveminutes.eu, being so easily hooked on anything that could shorten our development cycles are on that wagon already. Stay tuned for more.

0 comments