Caveats with Titanium Framework
Appcelerator Titanium is a platform for developing mobile and desktop applications using web technologies. Titanium Mobile Framework allows web developers to apply existing skills to create native applications for iPhone and Android. Its target audience is Web developers who does not want to learn objective-c or java but wanted to contribute to iPhone and Android development.
1. Titanium supports nearly all of the iPhone, iPad and Android UI controls
2. You can use most of the native facilities of the device like camera, accelerometer to state few.
3. You avoid learning new language and reuse the existing web skill set.
4. it lets you develop the business logic of the Application only once.
5. Most UI components can be reused across platforms.
In my opinion, a web developer can not find a disadvantage with the Titanium Framework.
Titanium is for whom?
Titanium is meant for people who never wanted to learn the native iphone and Android programming. If you know to develop applications using objective C and you wanted to develop applications for iPhone then don’t even think of Titanium, the same case applies to Android too. Only if you are lazy to learn a language, you can opt for Titanium.
I put here some of my observations I have had on Titanium Framework during my development.
- Developing for iPhone or Android alone is never a big deal. Because you need not bother about your application’s behavior in the other platform.
- Your application would be slower than if it has been developed in the native way and this would be visible very much with Android. In Android at most cases, for each of your page navigation you will have to finally add an activity indicator, if you have lot of controls in your view.
- Some of the features in Android which was shown to be working in developer reference were not working. Even after being filed as bugs, they were not updated in developer’s reference that it works only in iPhone. For example, “focus” events of the window is handled only in iPhone and never in Android.
- If you wanted to develop application for both iPhone and Android, then you would be spending more time for arrangement of controls in the views or custom cell in Table view.
- Next biggest problem you would face with Titanium is with the Testing of the App in iPhone. It has taken nearly 4 minutes for the application to get loaded in to the iPhone. This was not the case with Android.
- The size of the Application is a big concern here. An iPhone application we developed using Titanium was 5.2 MB in release mode. If we could have done this in Native mode would not exceed a size of 1 MB.
If you wanted to develop an application that is completely data centric, you can go for Titanium but with all the pains I have mentioned. If you don’t know objective C or java, Titanium is a great gift for you. Otherwise you may regret choosing Titanium at later point in time.
After I completed my development of an Application for iPhone and Android in Titanium, I felt that if I could have directly used objective C and java to develop these applications. And this could have given me the following advantages:
- My application could have been faster than it is now.
- I need not wait for Titanium to enable a new feature that arrives with iOS or Android.
All of my experience that I have stated here are specific to my development of the Android and iPhone in Mac OS X.
I have used only Titanium Mobile. I have not used Titanium Desktop to develop any applications.