On the surface, this sounds amazing. You spend less time developing for multiple platforms, and you get a fairly affordable platform compared to having to spend money on several different ones. But, is this really the magic box that will help make mobile development exponentially simpler? Perhaps not.
Complexity is the Enemy
The biggest problem with the platform is its inability to handle a lot of complexity. Titanium-based apps can chug to a halt on some devices because it is a resource hog. Titanium claims that it will handle memory management for you, with you having to code for specific addresses in memory. This is almost too good to be true. Sure, if you have a small program that is loaded up by the user for short bursts with little to no resources being used, the app will be fine. However, Titanium has issues with memory leaks that will cause larger apps to become completely unstable on some devices, especially when the leak gets out of hand.
The SDK is Unstable
Another major issue is that the company is constantly updating its SDK. While this shows signs of great support, this also leads to code on previous iterations no longer being usable when you update. This means you will constantly have to check their update log and the known bug list to see exactly what they are working on at all times to avoid losing precious man-hours to development tool updates. This is doubly a waste of time for you and your team, especially if you are in a time crunch.
Another issue is that since it is supposed to be a universal platform, it has to be able to keep up with both Apple and Android’s API updates. This is what leads to so many platform updates in the first place. New updates to both iOS and Android are spread across a year at several different times, so this means the developers at Appcelerator will struggle to keep up.
All of these changes and updates mean that the documentation is completely out of date and inaccurate. It will promise a feature, and when you go to implement it, you will find it is either too buggy to use due to a recent update, or even worse, not there at all.
Customer Support is Lacking
Like every developer, there is a forum for users of the platform to go and ask questions. Unfortunately, it looks as if those forums are mostly ignored by the Appcelerator team. While there are several users of these forums that are fairly helpful, for the most part the only answer they can provided is that something is not working as intended. Even worse, if one of the Appcelerator people do happen to wander in and answer a question, there is a good chance that the answer could be outdated and wrong. It seems as if no one in that development studio is communicating information on latest builds and known issues are coming up.
Sticking with Tried and True
With all of the missing features, bugs, lack of support, and just general shoddiness of the Titanium product, it is just not worth the time or effort to develop apps in it. While it does have some promise, especially as an out of the box product, it just falls short for anyone serious about creating quality apps with high functionality.
The bigger picture seems to be that the company is struggling to be successful. This of course is just speculation, but looking at the official forums and seeing how the development team interacts with its paying customers shows a complete lack of end-user support. The promise of this tool is the best of intentions, but with the price tag as high as it is, it just isn’t worth it.
In the field of development, there are a lot of general programmers. The majority of them are web developers, while few specialize in mobile development. This is why a product like Titanium can be initially successful. It allows people without the training or knowledge to produce something that appears to work on a fundamental level. However, anyone with just a little knowledge of mobile can see the red flags. This, of course leads to red flags among the developer community as a whole.
If you are looking to save time and money, it would be much more beneficial to get specialized programmers who understand iOS and Android development, rather than using a solution like this that will end up leading to several rewrites of programs and a lot of unhappy end-users of your app.