Shai is a JavaOne rockstar, top 10 JavaZone speaker and has been a professional software developer for over 20 years. Shai has been an active open source/Java community member has worked with countless companies in the field from top operators, phone manufacturers to banks and gaming companies. Shai consulted for Sun Microsystems (and Oracle) since the 90's where he was a core member/founder in high profile projects such as the WTK (worlds most successful mobile development platform prior to the iPhone), LWUIT etc. Shai is the co-founder of Codename One which allows Java developers to write native apps for all mobile devices iPhone/iPad, Android, Windows etc. Shai is a DZone MVB and is not an employee of DZone and has posted 3 posts at DZone. You can read more from them at their website. View Full User Profile

Cross Platform Beats Native When Done Right

  • submit to reddit
Reading Juhani Lehtimaki's posts on dzone in which he claims inferior results when using cross platform frameworks finally convinced me to write about this.

He has a point. Most developers look at Cross Platform tools as a means of saving money and cut corners when using them. Resulting in lower ratings and low quality apps.
However, there are great cross platform apps e.g. Music Cloud (LWUIT/Codename One based), Waze & Telmap (LWUIT 1.2, a pretty old version).

I won't talk about the frameworks Juhani mentioned, since I would tend to agree that they all fall into 1 of two categories: HTML or Lowest Common Denominator. Both are IMO terrible approaches for cross platform unlike Codename One which is radically different.

When users ask for Native apps they mean: High quality, fast app that received developer investment and QA. They aren't asking you to code your app in Objective-C or make it look like all the other apps.

Waze, looks nothing like a native app yet has a tremendous user rating. How come?

The developers took the time saved on porting & QA (which is faster since bug fixes are ported too) to deliver functionality. Functionality trumps everything.

When creating a native app you are giving up on some functionality and on niche platforms.

The problem is that throwing money/developers at the problem of building mobile apps doesn't make it scale better/faster. So even if you have an unlimited financial budget you will end up with less functionality and longer release cycles when doing native coding.

A friend recently told me: "The only reason anyone ever does cross platform is to save money".

Unfortunately that's usually true, but my response was: "They shouldn't. They should use cross platform to provide a distinct experience and more features.".
Published at DZone with permission of Shai Almog, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)