This is the fourth in a series of posts by DeveloperTown Associate Partner Andrew Robinson.
Start from the beginning with “We can create an app for that!”
So, we now know that one of the best canvases for your genius idea in this latest paradigm is mobile devices. We also have been over the native versus web dilemma. Last time we went over native versus native-native, and began talking about how abstraction platforms like Titanium can be useful in the delivery of quality solutions. Now we will dig into Titanium a bit. First, the good:
For me the most important thing about this particular abstraction is the language. If I were to do a series of posts about the “interactive web”, JavaScript would be King Kong of that discussion. JavaScript has had an interesting life from the perspective of application developers. It used to be an unwanted, glazed over, unfortunate necessity step-child that you threw in at the end of a project to make it appear a bit more interactive. However, now with the proliferation of AJAX-based applications and the general maturation of the web developer, it has risen to one of the most prominent positions in the app dev world. Given that many of the application developers that are at the forefront of the general tech movement are in the interactive web space, it makes JavaScript a sexy language to build your entire application with. JavaScript is not just for the UI anymore. You may have heard of rising star development platforms such as Node.js. Well, Node is not the only player in the server side JavaScript world, and I believe we are just at the beginning of the JavaScript movement.
The Titanium creators must believe, like me, that JavaScript is going to continue to play an increasingly important role in application development. I believe they have done a great job in allowing those JavaScript nuts to use their “hard won” skills as a foundation for productivity when creating native mobile apps.
Some of the Titanium competition (and even Appcelerator themselves in the early days of Titanium), make the claim that you can use all of your web dev skills when creating native apps. This is a decent MVP for creating an abstraction, but it is Not a good solution. Basically, it is putting a native wrapper around a browser. Not cool…not cool at all. Titanium has an entire framework that uses the JavaScript language, but has almost nothing else that translates directly from your current web dev skills. This is a good thing though… It reminds me of desktop app development, but with a new age web-esque event-driven OO twist.
I am also a fan of the eclipse IDE, which is what the Titanium IDE is built on top of. The framework is organized and well thought out. The documentation is pretty decent as well. Some stuff is android-y (like interacting with a hardware keyboard and menu buttons) and some stuff is Apple-y (like having a common top toolbar and swipe to delete gestures), and Titanium allows you to do both. You will lose some portability when you take advantage of platform-specific features, but it is a billion times easier than writing two completely different apps. Once you get the hang of where things are and how they interact with each other, creating quality solutions becomes very fluid and rewarding process. Overall, after you get over a few hiccups (which I’ll cover in the post about the bad) it is a pleasant and fast development experience.
Bottom line:
JavaScript goood…
Not utilizing a web browser wrapper and calling it native (if you want a web app, build a web app), gooood…
A very understandable and flexible framework that allows each platform to reach their potential…goooooooood…