Should I learn native iOS development (Objective-C) or perfect my knowledge in Javascript and Titanium Appcelerator?

vale4674 picture vale4674 · Jun 27, 2012 · Viewed 10.8k times · Source

Basically I need your advice my good stack friends :D

For the last six months I am exploring/learning/developing iOS apps with Titanium Appcelerator mobile framework. My experiences are mostly good or very good.

Some negative parts of Titanium would be building time, especially when testing on a device. When using only Xcode (native), your app starts immediately on a device, while with Titanium you have to wait for a while (1-2 minutes) for your app to build and then to install it on a device (iTunes or iPhone Configuration Utility).

Basically everything that you can do natively you can do with Javascript + Titanium. If Titanium does not support some part of iOS framework, you can build a native Objective-C module and have those features in your Javascript code.

I feel really comfortable now using Titanium Appcelerator and building apps with Javascript. Also I learned some Objective-C while building a few modules for iOS. Eg. DeviceMotion which I used in my first iOS app Spellery.

Now the question:

Most companies wants only native developers and are sceptic of Titanium. Titanium is different from other cross platform SDKs (Eg. PhoneGap) because here you actually use native components (buttons, labels etc) and your app is not running in a WebView. But if company wants native then you can't force them to use Titanium.

Since I would like to develop mobile apps as a job, should I just throw my last six months of intensive exploring of Titanium and learn programming those apps natively?

What are your thoughts on this because I see no point in learning/perfecting both of them?

I am a very big fan of Appcelerator Titanium now so this is a very heavy decision to make.

Answer

Linuxios picture Linuxios · Jun 27, 2012

Frankly, I would still suggest learning some more Objective-C. It's a very powerful language, and it is designed to allow you to many things that Apple considers necessities much more easily (eg. Animation, Persistance, Databases, MVC). Apple has designed their frameworks around Objective-C very tightly, and to really use them well, you have to use them from their language. Also, what other languages do you know? I, for one, found Objective-C much easier after coming from C/C++ and a scripting language (Ruby). It all really depends how much iOSness you want in your app. Even it Titanium can make the user end feel iOSy, iOSy code is actually really fun to write and maintain. It can be quite a beautiful framework.