Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm an experienced desktop developer who's recently begun writing iOS apps and would like to venture into Android development as well. I've been hearing a lot of talk surrounding the Appcelerator Titanium framework lately, but I'm not sure I fully understand it's purpose. As I understand it, it's a framework for building native mobile apps using web technologies. If I don't have any web dev skills, are there any ways that using Appcelerator Titanium would benefit me?

Thanks for your thoughts, I'm going to continue researching this right now.

share|improve this question

6 Answers 6

You should more than consider it - you should just try it. Just get started and see how it goes for you. Worst case is you learn something and still got your feet wet with mobile development. Likewise, just starting directly with native development is a perfectly fine route to go as well.

Some things to keep in mind:

  • Appcelerator recently took on a bunch of funding so the technology probably has better longevity than other cross-platform solutions. If Appecelerator were on the rocks I'd be very hesitant otherwise. The argument that because it's open source it has longevity is a bad one - it takes a lot of effort to keep something like this up to date with the phone market moving so quickly.

  • Despite what marketing people want you to think, there is no magic bullet that solves all your problems. There are only tradeoffs between problems. When you make one thing easier, you always make another thing harder. Titanium optimizes development for standard UI paradigms in cross-platform apps and makes sacrifices in other ways.

  • Naturally, you will not be able to take advantage of platform-specific features and your app will need to operate for the lowest common denominator of user experience. For some apps that is more than fine, for others it is not. A good app would be a simple social, promotional, or utility app, a bad app would be a graphics intensive game.

  • Using this tool will shield you from the native coding complexity, but on the same coin you will not be learning how to really develop native apps on your target platforms. Companies serious about critical long term mobile products need to develop native development skills, period. Things are too complex and rapidly changing for a single higher level solution. But things get "better" literally every day.

  • Start simple, don't be tricky, stick to the most common user interface paradigms, and be prepared to make user interface and feature design sacrifices. If you are inflexible about what your app can do and how to get it done, and start going "off road," you will be in for a lot of headaches.

  • As with learning any new technology, be prepared for a few headaches and trial and error in any case. Not everything that's important is explained or obvious.

  • Brush up on your javascript fundamentals, just so you are full familiar with things like the syntax, variable scope, the object model, etc. Javascript is a relatively easy language but has idiosyncrasies and pitfalls like any other.

  • Always have fun. Learning new tools and techniques should be.

share|improve this answer

You will need strong JavaScript skills to write Apps with Titanium Mobile. There is no debugger and every start of the App in the Simulator, especially the Android emulator, takes quite some time. A developer with poor JavaScript skills will compile more often and will be even more unproductive with waiting in progress bar land.

share|improve this answer

Another problem is that the apps created using these cross-platform mobile development kits is very slow when compared to coding using iOS/Android SDK.

share|improve this answer

The mobile Titanium (for iOS) requires barely any web development skills. It's much more JavaScript focused which translates to programming skill. If you have desktop application experience you should be fine as long as you are okay with spending time to learn the API and the language.

I will say their documentation is shoddy, and company support isn't all that great. When I worked on it there was a good amount of trial and error the went into creating an application.

share|improve this answer

One thing to start with is that Titanium is used by Appcelerator to describe a toolset family which can be used to create all manner of Apps running either on mobile devices or the desktop. I presume your question is about Titanium Mobile so I will try and answer it as such.

Appcelerator Titanium for Mobile is not and IDE it is almost a compiler that will turn javascript/CSS/Titanium specific functions into native code that will run on a number of mobile devices. You create source code using a text editor / javascript editor and then use Titanium to generate platform specific code, which you can then be deployed to iPhone, iPad, Android. It seems to be moving away from HTML and CSS as a direction and using Javascript and Titanium functions for the mobile. The Pros are cross platform, particularly if you were building business type apps and wanted to have a consistent code base. However, it is not particularly suited for graphic intensive operations or games. It is open source and free so I would try it, the documentation is not great but it is definitly worth investigating.

share|improve this answer

From their intro (my emphasis):

Titanium lets you create native mobile, tablet and desktop application experiences using existing web skills like Javascript, HTML, CSS, Python, Ruby, and PHP

You say:

I don't have any web dev skills

So for you:

Pros:

  • Cross Platform

Cons:

  • Cross Platform

In other words, if cross platform is a big deal to you and you don't otherwise have the skills, time, people, etc. to develop a cross-platform app using native languages, then it might be worth looking into.

If you are prepared to deal with dependence on a platform that will always lag behind native development for new features, another layer to introduce bugs (union of bugs), fewer features (intersection of features) a poorer user experience, a smaller development community, and some amount of risk that the SDK could die off completely.

share|improve this answer
    
Thanks, these are all issues I've never had to deal with. –  BeachRunnerJoe Dec 9 '10 at 23:48

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.