Cross plarform mobile development

Hi all, what I’ve been into lately is testing some tools for getting a descent cross platform development framework. What I’ve been testing most was PhoneGap, Appcelerator Titanium, Golden Gecko and Whoop. The last 2 are not open platforms neither do they target developers (but rather designers) so I won’t mention them any further. For those of you who may be interested you may contact the guys for a demo. The first 2 are open source. So here they are:

First what is common? Most noticeably Web development skills. Both platforms adopt Javascript as their writing language as well as CSS and html. The way they do it is different though.

PhoneGap includes support for iPhone, Android, Symbian, Blackberry and Palm. Titanium on the other hand includes export support for iPhone and Android.

The way your “web” code is used by each platform for getting the wanted result differs.

PhoneGap perspective is simple: What it does is actually embedding a full screen web view in your application which renders Javascript Html and CSS the way you wound expect from the device’s browser. So this is actually a web site? Nope. It gives you the option to uses some special tags inside html which access lower level pieces of code. Phonegap has a lot of such modules included in the package allowing you for example to get access to the device’s GPS, Accelerometer, Camera etc. This perspective is simple yet it gives you a lot of flexibility for passing already existing web sites through the AppStore’s channels. Porting is easy too as there is not many things to change in your Javascript or other code between platforms. Yet, don’t expect to do complicated stuff like OpenGL or low level APIs access.

Titanium on the other hand offers what PhoneGap offers with the addition of its own native controls. Javascript is always the writing language but instead of launching a full screen Web View and render everything like a web site, developer has the chance to use many controls written for Titanium. eg You may throw in you code a OpenFlow view control (the control that Apple uses for browsing through iTunes’ records covers) or a list with each line drawing RSS feeds very easily. The result is a really native feeling application. Performance is equal to writing the whole thing in the native language too. In case there is a feature not yet supported by the framework you have the option to write any piece of native code in a module format and vouala: you call it to appear with a single line in Javascript.

And the winner is:

Well, none really if you expect some short of magic wand for transforming 5 lines of code into a super performance super native looking app in 7 platforms! For getting a really great app you still have to think native.

On the other hand apart from the obvious usefulness in writing an app in Javascript in 3-4 hours what these frameworks offer is cross platform support. Both frameworks started from iPhone as their base code and this is where they perform best. On other platforms Titanium’s doesn’t perform as hoped. This is expected as native controls are difficult to write in other platform moreover when they have to behave in a similar manner. For example if you throw in an iPhone app an OpenFlow control, it will not be ported on Android (yet). PhoneGap performs better on cross platform performance as it was expected. Don’t forget we are actually talking about a web site here.

Which you choose between both differs on your needs. In case you want a lot of platforms and something simple (in a web site logic) PhoneGap is the case. Titanium on the other hand is more ambitious. If you want something better performing and easily developed it is your choice. Forgot to mention titanium also ships with its own development environment so what you avoid is the notorious X-Code, Eclipse or other. Just push the export button.

happy coding :)



One Response to “Cross plarform mobile development”
  1. jbozabalian June 29, 2010

Leave a Reply

Your email address will not be published.