MegaTrend #9: Cross-platform Mobile Development

In a recent article by InfoWorld Cross Platform mobile development was mentioned as one of the top 10 emerging enterprise technologies.

Until about 1 years ago the options for cross-platform mobile development were

  • doing platform specific native builds for Symbian, WinMo, Blackberry, UIQ, etc. or
  • Java development with specific twists per handset / handset group or
  • WAP/XHTML Mobile Web Site

One of the biggest pains faced by mobile developers was – and still is – device fragmentation. However, with the iPhone a lot of developers turned to develop natively for just one platform because of the tremendous ease and improvements it brought to about every aspect of mobile development:
distribution, ui – experience, not treating apps as third class citicents, monetarization options and needed targeting of devices to reach a critical mass. Now, Apple succeed to generate more than 2 billion downloads with less than 2% market share, truly amazing.

In the same year, autom 2007 Android came out with a SDK which promised even a better world for mobile developers. Due to its nature Android had a slower start, but is definitely emerging as one of the big platforms for the future.

Also in the same year Sun open-source released their LWUIT framework for J2ME development. LWUIT is a GUI framework to target not only Smartphones but also Featurephones of the last few years that support J2Me.

And with the iPhone being such a success of course the other players started to move as well and brought along their own SDK to develop compelling UI’s: Flash Lite (Adobe), WebOS (RIM), Bada (Samsung), Memo (Nokia), Widgets (many), JavaFX (Sun). Last but not least the J2ME spec leads finally settled on a MIDP 3.0 spec and the MSA standard which is pretty cool if it would be adapted by many players.

So instead of fragmentation being reduced, over the years, it has actually being increased. What has changed to the good are that some platforms like the iPhone, Android and maybe others offer now a fairly consistent set of handsets that are fairly wide distributed, so that selecting / specializing on one/two platform became an option for the mobile developer.

However also in the last few years mobile browsers have greatly improved and WebKit became a quasi browser standard. Also manufactures are starting to build javascript extensions to expose phone features like location, multimedia etc. One could argue that given this trend and the forces behind (Google, HTML 5, … ) should give the mobile web sites a good chance of a revival pretty soon. The problem however is, that even though with modern browsers those sites will not be that ugly anymore, users expectations for UI’s have increased as well. Another problem is discovery of mobile web sites. Even though there are 100’000 apps in the app shop, this numer is nothing in compare to the number of possible websites out there.

So what are the new possibilites for cross platform development now, 1 year later?

  • Widgets. W3C standard (no handsets yet though), or JIL (by Vodafone, Verizon, SoftBank and China Mobile): JIL defines a widget standard and more that 350 APIs to access to phone features, and this will be implemented on a lot of handsets in 2010/2011 (already in the oPhone from China Mobile or in the H1 from Samsung for instance).
  • CrossPlatform SDK Frameworks, players include PhoneGap, Rhomobile, and Appcelerator Titanium

The interesting thing about the cross platform SDK’s is that they supposly allow you to create real native looking apps with a uniform technology which is HTML/CSS/JS or Ruby in the case of Rhomobile. So instead of going the long curve of learing Objective-C and then porting the thing to Java for Android you can a) work with a well known web technology and b) have a single code base. Very promising, if they all will live up the promisses the future will show. If anybody has experience  using those SDK’s I would be very interested in opinions and comparisons.

This entry was posted in mobile development and tagged . Bookmark the permalink. Both comments and trackbacks are currently closed.

5 Comments

  1. Posted December 1, 2009 at 5:55 am | Permalink

    Thanks for your post and your comments on the Rhomobile blog. Thought it worth pointing out that Rhodes (Rhomobile’s framework) allows development in HTML/CSS/JavaScript but also Ruby (in this latter area it is unique in the mobile world). The other big differentiators are: synchronized data, support for all smartphones and a hosted development service. A third party in depth comparison is available in the alpha of Graupera and Allen’s book on crossplatform smartphone development: http://www.apress.com/book/view/9781430228684

    • Posted December 3, 2009 at 6:02 am | Permalink

      Thanks for the Link of the upcoming book. I plan to go into details on those SDK’s as soon as I have tried them. As for your USP, informed by various sources, I also would have said the sync engine, and the hosted dev, the flip side being the license fees if the app is not open sourced – for mid-larger corps though not likely an issue I guess.

      Anyways I hope to be able to get my hands dirty on this as I think really super-hot subject.

  2. Posted December 10, 2009 at 12:37 pm | Permalink

    Hi Ben,

    Good analysis on past, present and future. I think it is appropriate to add additional category to cross-platform development:

    We have developed Smartface Designer to overcome fragmentation problem since 2004.

    It is a drag-and-drop cross-platform mobile app development program (IDE).

    please check http://www.mobinex.biz/ feedbacks always wellcome

  3. Posted December 14, 2009 at 2:45 pm | Permalink

    Ben, that’s a good overview of the fragmentation problem for developers.

    Web runtime SDKs (be they OEM, OS, operator, or 3rd party) are one possible solution for one category of apps.

    Another approach is cross-platform “native” (compiled C++) SDKs. These can deliver higher-performance UIs and potentially more functional apps. Qt is one example, and another is our own Airplay SDK ( http://www.airplaysdk.com )

    Airplay SDK allows development of apps in ‘vanilla’ C++, on PC or Mac – you compile to x86 or ARM, then deploy as a single step to all supported OS’s included iPhone, Android, Symbian, Windows Mobile and BREW… and soon to Maemo, LiMo, Samsung Bada and more. You can test your actual ARM code on the desktop, removing clumsy on-device debugging.

    Airplay SDK is already very well proven in the highly-demanding sphere of advanced mobile games; e.g. the recent ‘Call of Duty: World at War: ZOMBIES’ (Activision) which was the #1 grossing app on the US and UK App Stores in November.

    I’d be interested in getting feedback from any of the developers here.

    • Posted December 22, 2009 at 3:28 am | Permalink

      Hi Tim,

      Thanks for stopping by and sorry for the late answer. I am currently burried in work but would defenetly like to checkout Airplay as soon as time allows. Such real-world examples and stories, videos etc. are exactly what I am after. Can you maybe point me to the sources for this?