Note: This Article is Originated from Stack overflow Question : Comparison between Corona, Phonegap, Titanium which is answered beautifully by DennisJZH
- PhoneGap is not just a native wrapper of a web app. Through the
functions such as Geolocation, Accelerometer Camera, Contacts, Database,
File system, etc. Basically any function that the mobile phone SDK
normal web app that runs on the mobile web browser does not have access
to most of these functions (security being the primary reason).
Therefore, a PhoneGap app is more of a mobile app than a web app. You
can certainly use PhoneGap to wrap a web app that does not use any
PhoneGap APIs at all, but that is not what PhoneGap was created for.
"native bits". They are packaged as resources to the executable bundle,
much like an embedded image file. When the application runs, these
same way in PhoneGap as well. From architectural standpoint, these two
frameworks are very similar.
So, if your concern for your app is to make it more "native" looking, Titanium is a better choice. If you want to be able to "port" your app to another platform more easily, PhoneGap will be better.
Updated 8/13/2010: Link to a Titanium employee's answer to Mickey's question.
Updated 12/04/2010: I decided to give this post an annual review to keep its information current. Many things have changes in a year that made some of the information in the initial post outdated.
The biggest change came from Titanium. Earlier this year, Appcelerator released Titanium 1.0, which departed drastically from its previous versions from the architectural standpoint. In 1.0, the UIWebView control is no longer in use. Instead, you call Titanium APIs for any UI functions. This change means a couple things:
- Your app UI becomes completely native. There is no more web UI in
your app since the native Titanium APIs take over control of all your
UI needs. Titanium deserves a lot of credit by pioneering on the
"Cross-Platform Native UI" frontier. It gives programmers who prefer the
look and feel of native UI but dislike the official programming
language an alternative.
- You won't be able to use HTML or CSS in your app, as the web view
is gone. (Note: you can still create web view in Titanium. But there
are few Titanium features that you can take advantage of in the web
view.)Titanium Q&A: What happened to HTML & CSS?
Move on to PhoneGap. There are not many new things to say about PhoneGap. My perception is that PhoneGap development was not very active until IBM jumped on board later this year. Some people even argued that IBM is contributing more code to PhoneGap than Nitobi is. That being true or not, it is good to know that PhoneGap is being active developed.
execution. Safari JS engine: SquirrelFish Extreme
- Web page rendering moving from relying on CPU to using GPU acceleration. Graphic intensive tasks such as page transition and 3D animation become a lot smoother with the help of hardware acceleration. GPU Accelerated Compositing in Chrome
Such improvements that are originated from desktop browsers are being delivered to mobile browsers quickly. In fact, since iOS 3.2 and Android 2.0, the mobile web view control has become much more performing and HTML5 friendly. The future of mobile web is so promising that it has attracted a big kid to town: JQuery has recently announced its mobile web framework. With JQuery Mobile providing UI gadgets, and PhoneGap providing phone features, they two combined creates a perfect mobile web platform in my opinion.
I should also mention Sencha Touch as another mobile web UI gadget framework. Sencha Touch version 1.0 was recently released under a dual licensing model that includes GPLv3. Sencha Touch works well with PhoneGap just as JQuery Mobile does.
If you are a GWT programmer(like me), you may want to check out GWT Mobile, an open source project for creating mobile web apps with GWT. It includes a PhoneGap GWT wrapper that enables the use of PhoneGap in GWT