Titanium, PhoneGap, Sencha Touch, jQuery Mobile – Clearing up confusion
November 2, 2010There’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.
I agree 100% percent in what you are saying.
I have been evaluating PhoneGap and Titanium and I would recommend people individually do the analysis and see what tool/framework works for the problem you are trying to solve… I blogged about it after a question on StackOverflow
You might want to differentiate between framework philosophies.
jQuery Mobile (like jQuery and jQuery UI themselves), adds interactivity and styling to ‘classic’ declarative HTML, probably generated on the mobile site’s server side.
Sencha Touch (like ExtJS) is more of a programmatic approach, where a mobile app is written almost entirely in Javascript, and creates the majority of the HTML itself on the client when executed.
This is a nuanced difference, but may matter if you sense that what you are developing is either a ‘mobile site’, or a ‘mobile app’.
Hi James,
I didn’t spend any time on the differences of the two as my goal was to distinguish the difference between Sencha / jQuery and PhoneGap / Titanium. You’re right, there is a difference in which Sencha and jQuery approach a mobile web app.
I researched a lot but finally found something useful.
Got a clearer idea,
If I want the app to be fully web based and no native, I will have to resort to sencha otherwise, if only UI is concerned, I can go for JQueryMobile
http://www.the4thdimension.net/2011/07/sencha-touch-vs-jquerymobile.html
Nice blog. A few months back, I had to dig around to try and figure out the differences between ‘mobile app frameworks’ and ‘mobile web frameworks’. Just wanted to know which direction was best for my interests. Your post is the most concise explanation I’ve seen so far. Thanks.
[...] a more eloquent overview, visit Rich Blalock’s blog BeautyInDesign. Here’s a [...]
This was a well put together blog. Very clear. I appreciate you sharing.
“I’m still skeptical of the “end of native” chant going around”
If you want to talk about user interface fads can we first talk about the overuse of text-shadow on websites now-a-days. You have a nice website but the ever-present text-shadow is an annoyance imho. I think we need to kill this design fad once and for all.
Whaa?
[...] Titanium, PhoneGap, Sencha Touch, jQuery Mobile – Clearing up confusion (tags: mobile html5 jquery iphone development) [...]
[...] Titanium, PhoneGap, Sencha Touch, jQuery Mobile – Clearing up confusion (tags: mobile html5 jquery iphone development) [...]
[...] Titanium, PhoneGap, Sencha Touch, jQuery Mobile – Clearing up confusion (tags: mobile html5 jquery iphone development) [...]
Great resource.Thanks for sharing.
This clears up a lot of the confusion around these new technologies. Thanks so much!
great subject, 10x
I would say Titanium beats the competition of all compared to rest of frameworks.
Because? Such a statement is useless without telling why so.
Thanks a million for taking the time to put these resources together.
It really helps to have professional resources to turn to for some quick information.
My organization has recently published a detailed paper comparing Mobile app frameworks and determining ultimately which are worth the investment and will be around 12 months from now – http://tinyurl.com/4452szs