Native Apps or Web Apps?

It’s actually a chicken-or-egg problem, and it all began with Apple. Let me illustrate.

In the beginning, there was the iPhone. It was all good, slick and sexy. It has touch screen and blows away the competition. The slumbering desktop with traditional web controls was caught off guard. Apple tried to bend the user interface to its liking and thus was born its non-standard native controls (heck, smartphones and tablets are post-PC devices!). Of course, Google won’t let Apple dominate the world, so it developed Android.

Meanwhile, the sleeping standards body called W3C is suddenly awake to rein on the proliferation of non-standard controls and other native features of iOS and Android. All in the name of order, otherwise known as standards (HTML5). It was order over chaos, but who is going to stop Apple or Google? Nobody can.

It is native apps vs HTML5!

You see, Apple is pushing its products with accelerometer, camera, compass, gyroscope, ambient light sensor, magnetometer, geolocation, Bluetooth, assisted GPS, Siri, etc. It’s really a very, very sophisticated device squeezed into a small form factor. It’s amazing, astounding, you’ll be at a loss of words how you can all appreciate those features.

On the other hand, the W3C is all about standards. As I have said earlier, it’s all about interoperability among various implementations to ensure smooth process of development. Apple, Google and others would not wait for W3C to finalize the HTML5 standard, hence developers are torn which way to go.

So the question is, native apps or web apps?

It depends on you application. If you will use the native hardware features of your target, it’s a no brainer – build it as native apps! Otherwise, just build it as a web app. Maybe it’s only me, but boy don’t create a native app just for the sake of native app development. The web has become a paradigm of user interface and usability. Don’t be fooled with creating native apps without taking advantage of its native features. Of course, nobody’s stopping from doing what you want to do, but what’s the point?

If you target only one platform, go ahead. Go native.

If you target cross-platform, that’s another. If you want the least headaches, I advised you go the web app way. Why? Because web apps is the least common denominator among mobile platforms.

Which brings us to the mobile platform tools in the market today.

1. Titanium Mobile – you build in HTML5, CSS3 and JavaScript, Titanium compiles your code into native code in iOS or Android. If the Titanium API doesn’t provide your native needs, you may use Objective-C (iOS) or Java (Android) providing direct access to its native features

2. PhoneGap – build applications for mobile devices using JavaScript, HTML5 and CSS3, instead of often less-known languages such as Objective-C. The resulting applications are hybrid, meaning that they are neither truly native (all layout rendering is done via the webview instead of Objective-C or Corona apps) nor purely web based (much of the functions would be supported by HTML5). One disadvantage is that hybrid applications do not have full access to the device application programming interface (courtesy: Wikipedia)

3. Sencha Touch – the mobile counterpart to the Ext JS framework. Its approach differs significantly from jQTouch and jQuery Mobile: instead of enhancing preexisting HTML, it generates its own DOM based on objects created in JavaScript. As such, working with Sencha feels a little less “webby” and a little more like building apps in other technologies like Java or Flex. (It’s also a bit more like YUI than like jQuery.) (courtesy of Dave Feldman)

4. JQuery Mobile – just released its 1.0 version. By using PhoneGap, you can turn JQuery Mobile code into apps that can be distributed into popular app stores.

 

But in the end, it’s anything goes! It all depends on the developer, but you have to know your tools, otherwise you’re in for a lot of surprise.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s