Cross-Platform Mobile Development

Jake Petroules picture Jake Petroules · Nov 8, 2010 · Viewed 12k times · Source

There are a great deal of cross-platform mobile development frameworks around. The major platforms, all mutually incompatible, are:

  • iOS (iPhone, iPad & iPod Touch)
  • Android
  • Blackberry
  • Windows Mobile
  • Windows Phone 7
  • Symbian
  • MeeGo (merger of Maemo and Moblin)
  • webOS

There also exist many different mobile development frameworks that support various arrays of smartphone platforms, including but not limited to:

  • Rhodes
  • ELIPS
  • RAMP
  • Titanium
  • PhoneGap
  • MoSync
  • airplay
  • Bedrock
  • Qt

Qt is a great framework for cross platform desktop application development, and takes care of several mobile platforms - Windows Mobile, Symbian, MeeGo. There are community ports for iOS and Android (and webOS?). Blackberry and WP7 are on their own for now.

MoSync also looks quite good, supporting a great number of platforms, including Java-based ones, from C++. However it's not very well known AFAIK and has its own issues.

So my question is: is there ANY cross-platform mobile development framework actually worth using? Every one I've found has one disadvantage or the other that makes it unsuitable for use.

At least if Qt supported iOS and Android you'd need at most three versions of an app to support all platforms (Qt, Blackberry and WP7). The community ports that are around are not well supported at all though, and are far from complete. Plus, even if they are completed, would Nokia ever support them anyways or would that be seen as a bad business strategy?

Should I just bite the bullet and write native ports for each smartphone platform? Qt + iOS + Android + WP7 + Blackberry + webOS? 5-6 versions of an application is quite a lot to maintain, but the solutions for cross-platform development on smartphones don't look that great right now.

Answer

rubenvb picture rubenvb · Nov 8, 2010

UPDATE By popular request, a link to the Qt 5.2 release's Android support page, as it's now officially integrated and "production-ready".


Well, Qt can support Android, via the freshly integrated internal Lighthouse project and the works of an individual developer, who will probably be busy integrating his code in the Qt codebase:

Expect to see Qt 4.8 with Android support through Lighthouse.

iOS has a similar drive behind it, but the projects are only starting:

http://forums.internettablettalk.com/showthread.php?p=865264#post865264

Lighthouse provides a tiny abstraction layer for the gui/core operations of Qt, providing a very easy way of porting the framework.