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
(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
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