Corona SDK: Revisited
Revisited might be a little misleading, considering the fact that I’ve been using the Corona SDK just about non-stop since I started using it back in July (2010), but I’m going to “revisit” it by writing about just how my experience has gone since I published my first review of Corona mid-September.
So if you haven’t read my first review, I highly suggest you go back and read that first, because this review assumes you read the previous. Do I still agree with everything I said in my last review? In short, yes. But here’s the long version…
Why Two Reviews?
For two main reasons:
- Corona was in beta during my last review, now it’s not.
- Corona is subscription-based software, subject to change over time.
Another reason for writing this review is because my last review is the most read article on this blog, and I still get emails regularly from people who “just read the review” and decided to purchase Corona.
The problem is, that last review is quickly becoming outdated, so I’d feel more comfortable if people based their decision on the information they receive from THIS article, not the older, outdated one.
So, What’s New?
I’ll start things off by listing (off the top of my head) the things that have changed since the last time I reviewed the Corona SDK:
I’ve now been using Corona for six months (like I said, pretty much non-stop), as opposed to two.
I now have 4 games (all Corona-made) live in the app store now, with an additional one currently “Waiting for Review” (see: Cavern Drake), as opposed to two.
Corona Standard and Game Edition have been merged into one product.
Corona is now out of beta.
There is no longer a 30 day limit on the trial version. You can use the trial version for as long as you want, full-featured. The only limitation is that you cannot build for App Store distribution, but you can build to test on your device.
In my previous review, I mentioned that Corona needs to have more native user interface (ui) elements included. More has been added, but A LOT more is coming soon, very soon.
I mentioned the need for in-app purchases. I was granted access to download the latest development build, and I can confirm that in-app purchases are not only present, but are EASY to implement and working great. So if you were to get Corona today … EDIT: In app purchases are now live :-)
A plethora of new features have been included since my last review, a few of the highlights include OpenAL powered audio, MapView API, Analytics by Flurry, improved Sprite API, integrated Facebook API, and more.
A Few More Quick Points
My previous review focused on the benefits of using Corona mostly from a rapid app development standpoint. "If you want to develop apps fast, without sacrificing performance, then Corona is a great choi… rephrase… the BEST choice." was the main message.
I was looking for a way to produce apps quickly, with a reasonably low learning curve, without having to sacrificing performance and Corona provided exactly that, so the review focused on others who were in my same boat.
This time, I’ll try to address everyone and anyone who Corona might appeal to. But first, let’s conclude two things right off the bat:
There is no ulterior motive for me to support Ansca or the Corona SDK, other than the fact that it is an amazing product and I choose to support it.
The fact that I’m still using Corona after six months of continuous, regular, almost-overwhelming-amounts of use speaks volumes for Corona all by itself. In fact, if you read my review that was published in September and notice that I’m still using Corona to publish apps now… then you know Corona is a great product.
So, you already know that Corona is for me. I’ve harped on that. You get the message. I know. But is Corona for YOU?
If you are deciding whether or not you should use Corona, I can give you plenty of reasons why you should, and also why you shouldn’t, depending on who you are. So I’ll go over the different categories you might fall under, and let you know if you should or shouldn’t use Corona to create your next mobile app.
Group 1: Experienced Programmers
If you’re an Objective-C developer, or have experience in other languages such as C, C++, Java, etc. and are wondering whether or not you should use Corona, you fall into Group #1.
You should use Corona:
If you want to stop focusing on the technical aspects of programming your app, and want to focus on just the logic (if you like programming, this is also known as “the fun part”).
If you want to develop apps exponentially faster than you currently can, without taking a hit on performance.
If you want to take advantage of an engine created by industry leaders. Carlos Icaza and Walter Luh, the co-founders who have not only worked for top tech companies such as Adobe, Apple, Macromedia (the list goes on), but also have years upon years of engineering experience in the mobile software industry. The rest of the Ansca staff also have impressive engineering backgrounds as well. Of course, you’d only want to use this engine IF you don’t think you can create a better engine than they can to power your games and apps.
If you want to publish apps for both iOS and Android without having to use a separate language, or even a separate project! With Corona, you write once, and deploy for whichever platform you want (albeit with a few minor tweaks).
On the other end of the spectrum, you shouldn’t use Corona if the app you’ll be programming requires a feature not currently supported by Corona (although, that that gap is quickly narrowing… unless you want to do 3D games). I honestly can’t think of another reason why you’d want to continue using Objective-C, C++, or Java for your iOS/Android app unless you hate programming using high-level scripting languages (Corona uses Lua).
Group 2: Experienced Scripters
You fall into this category if you’re currently an ActionScript programmer, or even a web developer who wants to create apps that are of the same caliber as folks from Group 1, but aren’t sure if you’re ready to dive into the complicated programming that Objective-C and company presents.
In that case, you should use Corona:
If you want to create high performance apps without straying too far from what you’re used to (Lua is a scripting language that’s very similar to ActionScript, but has a friendlier syntax IMO).
If you want to do it in a fraction of the time as you ever could if you DID learn Objective-C.
If you’re a Flash developer and want to port your existing software onto iOS and Android devices (without having to use the notoriously slow Adobe Flash packager).
If you belong to Group 2, I can’t think of a reason why you shouldn’t use Corona for your next mobile app. If you’re an experienced scripter, then you’re already used to high-level languages and you’ll likely pick up Lua within a couple of hours (probably less), and you’ll be able to create native apps using your existing skills.
Group 3: GUI-based Developers
You fall under this group if you’re used to GUI software tools that require little-to-no programming experience, and are comfortable working with drag-and-drop features to create software or apps (such as GameSalad or GameMaker).
Folks in this group should use Corona:
If your current development environment has limitations that are getting to you (whether it is lack of features or performance) , and you want to use something that’s a lot more powerful at the expense of moving away from your GUI-based environment.
If you are ready to get started programming and want to begin with a high-level, easy-to-learn language such as Lua to create native, high performance mobile apps.
You’re not fully happy with what you’re using, but you think Objective-C is overwhelming, and are still a little nervous about learning Lua but are thinking about it.
I’ve come across a lot of folks in the latter situation, and I say go for it, 100%. If you’re nervous about learning a programming language and are insecure about moving away from your GUI based environment, set aside some time to download Corona and take advantage of their unlimited free trial.
Go through their online resources and training, and give it your best shot! You have nothing to lose.
If you’re in this group, there are a couple reasons why you might not want to use Corona for your next app:
If the lack of a GUI-environment, particularly drag-and-drop, is a deal-breaker for you, and absolutely cannot live without a no-code (or very minimal code) development environment, then Corona is not for you… or I should say, 95% (probably more) of all mobile development tools and environments are off limits for you. Be thankful that you live in a time where you can even develop any kind of software without knowing how to code.
If you’re not ready to start coding, whether it’s time restrictions to learning a programming language, or because you don’t think you can (In that case, I still think you should give it a shot, take some time to try to learn Lua and you’ll be surprised at how fast you pick it up).
I was going to write a section for Group 4 (complete beginners with no experience) but then I realized that everything from the Group 3 section applies, minus the stuff about GUI development environments.
One drawback that could apply to anyone no matter what group you belong to is the yearly subscription costs. These are subject to change at any given moment, but as it stands, there is a yearly subscription fee that is associated with using the Corona SDK (unless you’re not publishing apps and are just using it in trial mode).
For some, this is a HUGE drawback. If it’s out of your price range, then that’s completely understandable. But this next section might make you feel a little better.
How to Justify the Yearly Costs
If you want to use Corona to develop iOS apps (not covering Android right now), this is what it’s going to cost you (subject to change):
- $99 annual iOS Developer Program fee (from Apple)
- $349 annual Corona SDK subscription (from Ansca)
- Total: $448/year (as of January 12, 2011)
If you’re nervous about the upfront “investment”, look at it this way. It is a realistic goal to create at least a few apps within a year’s time using Corona (more than realistic). In my experience, as long as you do a good job with your app, and make sure it looks professional, you’ll usually at least get an initial sales boost from the first couple of days in the App Store.
Also, even if you do minimal promotion, your app can sell consistently and while a few sales here and there aren’t much at first, they do add up over the course of a year. Multiply that by a few apps and you’ll—at the very least—have a good chunk of your subscription made back.
A more likely scenario is that you’ll have made more, as long as you stay focused and do something with your subscription.
Like a treadmill, it won’t do you any good if all you do is sit on it. Unlike a treadmill, you can use it to make awesome games and apps.
There’s no one product that’ll fit everyone's needs, but as someone who has used the product extensively for a full six months (and counting), I can safely say that Corona is the one that definitely comes the closest.
If you do decide to grab a Corona SDK subscription, take their short survey (it really is short) and get 10% off when you purchase.
If you’re still not sure, then definitely take advantage of their unlimited free trial and see for yourself. Take as much time as you need.
I hope this article, as well as my previous review will help you make a more informed decision as to whether or not to choose Corona. You know who has my vote.