It’s 2016, and Titanium has come a long way. Recently, Appcelerator, the company that makes Titanium, has just been acquired by Axway. Titanium has become one of the best, most comprehensive, native cross platform mobile technologies out there, with perhaps only React-Native catching up very quickly. Even so, there are still many misconceptions about Titanium that exist today — misconceptions that keep developers and companies from fully utilizing Titanium’s power. I’ve touched upon some of those in my other blog posts before, but I’d like to explore more fully in this post the one misconception that bugs me the most — that Titanium is somehow not “real” native mobile development. This misconception causes people to say things like, “Titanium is just like PhoneGap, right?? It’s just like Ionic.” Or, developing in Titanium is “just JavaScript” and it’s “just like” web development, right? Right??
While I don’t want to disparage web developers, because being a GOOD web developer is a real talent, Titanium actually has more in common with native mobile development than web development. And as soon as people understand that, the sooner those same people can really learn to use Titanium correctly and harness its full power and potential. So, are you ready to learn all the ways in which Titanium development is just like native mobile development? Because it really is.
6) Not all Ti devs are web devs.
This confusion may come from the fact that Titanium is a JavaScript-based language, which is primarily associated with web development. I consider myself to be a mobile developer, not a web developer doing Titanium. I actually started off as a C++ and Java enterprise developer many years ago, I even did some web development via Java Struts 2, and dabbled a little in web design with WordPress themes before I got into Ti. So maybe it helps to have some web development background before you get into Titanium, but it’s not necessary.
However, what I do think is important to know is:
5) Being a mobile developer for 2 or more platforms is not easy.
Make no mistake: mobile applications development can be hard, even when you’re developing for just 1 platform.
Due to the ubiquity of mobile apps and the proliferation of many free apps — “there’s an app for that” — and the push in the US for children to start learning how to program early (which I agree is important), some people think that programming must be easy. And if programming is easy, then using a “cross platform, write once run everywhere language” like Titanium (another misconception addressed in my other blog post) to build a mobile app must be SUPER EASY.
Here’s the truth about Titanium developers: many of us are real software developers who have been developing software for years. Being able to build an app is more than just memorizing syntax, especially when things get very complex as with enterprise level systems, of which the mobile app is just one part of the whole thing. Add a web / cloud server to your system, for example, and things just got REAL. Even a stand-alone mobile app itself can get challenging quick once you start adding complex features like push notifications and integrating 3rd party apps like Facebook, all of which Titanium supports in its regular API.
I compare this mentality to the difference between learning to change your car’s oil, change a tire, and other minor maintenance to being able to replace your car’s engine or rebuild its transmission. Just like everyone should learn about basic car maintenance, I absolutely believe that everyone should learn the basics of programming, and getting children learning to code is a great idea. But building a static HTML page with some simple CSS and JavaScript, and building an enterprise mobile app are two extremes.
4) You have to learn design patterns of all the platforms you’re developing for, and the differences between them (i.e. Android has the action bar, iPhone 6s now has 3D touch, etc).
And this is because Titanium compiles into native code – it is not a native wrapper around a web app. Because of these design pattern differences, you must also be vigilant about testing for both platforms AT ALL POINTS IN THE DEVELOPMENT PROCESS – LiveView can a be a lifesaver.
3) You have to test on actual hardware like real mobile devs because sometimes simulators don’t do the job – which means you have to buy and upgrade your test devices like a “normal” mobile dev.
You can’t test the camera function on an iOS simulator or 3D Touch! (Android Genymotion, though, can fake the camera function). You can’t test push notifications on either platform except on a device with a data plan.
2) Even so, you’re building and maintaining one baseline with perhaps 80% of the code shared.
It is still a time and money saver. And writing Ti code, especially in Alloy, you actually have to write less code than natively for either platform. (I’ve seen enough native code to be able to see the difference). Also, being a former long-time C++ and Java developer (Objective-C is similar to C++), it was quite a difference moving to JavaScript (what? no more classes? no more public / private variables? no more strong data typing?).
1) Hyperloop has promise to add extra native functionality without creating modules, instead letting you write Android Java or Objective-C/Swift code and adding it directly into your Titanium project.
Hyperloop is an effort that Appcelerator started several years ago, and has been improving it ever since.
There you have it. 6 ways in which being a Ti dev is just like being a native mobile dev. I hope smashing the previous misconceptions about Titanium will help YOU to develop and use Titanium more effectively from here on out. Cheers!
Great article, Vuy. Congrats!!
Thanks, Manuel! I’m glad you liked my article. It is good to hear from you. 🙂
Really meaningful article which can definitely help people to understand why Titanium is still the best in class to develop cross-platform apps. Nice Vuy !!!!
Thank you for the kind words, Prashant. Thanks for reading! 🙂 — Vui
Pingback: 3 Reasons I’m Giving Back to Women In Tech in 2017 | Sunfish Empire LLC