Learn How to Develop Apps for iOS and Android with Corona SDK
Ansca Mobile offers a cross platform SDK for iOS and Android. Using the SDK the last couple of weeks I really can say that it is fantastic, especially for beginners who want to write their first game or utility app. I would also dare to say that it might be the right tool for somebody who has never written an application before.
Advantages of using Corona
Since Apple made the SDK for iOS available for third party developers in 2008, I developed over thirty apps for iOS. Most of these have been published. Have a look at my latest app on the AppStore. Therefore, it is easy for me to evaluate the pros and cons of the Corona SDK compared to the iOS SDK.
The Corona SDK is a powerful tool, which has many advantages over the traditional way of building apps for iOS and Android. The main advantages I see are the following:
- You can publish your apps for iOS and Android devices without changing your code base.
- You can rapidly develop software with the Lua programming language. Did you know that Lua is now in the top 10 of the TIOBE Programming Community Index? The article also states that Angry Birds has been programmed in Lua.
- You can cut down turn around cycles during development dramatically. There is no need to compile your app. Make changes in the code and hit refresh on the simulator to see your changes instantly.
- You can use Windows to develop apps, though you would still need a Mac to publish your apps to the App Store. This is a constraint retained by Apple.
Disadvantages of using Corona
There are some limitations inherent to the Corona SDK. You need to carefully consider these, as it can be a show stopper for some of your projects.
- Most of the well known third party libs and frameworks cannot be used with Corona SDK.
- Some of the features offered by the underlying operating systems cannot be used.
- Features available on iOS are not available on Android. For example, at the time of this writing, there are no in-app-purchases (IAP) available on Android.
For example, if you want to develop a utility app which needs lots of native UI controls and where you want to use the AdWhirl framework to support different ad networks, you should not try to build it with Corona. Since Corona targets iOS and Android devices, the support for native controls is limited. You can certainly develop utility apps with Corona, but you might go through the pain of developing your own custom UI controls. And because Corona does not allow you to use third party libs you cannot use AdWhirl to monetize your app. You need to follow a different strategy to earn money with your app.
When you do client work, you really need to make sure that the Corona SDK is the right tool. It is very likely that the client will come to you and ask for additional features for the MightyTool app you built for him. For example, when the client asks to add local notifications you will be in big trouble. There is no support for local notifications built into the Corona SDK. So, know your tools and be sure about what tool can be used for each specific case.
After developing some apps for iOS I decided it might be worth looking at Android as well. Being an Ansca Mobile forum member since August 2009, I knew that you can target Android devices with the Corona SDK. I decided to download the Corona SDK. It is free for personal use. You need to buy the license only if you want to publish your app on one of the app stores. After looking at the example code which comes with the SDK and spending two days developing with it, I was hooked. It is such a fun way to develop apps. Try it yourself.
The best way to learn a new programming language or SDK is to build something with it. When I learn something new I try to make as many errors as possible in the shortest possible time. In the last few days I developed a complete clone of a flash game I played some years ago. It is a pretty simple but fun game. It is called Squares2 and has been developed by Gavin Shapiro. Play it, but promise to come back afterwards.
If you are interested in how to build a clone of Squares2 with the Corona SDK, follow my tutorial. I will publish the tutorial series starting next week. Among other things you will learn how to
- build a complete game, which can be deployed on the iPhone, iPod, iPad and on Android devices.
- control a player.
- draw objects on screen.
- use the box2d physics engine for collision detection.
- use some Lua goodies like closures and tables.