I’ve been developing interactive programs for over 20 years (cos I’m an old sod). I started off just as a “course designer” which meant I designed, scripted and project managed the development of what would now be called elearning programmes with someone else programming them. In those days we used an arcane tool called TenCORE (incidentally, I’ve just checked and a later version is still available) to put courses together but I left that to someone else.
In the early to mid 1990s I got into the first versions of Visual Basic and used VB3 extensively for some time. When I moved to Dixons Stores Group to head up Product Training development there, I used Matchware Mediator (still my favourite visual authoring tool) and Multimedia Masterclass (which became Dazzler). When I started my own business in 1999, I moved on to Flash 4 (the first version with ActionScript) and, over the next few years, became a Macromedia/Adobe Director geek, getting deeply into its scripting language Lingo. Believe it or not, I created a desktop publishing app using Director for a major educational publisher!
But, as Flash became more powerful, my attention turned to ActionScript. In 2004/2005 I created a full functional elearning playback engine that enabled non-programmers to create hundreds of hours of interactive training programmes without programming expertise or, indeed, needing to have Flash installed on their computers. In 2009, I created an engine for presenting and evaluating tests in ActionScript 3 for PassYourTheory.org.uk, one of my companies.
In the meantime, I became an expert PHP programmer – a language I absolutely love for its power, straightforwardness and its uncanny ability to simply work as you expect (unlike AS3).
But the landscape has changed. Visits to my sites by mobile devices have increased five fold in the past two years and so my attention is turning to smartphone and tablet development as my next target. Until now, the problem has been that the market is so fragmented. I prefer the Android platform personally and the idea of only developing for iOS was a complete non starter for me. On the other hand, to develop for both meant learning Objective C as well as Java – a major challenge. I find neither language attractive or enjoyable to program in so I looked at the possibility of using Flash Builder (AKA Flex) as a cross-platform alternative. On iOS devices, this would compile down to (as I understand it) native code but I’m hearing that the end result performs poorly and the functionality is limited. On Android, the user would need to have AIR installed which not only forms a barrier but also introduces a noticeable lag on starting the app up. So I took it no further.
The requirement became urgent recently, however, when I realised that one or more apps would be perfect to support PassYourTheory.org.uk given our young audience. An app developer I contacted as part of a PC Pro article I wrote mentioned Corona so I took a look and was instantly hooked.
Corona is an SDK that offers a range of mobile-related APIs as add-ons to the Lua scripting language. Never heard of Lua? Neither had I. It’s a high level language that has a lot in common with BASIC in terms of syntax – it’s certainly much more like Director Lingo than ActionScript 3. In a good way. Personally, I’d prefer a language that’s ECMA compliant so that it would be more instantly familiar but it’s a small price to pay.
It costs $199 per year to develop for one of the two OSes or $349 for both. I chose the Android only option for now as I don’t yet have the Mac required for iOS development. My early impressions are very favourable indeed. It’s an easy language to learn, the community is keen and friendly and, crucially, the end results execute quickly. There’s no appreciable difference between a Corona-created app and Java app on Android – in fact you wouldn’t know unless you’d been told.
I’m currently messing around with connecting to a SQLite database since this is familiar territory for me. I created a comprehensive database class in PHP and I’m porting the relevant functions across. Although Lua doesn’t support objects formally, it’s easy to create the equivalent of classes and use them in an almost identical way to PHP.
For a Flash developer reluctantly moving away from that platform for mobile, Lua and Corona are a breath of fresh air. I’ve long thought that Flex, in particular, has become too complex for individual developers as it tries to muscle in on Java territory. The only downside of any system like this (including AIR) is that you can’t use features unless an API has been written by the SDK developer. Fortunately, Ansca have created a huge set of APIs, far in excess of what’s available for AIR (at least, that’s how it seems to me) so you’re unlikely to hit the barriers unless you’re creating anything very complicated.
So far so good. This blog will feature tips and tutorials as I build my first app but Corona is looking like the solution I’d been looking for.
Use Facebook to Comment on this Post



.gif)