Titanium, PhoneGap, Sencha Touch, jQuery Mobile – Clearing up confusion

There’s a lot of buzz with the new mobile web frameworks and mobile platforms.  There’s also a lot of confusion and vague terms being thrown around that are causing people to misunderstand what each of these tools do.  I hope to clear up some of the confusion with a few brief points.

A mobile web app is not the same as a mobile native app

A lot of people think that Titanium and PhoneGap are in competition with Sencha Touch and jQuery Mobile.  They aren’t the same thing.  I’m sure I’m going to get some comments on this but think of a mobile web app as a website.  Think of it as Basecamphq.com or Twitter.com.  A mobile web app runs in your browser.  Almost all of the app’s resources are remote, stored on some server somewhere.  Sure there might be some local storage happening but at the end of the day it’s a website application.

A native app runs on your device.  All of it’s resources are installed locally on your machine.  A native app uses platform and language specific API’s native to that device.  You can’t run NSString in a mobile web app.  A native app has access to local resources while a mobile web app cannot.

“So what’s the difference between what’s out there?”  Here’s the difference:

Sencha Touch and jQuery Mobile

These are mobile web frameworks.  You can use these technologies to create web-based, mobile apps.  They don’t have access to any native API’s.  Both of these projects run in javascript.  Both projects have totally separate ways of tackling similar problems but they are similar in that they are for the mobile web.

You can use Sencha Touch and jQuery Mobile inside both PhoneGap and Titanium.  If you decide your html/js is cool as a native app too, you can use either PhoneGap or Titanium to wrap a browser around your app and put it in the app store or marketplace.  This is where, I think, the confusion comes.  Putting your Sencha Touch or jQuery Mobile apps in a native wrapper doesn’t make it a native app.  It makes it appear as if it is a native app.  You might get some extra functionality from PhoneGap or Titanium API’s, but it’s still not necessarily a ‘native’ app.  It’s a web app running locally on the device.  It’s a great way to use web technologies inside a native-like area.

PhoneGap and Titanium

PhoneGap and Titanium are not similar to Sencha Touch and jQuery Mobile.  In fact, I would go as far and say that PhoneGap and Titanium aren’t all that similar.   Both allow you to distribute native or native-like apps.  Both don’t need to “build support” for Sencha Touch or jQuery Mobile.  Why?  Because the devices they support come with browsers.  Remember, Sencha Touch and jQuery Mobile run in the browser.  Since both PhoneGap and Titanium allow you to run things in a given device’s browser, they already have support for Sencha Touch and jQuery Mobile.

The biggest difference with PhoneGap and Titanium is what they offer.  PhoneGap serves as a wrapper for the browser.  It appears as if it’s a native app but it’s really an html/javascript app.  Titanium can do the exact same thing via “webViews” but Titanium takes it a step further by offering a slew of native APIs for Cocoa Touch outside the browser.  The two apps I have in the app store are 95% non-web based.

In Titanium you code in javascript, using Titanium’s unique API.  The end result, at the app’s runtime, is native performance, native UI’s, etc.  In simplest terms: You code in javascript and it ends up being Objective-C (in the case of iOS apps).

I’m still skeptical of the “end of native” chant going around.  After building apps for the browser and for the device I think that there is a lot of room for both to still exist together.  Understanding the differences of the technologies out there will help clear that up.

 

http://beautyindesign.com/blog/titanium-phonegap-sencha-touch-jquery-mobile-clearing-up-confusion/

 

http://mobile.51cto.com/hot-274040.htm

你可能感兴趣的:(jquery,mobile,UP,browser,PhoneGap,resources)