By way of explanation, Appcelerator's Titanium Platform is a development environment that allows you to write HTML/CSS/JavaScript apps and have them compiled down to native code (Android or iOS). Titanium provides a rich framework of APIs from which to build your apps. For instance, the UI components in Titanium are analogous to the UI components in Android. The advantage to Titanium is that you can take one app and compile it down to any of the supported platforms, like Android or iOS. Since Titanium compiles down to native code, you're not running interpreted, though there are some specific wrappings that Titanium has to build in.
The app: Quotious
For my app, I had a few necessities. First, it had to be twitter-like, meaning that it was a bunch of short messages that can be displayed as a list. I also wanted the data to be served up from some external source and arrive packaged in JSON.

In light of that, I first built out a small Jetty based server which I could run on my local. It was backed by a MongoDB database. The server simply served up the contents of the database in a RESTful manner (I really only implemented the GET). I seeded the database with a bunch of quotes from Darth Vader, as he is a worthy source of quotes all over the interwebs.
Then, I got to work building the apps.
Titanium Quotious
![]() |
Titanium Quotious |
From start to finish, it took me about two days to turn out the Quotious app in Titanium. Titanium offers a great example app called "Kitchen Sink" that implements examples of an incredible number of their APIs. I relied heavily on an example twitter app that comes included with Kitchen Sink, adapting it for my needs.
The Titanium implementation of Quotious doesn't have a persistent store and pulls the data over a RESTful call every time you fire up the app. In that manner, it's not very robust, but the real story here is that it was almost trivial to implement. I was able to bring all of my traditional web app skills to bear and had I really been trying I could have turned it out faster.
Native Quotious
After I was done with the Titanium version of the app, I turned my hand to a natively built implementation done in Eclipse. I quickly went through all the tutorials and found myself in an interesting position: After Hello World, there wasn't a clear path to building up my understanding. So, I turned to The Goog and found this superb implementation of a twitter app that is put together as a tutorial by Marakana.
![]() |
Native Quotious |
As I worked through the Marakana example, I was enlightened about all of the various moving parts that truly make up an Android app. From the Manifest.xml to the views, from the actions to the intents, I had to actually learn what went into an Android app. This accounted for much of the increased time of development.
The native app that I developed is slightly more robust than the Titanium version. It is backed by a SQLite database. As updates are fed from the web source they are placed into the database. As those changes go in, the UI is updated and what you see on the left is what is created. In light of the database, my app will survive a loss of connectivity with grace, serving up what it has already seen and remembered in the past.
Conclusion
Let me not give the impression that Titanium is only about building web-app like Android apps. It's not. There is rich support for what makes a truly native app within Titanium. You can create and manipulate a database, you can work with actions and intents. You can do all of these things. (Update: See the first link below for some info on how to do all of these things)
But you don't have to. And therein lies what might be the most seductive thing about Titanium. You can build your app as if it is a web app, only it runs natively. You don't have to expand your skill set to understand all of the ins-and-outs of what makes up an Android app. All you have to do is take your current skill set for building JavaScript heavy web apps and port them over to your device of choice.
If developer time is your main constraint, then Titanium is likely the way to go. You can hit the ground running faster with Titanium. You don't really have to be an "app developer" to develop apps with Titanium. What's more, and something I only lightly touched on, with very little augmentation, you can port your app to an entirely different platform such as iOS. With very little, if any, changes, I can run the Titanium version of Quotious on an iOS device by simply compiling it down.
One word of caution, though: If you choose the Titanium route, don't eschew learning what really goes into an Android app. Knowing the actuals behind Android can only make you a stronger developer in the long run.
Edited: For formatting
Updated: Added pointer to first comment with additional information