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.
If you want to get work done, Objective-C is the way to go. Swift is the new kid on the block, but it's still a kid. If you want to get work done, Objective-C is the way to go. At the time of writing, Apple's software development kits are primarily written in C and Objective-C.
Most of the core iOS and MacOs software is still written in Objective-C, though Apple is pushing for new updates to be written in Swift.
I recommend you learn Objective-C when required. It's common that you'll have to work in a hybrid codebase consisting of old code in Objective-C and new code in Swift. Another reason you could need to know Objective-C is if you're working on older open source projects written in Objective-C.
As Objective-C is harder to learn, there are more new developers learning Swift than learning Objective-C. On the other hand, experienced developers familiar with Objective-C are usually familiar with Swift, or at least ready to learn it.
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.
I agree with everything said in previous answers and you seem to have accepted to come back to the light side - good choice!
I'd just like to add this: Don't look at those six months as being wasted. During your time with Titanium, you have learned a lot of technical details, as well as possibilities and limitations of iOS and that should prove useful when you switch to Objective-C.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With