Corona VS Phonegap Vs Titanium

I am a web developer and I want to move my web products to iPhone. One of the products is like Google Maps: show map on the phone screen, you can drag or resize the map and view some information that we add to the map.

I know there are some technologies that enables you to use HTML, CSS and Javascript to develop native iPhone apps. I’ve identified a few:

Are there other, similar products? What are the differences between them? Which should I choose?

cdl_capture_2011-09-29-24_ 000

From what I’ve gathered, here are some differences between the two:

  • PhoneGap basically generates native wrappers for what are still web apps. It spits out a WhateverYourPlatformIs project, you build it, and deploy. If we’re talking about the iPhone (which is where I spend my time), it doesn’t seem much different from creating a web app launcher (a shortcut that gets its own Springboard icon, so you can launch it like (like) a native app). The "app" itself is still html/js/etc., and runs inside a hosted browser control. What PhoneGap provides beyond that is a bridge between JavaScript and native device APIs. So, you write JavaScript against PhoneGap APIs, and PhoneGap then makes the appropriate corresponding native call. In that respect, it isdifferent from deploying a plain old web app.

  • Titanium source gets compiled down to native bits. That is, your html/js/etc. aren’t simply attached to a project and then hosted inside a web browser control – they’re turned into native apps. That means, for example, that your app’s interface will be composed of native UI components. There are ways of getting native look-and-feel without having a native app, but… well… what a nightmare that usually turns out to be.

The two are similar in that you write all your stuff using typical web technologies (html/js/css/blah blah blah), and that you get access to native functionality through custom JavaScript APIs.

But, again, PhoneGap apps (PhonGapps? I don’t know… is that a stupid name? It’s easier to say – I know that much) start their lives as web apps and end their lives as web apps. On the iPhone, your html/js/etc. is just executed inside a UIWebView control, and the PhoneGap JavaScript APIs your js calls are routed to native APIs.

Titanium apps become native apps – they’re just developed using web dev tech.

What does this actually mean?

  1. A Titanium app will look like a "real" app because, ultimately, it is a "real" app.

  2. A PhoneGap app will look like a web app being hosted in a browser control because, ultimately, it isa web app being hosted in a browser control.

Which is right for you?

  • If you want to write native apps using web dev skills, Titanium is your best bet.

  • If you want to write an app using web dev skills that you could realistically deploy to multiple platforms (iPhone, Android, Blackberry, and whatever else they decide to include), and if you want access to a subset of native platform features (GPS, accelerometer, etc.) through a unified JavaScript API, PhoneGap is probably what you want.

You might be asking: Why would I want to write a PhoneGapp (I’ve decided to use the name) rather than a web app that’s hosted on the web? Can’t I still access some native device features that way, but also have the convenience of true web deployment rather than forcing the user to download my "native" app and install it?

The answer is: Because you can submit your PhoneGapp to the App Store and charge for it. You also get that launcher icon, which makes it harder for the user to forget about your app (I’m far more likely to forget about a bookmark than an app icon).

You could certainly charge for access to your web-hosted web app, but how many people are really going to go through the process to do that? With the App Store, I pick an app, tap the "Buy" button, enter a password, and I’m done. It installs. Seconds later, I’m using it. If I had to use someone else’s one-off mobile web transaction interface, which likely means having to tap out my name, address, phone number, CC number, and other things I don’t want to tap out, I almost certainly wouldn’t go through with it. Also, I trust Apple – I’m confident Steve Jobs isn’t going to log my info and then charge a bunch of naughty magazine subscriptions to my CC for kicks.

Anyway, except for the fact that web dev tech is involved, PhoneGap and Titanium are very different – to the point of being only superficially comparable.

I hate web apps, by the by, and if you read iTunes App Store reviews, users are pretty good at spotting them. I won’t name any names, but I have a couple "apps" on my phone that look and run like garbage, and it’s because they’re web apps that are hosted inside UIWebView instances. If I wanted to use a web app, I’d open Safari and, you know, navigate to one. I bought an iPhone because I want things that are iPhone-y. I have no problem using, say, a snazzy Google web app inside Safari, but I’d feel cheated if Google just snuck a bookmark onto Springboard by presenting a web app as a native one.

Have to go now. My girlfriend has that could-you-please-stop-using-that-computer-for-three-seconds look on her face.

 

Sources

http://stackoverflow.com/questions/1482586/comparison-between-corona-phonegap-titanium

Join the Conversation

4 Comments

  1. Hi,

    you say:

    “A PhoneGap app will look like a web app being hosted in a browser control because, ultimately, it is a web app being hosted in a browser control.”
    But if you use Dreamweaver CS5.5 you get your html5+phonegap app turned into a native app.

    disclaimer: I’m not involved in Adobe products

  2. Ansca Mobile produces the Corona SDK which is a game framework based on the Lua programming language that creates native Android and iOS applications. It uses the graphics processor for increased performance on animations often resulting in 60 frames per second in animations and sprites. It has a physics engine built in, the popular Box2D physics engine, resulting in the least amount of coding necessary in order to create objects with physics properties for collision effects for example. CoronaSDK has produced the number one game on iTunes App Store and the number one game on the Google Android Market, and several top 10 games across all major platforms.

    PhoneGap/Appcelerators are not game engine frameworks.

    Carlos

  3. Great website. A lot of helpful info here. I’m sending it to some buddies ans also sharing in delicious. And certainly, thank you for your sweat!

Leave a comment