The main concern I have about either of these is that there are no awesome ahowcase apps out there that prove they work well. There are quite a few awful ones. I am attracted to titanium's promise of native look and feel, but the author admits that there are unresolved performance issues and other drawbacks. Phonegap seems even worse when compared to native UI.
What is the best nontrivial, well-performing titianium or phonegap app you know of?
The app appears non-trivial to the user. There is a QR code reader that takes snapshots of industrial equipment, saves the URLs to a local database, long-polls the URLs to continually display fancy gauges that mirror actual hardware output in real time, and pops up service information when equipment stops running.
Performance-wise, the app is laggy but the lagginess is perceptually the same as similar well-established native apps. All QR/barcode scanners are slow and all data access over wireless is slow so what if Titanium tacks on an extra second or two. (I don't have any benchmarks either way, it could be the same for all I know).
To explain, I believe it's an established fact that to the end user, anything under 2 seconds is "fast" and anything over is "slow". There is no differentiation.
Productivity-wise, the app took 2 full days and several evenings to develop. For reference, my programming background is: web development - advanced, javascript - fair but hardly advanced, mobile - zero, stateful/compiled/memory managed applications - zero. As you can imagine, Titanium takes all the credit.
My overall impression is that Titanium is the right tool for the right job (horrible documentation notwithstanding). The lack of "awesome" apps is probably because it's not right for games and hardware-centered apps. To put things in perspective, I am a medium-heavy app consumer and for me personally, games and hardware-centered apps comprise maybe 25% of what's in my iPhone and iPad. That leaves a whole lot of applications that could easily be done with Titanium.
Go to the Apple's marketplace right now and filter out all the games. Then filter out all the apps where the app is just a thin frame for the content (I say that because I am pretty sure you wouldn't notice if Titanium was used in place of native, because of the 1-to-1 API to native UI). I bet you are going to feel that there are very few awesome showcase apps left there too. That's just the nature of the beast.
Yes, limitations in our abstraction layer is the biggest engineering challenge we face. That's true of any framework that creates a higher level API over the top of an existing API (Rails, Struts, Flex, etc). As the abstraction layer hardens, hardware gets faster, and platforms improve (Android is, IMHO, an inferior platform in terms of UI performance generally, but is getting better)... our performance across the board will improve. It's very usable and widely deployed now, but we know it still needs to get much better.
main site: http://www.6wunderkinder.com/wunderlist/
One caveat, I'm not sure how many of the current apps (there are 5 versions with an addtional blackberry app in private beta.) still uses Titanium, and Wunderlist has been ported to platforms that are not supported by Titanium. However I know that the first few releases did use Titanium.
I think the IOS version is still Titanium?
A high performing Titanium example on android would interest me also.
ZipCars pretty notable...
If you're going for Titanium you might as well use native widgets instead of JQM - otherwise PhoneGap is probably a better choice.
We recently however used Titanium for a full client project (an app to control a home heating system), usual story, tight budgets/time/etc. We built the iOS app in under 3 months and then ported to Android in about 3 weeks, very pleased with the results, the app is now being widely used daily by many end users..
Two points that should be considered though:
1. You need to be very careful using Titanium, specifically in terms of organising your layouts and how you organise/implement your code.. Both these can make the app a pain to port and potentially dog slow and prone to crashes on both platforms
2. It's not going to work in every use case, there's limitations, mostly in terms of speed (rendering long lists, some slight responsiveness issues, etc.)
Each new version of Titanium made steady progress, but didn't really make for a crisp, responsive app.
So I gave up, huddled down with a friend who knows PhoneGap, and rebuilt the app in PhoneGap.
Well, it turns out there are just as many stumbling blocks with PhoneGap as there are with Titanium - if you want a responsive, good looking app, you have to jump through many hoops. I was trading off one set of headaches for another.
I'm now back on Titanium. I've reworked the app significantly and am finally getting to a happy place - it's responsive on both iOS and Android, and looks good. Still a lot of memory usage, but no crashes, so perhaps it's not an issue.
My take at the moment: PhoneGap gets you more platforms and has a lower learning curve. However, it's hard (but possible) to make a native looking/feeling app. Titanium is a pain and requires a lot of discipline in your Javascript coding style, but you can get a nice native looking/feeling app if you're willing to put in the time.
Titanium: The layout code seems to be different between iOS and Android so if you get your app to look right in one platform it can be completely wrong in the other. On Android it bundles the V8 Javascript library so it's definitely not native code but at least with V8 the speed is not a problem. Titanium adds about 10MB for its stuff which is annoying to me as an old programmer!
I've worked with Titanium since the very beginning and would absolutely recommend it to anyone that wants to reuse pieces of their application between iOS and Android. Granted, certain UI elements that exist on iOS with no Android counterpart (and vice-versa) have to be adjusted, you're still able to retain the vast majority of your code between both platforms.
The documentation has come a very long way too. It used to be that the KitchenSink had to be forked in order to see examples of new features - thankfully, that is no longer the case. The IDE that Appcelerator has shipped (after purchasing Aptana) is extremely useful. As Kevin mentioned, the signing tasks and other similar actions are handled by the IDE, so compiling and testing is relatively simple.