Featured Developer – John Anderson

Circuit board and shield icon on blue background with digital code

John AndersonIn today’s “Featured Developer” post we’ll be talking with John Anderson, Titanium developer and author of the new Titanium book “Appcelerator Titanium: Up and Running.” Hear more about what motivates John to get involved in mobile development and his experience using Titanium. You can learn more about John’s new book in his upcoming O’Reilly webcast this May.

Interview with John Anderson

Tell us a little about yourself

I’ve been working in IT my entire professional career. I love developing code and discovering new ways to make people’s lives easier through computing. When the iPhone came out and set a new bar for mobile computing, I decided that it was something that I needed to learn more about.

What motivated you to learn about mobile development?

Soon after the App Store opened, I started to hear stories about people who were making big money from their apps. I decided it was time to see what was going on there. My main motivation was to get an app into the App Store and see what would happen.

How did you find out about Titanium?

I wanted to take the ‘path of least resistance’ to get an App into the App Store and started using PhoneGap (now Cordova). It was nice, but I soon started bumping up against the limitations of having to roll my UI components in HTML5. I started writing my own Objective-C routines to expose native controls, and then found Titanium. It was based on the same thing I was doing, so I understood the value immediately. It was like the code I was writing to expose native controls, but taken a quantum leap ahead of anything I could have done on my own.

What do you like about Titanium?

The first thing that is easy to notice about Titanium is that you can write your code in JavaScript and have it produce a native app using native controls across multiple platforms. That makes a huge difference in terms of having a native looking UI and a more responsive app. Since the app uses the conventional UI components per platform, it will immediately be familiar to the person using it. This helps make apps more approachable and easier to use since they are using familiar components.

It also makes for a better performing app. By using the actual UI components from the OS on a particular platform, they are going to run faster and more smoothly than anything you could make to run in a WebView. I’ve seen this first hand on Android devices. An HTML5 that might run sluggishly in a WebView can run much more smoothly using Titanium and native UI controls. When native controls are used, the user will also get the version of those UI controls based on the OS they are using. This is another plus for going the native route.

What limitations do you see Titanium putting on your mobile projects?

Of course all this good stuff doesn’t come at some kind of trade-off. Titanium makes it easy to quickly create a mobile app using native components that are exposed via the Titanium API. If there is a certain UI component or feature of the OS you’re running on that you’d like to use, but isn’t exposed, you have to make a decision. You can either do without that feature and design around it, or try to write your own module to exposure that feature yourself. Titanium has exposed a huge amount of functionality on both iOS and Android, but of course it isn’t everything. I’ve written modules for iOS and it’s a fairly easy way to access functionality that might not be in the core API.

Tell me more about why you like Titanium Modules.

Titanium Modules are a great way to add functionality that might be missing in the Titanium SDK. It has existed in Titanium for a long time, and is a solid way to extend the SDK with custom functionality. If you want to write your own module, you have to develop it for the platforms that you want to use.

If you don’t want to write your own modules, the Appcelerator Marketplace is a great source of custom developed modules from a wide variety of sources. This makes it easy to get functionality that you need, such as access to Dropbox or Barcode Scanning, etc., without having to dive into the guts of Titanium.

What are you looking forward to in Titanium?

Windows 8 Phone is probably the one thing that has me most interested in the future of Titanium right now. Android and iOS obviously have the lion’s share of mobile market right now. The one thing that could upset this balance is a tool like Titanium that could make it much easier to produce apps for Window 8 Phone. I’ll be excited to get my hands on the SDK when it comes out.