Corona SDK review

Two weeks ago I went to Corona SDK Hack Night in Menlo Park. When I went in (8PM sharp) I saw that everybody were already sitting with their laptops turned on, working. “I see that I’m late” I said out loud while unpacking my laptop bag, and got a few hostile looks, it was weird… And then it clicked, these people were not part of the Corona lab group – these were just different groups of students that came, as any other day, to use the free wifi @ Happy Donuts…

I blushed… feeling like a weirdo… but after a second I saw that everyone got their heads back in their laptops so I grabbed a cup of coffee and waited till someone else shows up (at least I wasn’t late…).

Actually, the story starts about a year ago, when I first decided to write an Android app, it was pretty cool: I downloaded and installed Android SDK and the required Eclipse plugin, skipped most of the tutorials and just “went for it”. A few months later I had my app and it was pretty cool, it was provided with song-names from a server that I ran on rackspace and buttons like: “watch on youtube”, “share on facebook” and “buy on amazon” and some other stuff. All the buttons just triggered REST-API calls to the server which implemented all the logic on the backend. It actually worked fine on the simulator and on my HTC Aria, but when tested on higher versions of Android it failed, and it took me a while to figure out why. I found out that from Gingerbread and on – only non-synchronized HTTP calls were supported.

A few months ago, my wife came up with an idea for another app and I promised her that I’ll build it. Then I heard about Corona – so I decided to give it a fair chance. Alas, we started with the wrong foot: A very kind guy named Jerry Pierre helped me by instructing me to download and install Corona SDK first, and then Lua Glider (IDE). I’m a bit ashamed to admit, but the laptop I’m (rarely) using has Vista installed and since the computer is not mine – I can’t install Win7. At home, and at work, I use desktops, and in general – I prefer desktops (yes, I know it’s weird – but I don’t like laptops…).

It seems that Lua work well on Win7 as well as on Mac, but on Vista it took me an hour of fighting until I gave up and opened Notepad++. So after a couple of hours, and a very nice walk-through I got from Mayank Malik – I decided to wrap it up, go back home, and use my desktop to continue “playing” with Corona.


The good:
Someone put a lot of effort in creating this abstracted development environment which compile your code into native code of one of the following operating systems: iOS, Android, Kindle Fire and NOOK – which is very cool. Further, Corona arrives with a respectable built-in library that supports media (video/audio/images) but even more impressive is the physics library which allows you to easily add a gravity to your objects, an example for a way to use it will be the following simple and straight-forward implementation:

local function onTilt( event )
physics.setGravity( 10 * event.xGravity, -10 * event.yGravity )

The bad:
* New syntax
* limited functionality
* Can’t combine your own native code with Corona’s
* Once you started using it – you’re tied to it, you won’t be able to migrate to another platform. Ever.

The Ugly:
* The price:
– $199/year for the “indi” version – a license to publish in one of the two: iOS or Android.
– $349 to get the “pro” version – the option to build your app in all the supported platforms.


Now seriously, this price is good if you plan to monetize your apps, but when you just build things for fun, then it’s a bit pricey. If I was planning to develop a game that would use the fancy physics library – I might have chosen Corona, but since I don’t (and also since I don’t appreciate the “closed garden” policy) – I decided to pass.

Update: I just found out that Mayank helped organizing Grinding the rails with Ishan Singh – and since I was planning to learn Ruby anyways, I might just show up there 😉


Corona SDK review