Start from the beginning with “We can create an app for that!”
No need for intros, lets get right to it…the bad parts of Titanium development.
Earlier in this series I hinted at the biggest bad there is for Titanium and any other abstraction platform…dependency. You are dependent on those guys out in Mountain View to stay as current as possible with the hardware platform upgrades. You are dependent on their quality assurance, and if they have bugs, you have to have workarounds. You are dependent on their existence…if they decide to give it up, you may be completely stuck, having to rewrite your app using the native platforms development environments anyway.
Appcelerator as a company has only been around for about 5 years on top of the native-native platforms being young as well; you are left with a fairly immature experience. I have run into inconsistencies, just plain inexplicable weirdness, and something’s that for all intents and purposes simply don’t work at times. There is a decent community that is excited about the platform, but Titanium is iterating so quickly it is hard to tell when the responses are stale. I semi-like the Stack Overflow-ish system they have put in place for the community, but again you get inconsistent results depending on what you are looking for.
Finally, there is debugging and optimizing your application. Debugging for the most part is a very good experience. It is only when you run into an issue that doesn’t seem to be caught by the debugger, when you are even aware of the veil that is covering what you are writing and the actual native platform underneath. When this happens you have to resort to incomprehensible logs from the device, or just trying different solutions until you get it working. It doesn’t happen often, but often enough to know that the platform is still in it’s growing pains period. As for optimization, I am referring mostly to memory optimization, which can seem to be a bit of a mystery. I am confident that the memory issues that you may read about from the early days of Titanium are being resolved and improved upon in every release. However, for very process intensive areas of your application, you may be tempted to dive into the native, especially if you are only targeting one of the stores/marketplaces.
If you are completely turned off by Titanium after reading this post, please re-read “The Good”, and wait on me to post “The Ugly”, where I try to summarize how I feel about the entire experience before you pass judgment.