Corona SDK is developed by Ansca Mobile, which ironically enough, is a company started by 2 former Adobe employees. It made it’s way onto the scene in a big way earlier this year when a 14 year old used the SDK to build a game called “Bubble Ball,” which, for a short time was the #1 Free game in Apple’s App Store, dethroning none other than Angry Birds. Ansca boasts that Corona apps have been downloaded more than 27 million times.
Corona allows development using a single codebase to deploy NATIVE iOS and Android apps.
Corona makes use of Lua as it’s programming language. According to official Lua site,
“Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.”
You can code using any text editor, and there are several that include built in support for Lua or where it can be added (TextMate, NotePad++, etc). There is a Lua plugin for Eclipse and also, LuaEdit is an editor and debugger. The SDK also comes with a simulator that can be used to run and debug your app on your desktop.
Additionally, there are a few 3rd party applications that have been created to make app dev easier. A few that caught my eye:
- Physics Editor – Allows you to import graphical assets, then auto-generates hit areas, and allows you to tweak things like friction, density, bounce, and collision parameters.
- Corona Project Manager – Manages the projects and all of it’s assets
- SpriteLoq – Convert animations created in Flash into sprite sheets
MacOSX can be used to build both Android and iOS apps while you can only build Android apps from Windows.
Corona is made for building mobile (2D) games. Games can take advantage of GPU rendering which is one of their calling cards. They state, “Corona games run at native speeds, and significantly outperform apps developed using web-based technologies like Adobe.” It has an awesome built in physics engine which is very easy to work with. These benefits provide a really compelling reason to build 2D games using Corona.
You can also build non-gaming apps, but it seems to me that these are fewer and far between, and not really where Corona shines. However, they do support HTML rendering and easy integration with social media.
Native UI Controls:
Corona provides access to a limited set of native UI controls:
- Text Input / Keyboard
Like the Flash Platform, they have created a small widget library similar to Flash (though it’s more limited in scope) that includes button, slider, scrollview, tables, tabbar, and picker. Currently these widgets are only available in an iOS theme.
Corona does provide a native web view for displaying HTML content, and on top of that, it supports OpenGL access from your HTML content.
The following device features are accessible through the Corona SDK:
- Image Gallery
- Local Storage
- Device Back / Menu button Events
- Multitouch / Gestures
- Different Keyboard types
- In-App purchases
- Game network libraries (OpenFeint)
The SDK to build for iOS is $199/year as is the SDK to build for Android. You can purchase the “Pro” package for $349/year which allows you to deploy for both iOS and Android. More info on purchasing here.
Unlike Adobe, Ansca started out with no developer base for it’s Corona SDK. At the same time, it’s no secret that they’re trying to woo Flash game devs over as Lua is not that different from ActionScript, and tools to convert Flash content for use in Corona don’t hurt either. At the same time, it expounds on the fact that games will run much faster than those built using the AIR SDK, which is true at this point. I do have to say that I see few other dev environments that are as attractive for building 2D physics based games. The physics just works, and can be set up with just a few lines of code. If that’s your focus as a dev, give this platform a whirl.
For updates when new articles in this series are posted, follow @philterdesign on Twitter.