Shai has been developing software professionally since the 1990 and developing in Java since 1996. Shai formed a software consultancy in 1999 through which he consulted extensively to Sun Microsystems, IBM, Banks, cellular Operators, device manufacturers and startups. Shai has worked on countless projects in multiple fields within the industry. Shai is currently the co-founder and CEO of Codename One which is an open source initiative to reclaim Java's role as a client side development tool by bringing WORA to all mobile platforms. Shai 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 its author, Shai Almog.

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