05/08/2012

Corona SDK: One size fits all?

Choosing whether to develop for iOS or Android can be a tough decision for some. iOS has a better record of profitability, a huge user base, but also stiff competition. Android is proving not to be as profitable, but is steadily catching up in marketshare, and in some cases surpassing iOS (as in smartphone marketshare in 1st quarter of 2012). Surely there has to be a way for a developer to build to both the platforms without twice the work?

Corona SDK, from Ansca Inc., lets you code your app once, then build it to fit Android, iOS, Kindle Fire (Android variant), and Nook. The core of Corona is Lua, and open source language long used in game development (have you ever heard of World of Warcraft?) and other uses where scripting is preferred. Whereas Lua is open-sourced, the Corona framework, or SDK, is not. It is a commercial product with a hefty price tag if you plan to develop for more than one OS. However, the features it provides helps developers to code and test quickly, then build for the target environment.

Screenshot of a Corona SDK simulator

In fact their home page claims they can speed up development by a factor of ten. Part of the reason is because of its simulator feature. The simulator lets you preview your changes instantly, including checking out how the same code looks on a phone vs. a tablet.

Once you have your code, you can build your app to different destination OSs (provided you have the subscription to do so). This certainly cuts development and testing time. But can it really be that easy?

If you Google around you’ll find that one of the complaints of the one size fits all solution that Corona offers is that you sacrifice native functionality. That is each device has particular features that a higher level SDK can’t let you access. Another complaint about Corona specifically is performance.

To address the shortcoming of native feature access, Corona provides methods to access the standard devices like the accelerometer and GPS. If your particular project needs a specific function or feature, Corona has extensive documentation, including a table listing all the methods and what OS they are supported on.

In regard to performance, it seems to be a matter of opinion. Corona claims to run at native speeds and faster than games in HTML5 or Flash (no surprise on that one). Critics say that because they can’t access the underlying code of their build engine, there still is code that isn’t optimized sufficiently for their apps. Both claims can be true of course.

Bottom line is that you’ll need to see if the benefits Corona offers (even beyond building for multiple OSs) suit your project. But Corona has won over many developers, including many previous Flash coders.

If you haven’t tested it yet, why not give it a try. You can download a trial version of Corona for free. It’s fully functional, but you can’t submit apps to the various stores.

That’s a quick overview of Corona - a single SDK that works for both iOS and Android. What’s your favorite multi-OS SDK?