Monthly Archives: May 2013

Developing Across Multiple Platforms

After spending an entire semester learning Objective-C, Xcode and developing for iOS, and then spending a lot of personal time trying to learn how to develop for Android using Eclipse and Java, I was feeling pretty good about my knowledge of mobile development and the experienced I had gained. However, when I attended the Austin iPhone Developer’s group meeting last night, I realized just how much more there is to learn.

The focus of last night’s meeting was on developing across multiple platforms and getting it done quickly. As far as I knew, if you wanted to develop for iOS, you used Xcode and Objective-C. If you wanted to develop for Android, you used Eclipse and the Android SDK. After speaking with members of the Austin iPhone Developer’s group and listening to a representative from Corona Labs present, I learned that almost none of them used either Xcode or Eclipse. The people I spoke with told me that it was too time consuming to try to learn how to use a different Integrated Development Environment (IDE) and programming language every time you want to develop on a different platform. In addition, once you had created an app for a specific platform, you then had to practically recode the entire thing if you wanted to produce an app for a different platform. So what’s the solution? Specialized SDK’s that allow users to use any IDE they are familiar with and only one programming language to develop across multiple platforms.

The way this works is that you just download one of these SDK’s as a plugin for an IDE like Eclipse, and then program in the language of that particular SDK. Then, when you are ready to put your app on a device, you just select the device and the SDK translates the code to work on that device. You can run the code on an iPhone, Android phone, Windows phone, Xbox, etc., and it just works. Plus, the developers I spoke with claim that you don’t have to write as many lines of code or even understand how some of the more complex code like object physics works. You just call the methods in the SDK.

Examples of the SDK’s I learned about are Corona, which uses the Lua programming language (same language used to create World of Warcraft);  Appcelerator Titanium, which uses JavaScript; Unity, which uses JavaScript, Boo, and C#; Xamarin, which uses C#, and Adobe’s Flash Builder, which uses ActionScript. I was told that each SDK has it’s advantages and disadvantages. For example, Unity was recommended by everyone for developers who want to work with 3-D objects or game characters and Corona focuses on 2-D.

So, what is the best way to develop apps for the mobile market? I think the answer is, it depends. The advice I was given is to learn a little about each platform and the tools available to develop for that platform. Then, determine which tool best fits your development needs. And as soon as you figure that out, ten more tools will spring up that you have to become familiar with. I guess this is one reason why the mobile development industry remains challenging and interesting. No matter how much you know, there will always be more to learn.