Should you develop with Titanium?

June 4th, 2012

What Is Titanium

The Titanium platform by Appcelerator allows developers to produce cross platform mobile applications from code written in Javascript. There are several benefits that they highlight for using the Titanium platform, such as:

Supports 5,000+ native APIs

JavaScript-based platform

Support for iOS, Android, and HTML5

70% faster than developing in Objective-C or Java

Single platform

Unlimited extensibility

This is especially appealing to Accella as a professional mobile application development company. If we can allow our clients to reach a wider audience via multi platform support for their applications while at the same time reducing costs, then everyone wins! But let’s not get ahead of ourselves. Before we can go slashing prices and throwing in our support for this platform, an in-depth examination of Titanium is required to see where it shines and where it falls short.

My Favorite Things About Titanium

Sadly, this section will be much shorter that I would like. As I began working with Titanium I noticed it was very easy to get up and running. Being able to develop in Javascript certainly made things easier. The comfort that came from working in a familiar environment was very nice.

Where Titanium Falls Short

I was thoroughly excited and filled with optimism as I started this project. Those feeling were quickly smashed as I began to realize that Titanium would not be a product that I would work with on a professional level. Here are a few of the areas that was lacking with the Titanium platform.

Unstable Environment
Updates to the SDK are made frequently. However, changes that are made can cause existing code to become entirely unusable. You can also have a glance at the known bugs that they are working on to see for yourself all the major issues that you will run across in development.

Inaccurate Documentation
The documentation lists many nice features that round off the SDK. However, I noticed several cases where the documentation said a certain feature was available when in reality it was either not working entirely or very limited in what devices or scenarios it would work with.

SDK Will Never Be Able to Keep Up
Whenever a new OS comes out for a phone, new API’s are also released. These eventually make their way into Titanium, but it can take a while. So, fully native developers will always have the edge there.

Resulting Native Code is Bloated
Titanium will take the Javascript code you write and turn it into native Objective-C or Java code. However, it is excessively bloated. Imagine buying a car, say a Ford Focus, and along with the completed car you get every part to every other model that Ford makes. That’s what Titanium does. The resulting code is a jumbled mess.

Lacking in Support
With so many developers using this platform, I would have thought the support forums would be a bit more filled out. However, questions often go unanswered, answers are obsolete due to the updates to the SDK, or answers are just entirely wrong.

Conclusion

Titanium does have potential to be a time saving alternative to native application development. However, it comes at a price. Compromises must be made on design and functionality to see the most impact on cost reduction.

Having spoken to the Titanium sales team, I know how my concerns as a developer are addressed. They cite high profile clients that have successfully deployed apps using Titanium, such as NBC. They also highlight that Titanium is an open source extensible platform. So anything can be achieved with it.

However, the primary draw that Titanium has for Accella is the possible time reduction and cost savings we can offer our clients. If those time savings are offset by having to extend the platform or find complex ways to achieve the desired functionality and design, then utilizing the Titanium platform has no real appeal to us.

Why is Titanium so successful then? In this industry you will notice that there are far more Web Developers than there are native Mobile Developers. Titanium allows all the people who may have never dreamed of being able to offer mobile development services the chance to build native apps without learning a new complex language. I predict that Titanium will continue to grow as a company because of this appeal that it offers to so many people. I think Titanium is a good fit for some, those who do not have the technical skills to develop in native code or those who do not mind working within the limitations of the platform.

Titanium doesn’t quite fit in with Accella. We already have highly skilled developers who work with Objective-C and Java to build native apps. We also don’t like to tell our clients that they have to compromise on what they want out of an app because we are limited by the tools we use. Again, Titanium is a good fit for some web based development companies, but it’s not for Accella.

Jacob Haskins

Jacob has always had an interest in learning and problem solving. Whether working with Objective C, PHP, Actionscript, FLEX, JavaScript or any other language, he finds that there is always something new to learn. He enjoys development projects most when getting to use new technologies.