My first impressions of using Titanium Appcelerator

A couple of weeks ago I started messing with Titanium Appcelerator. Coming from Domino Designer and Eclipse the IDE will look very familiar. It's eclipse and it's based off of Aptana Studio. I guess the biggest issue to being productive is the learning curve for the API. But honestly when is that not the case?

So starting to delve into this, Titanium apps are purely client side javascript based. You write the CSJS that builds the UI, Business Logic, Layout, everything. While this may seem daunting at first it actually makes pretty good sense I think. If like me you don't like large javascript files it forces you to think in a more OOP mindset. Now some of you are saying "but CSJS isn't OO". Au Contraire my friend. There are a couple of different ways to approach OOP in CSJS. You can have a file where each file is an Object or a Function which returns an Object. Just follow the Singleton/Closure pattern. A perfect example of OO Javascript is Dojo, just to put things into perspective. But OO Javascript is another topic for another day.

The installation of Titanium is pretty straight forward. Download the .dmg file, run the install pkg and follow the prompts. Now I did hit one snag here, when I tried to install the Android SDK it complained about not being able to find Android SDK API 19. I just deselected this and finished the installation and then updated Titanium and it selected that API 19 for me and all was well. This was really the only snag I hit. Also be aware that you'll need to download and install xCode from the App Store in order to get the iOS simulators (iPhone and iPad).

Once this was completed, I was able to delve right in and create my first 'Hello World' app and then start adding to it as time goes on. Of course me being me I figured I would use the most complicated thing I could think of as my first project. I decided to start replicating the functionality of redpill Now. This has prompted adding to the functionality of redpill Now, mainly a rather robust REST service which is smart enough to traverse a graph db. This REST service delivers all of the content needed to provide the data for a mobile application as JSON. This will also be taking advantage of the org.openntf.domino api  for iterating over collections, view entries and of course the Document.toJson functionality.

After you make changes to your code, you can fire up the iPhone, iPad or Android simulators right from within Titanium. This is a very handy feature, tho I'm still fighting with troubleshooting. The eclipse debugger is included in Titanium and it works as one would expect it to work. I think this is a very nice touch. You can also install to a device right from Titanium. I haven't tried this yet. 

So far I've been able to replicate all of the lists in redpill Now. While these lists are not yet as refined or as intelligent as the base product, they are getting there. Next in the learning curve will be posting to the REST service and dealing with forms. Hopefully in the coming weeks I'll be able to post some screen shots and code of my progress.

While going through this exercise, it has made me stop and think a bit. Looking at the Connect 2014 sessions, maybe this is a good path to start going down. I mean, the IBM Notes client is becoming less and less relevant as the years go by. Also, it seems that IBM isn't providing as much emphasis on the "Lotus" products as they once did. I'm still undecided if this is a good thing or not, but my gut tells me I need to start moving some eggs out of the IBM Notes and Domino basket. Not to mention, learning a new technology is fun and challenging. Plus, it forces you to think differently which makes you a better all around software engineer. Which is always a good thing.

Share This: