corona_product_teaserThe standard way to develop apps for Android is to use Google’s software development kit (SDK) together with Java and XML. Although the SDK is free, there is a learning curve for those who aren’t proficient in Java or doing UI design in XML. There are alternative SDKs including  PhoneGap, Titanium Appcelerator and Corona. Previously Corona was a subscription based product which cost $349 a year to use. Last week, Corona Labs made its Corona SDK free for developers to create and publish apps in Google Play for any company or individuals generating an income, from mobile development, of less that $100,000 per year!

The unique feature of Corona is that it uses the LUA programming language rather than Java. LUA is an open source language that, in my experience,  is easy to learn for anyone with some kind of coding experience including knowledge of  languages like Basic, C, Python or even shell scripting. LUA can be found in lots of unexpected places including in World of Warcraft and in the VLC media player.

Since Corona is designed primarily for games, almost everything in it is handled as an OpenGL object. This makes game development very easy. There is also a built-in 2D physics engine with support for joints, collisions and variable gravity. There is also support for Facebook, sqlite3, cryptography and networking! Earlier this year Corona Labs also introduced  Corona Cloud, a backend service which allows apps to provide functions like user accounts, leaderboards, achievements, turn-based multi-player, push notifications and chat. Like the Corona SDK there is also a free tier inside the Corona Cloud.

So what does this mean for those with aspirations to write the next hit Android game? It means that if you don’t fancy programming in Java or using XML then head over to the Corona Lab website and get the SDK. Included are dozens of example programs and the website contains the full API documentation plus tutorials etc. Once you have some code written it can be run in the included simulator which can simulate a variety of devices and screen dimensions. When you are happy with your app it can be submitted to Google, Amazon and Barnes & Noble for inclusion in the various Android app stores. Also, for those who want to dabble in iOS, the SDK can produce an iPhone or iPad binary as well!

What do you think? Will you give Corona a try? Would you like to see Android Authority cover some programming tutorials about LUA and Corona now that it is free? Please leave a comment below.

Gary Sims
Gary has been a tech writer for over a decade and specializes in open source systems. He has a Bachelor's degree in Business Information Systems. He has many years of experience in system design and development as well as system administration, system security and networking protocols. He also knows several programming languages, as he was previously a software engineer for 10 years.
  • MasterMuffin

    “This makes game development every easy” and “Wnen you are happy”

    I’m so excited about this that I have to be Nazi :D

    • That stupid spell checker!!!! :-) All fixed…

      If you download the SDK please let me know what you think.


      • Jaime Larios

        We would like tutorials!!!! Please :-)

      • MasterMuffin

        Just downloaded, looks nice but I’m not going to start studying it today because tomorrow I have more time

      • MasterMuffin

        When I delete my comment, why does it show it as if it were commented by “Guest”?? Anyways, I couldn’t resist it (Corona) so I started playing with it. Can you help me a little if you know how to? Here’s my (short) code so far:

        local physics = require( “physics” )
        display.setStatusBar( display.HiddenStatusBar )
        local sky = display.newImage( “a.bmp” )
        local ground = display.newImage( “b.png” )
        ground.x = 640
        ground.y = 750
        physics.addBody( ground, { friction=2,0 } )
        ground.bodyType = “static”
        local crate = display.newImage( “c.png” )
        crate.x = 1200
        crate.y = -1000
        crate.rotation = 10
        physics.addBody( crate, { density=2.0, friction=2,0, bounce=0.3 } )

        It’s basically a background (horizontally, resolution 1280×720 and orientation are in another file) with text and a dude standing and then a TNT drops on the right and rolls to the center. After that all has happened, I’d like to add another picture, but I don’t know how (yes I’m a big noob :D). I searched and got to this thing called
        timer.performwithDelay(time in milliseconds, object)
        So how do I make it so that when I add
        local logo = display.newImage( “d.png” )
        I get the timer to delay the coming of “d.png” but nothing else?
        That was a weird explanation, but if you got it and know the answer please reply.
        Thanks :)

        • Maybe you need something like this:

          local function addlogo( event )
          local logo = display.newImage( “d.png” )

          timer.performWithDelay( 1000, addlogo)

          You could also try test if the crate has any velocity using the body:getLinearVelocity() but you would need to assign it a variable and then you get into the whole scope issue, but that is another story!

          • MasterMuffin

            wow thanks, I didn’t have the “end” and “addlogo” >.<

  • Viktor Hoti

    I would like to see some tutorials as they can help a begginer to go further.

  • me

    It looks like this is just a free 30-day trial.

  • me

    It’s just a free trial, you still have to pay if you actually want to publish something.

    • Simon Fearby

      It’s free, you just need to pay for an apple and android dev account (your dont have to pay corona)