Posts Tagged ‘lua’


Codea (formally called Codify) is an $11 iOS application in which not only can you develop applications, you can run them (you can’t run them outside of the app – i.e. this isn’t a way to develop iOS applications).

The application is very pretty – and that counts, this is iOS!  At launch, you’re presented with a set of example projects, and you can create your own (I don’t think touch-and-hold is a great way to get the contextual menu for delete/duplicate/copy into new project, but it works well enough).

Inside of a project, there are two views: the code editor and the execution window.  The editor is good – it’s not as good as Textastic (and there’s no configuration possible – not even changing font size via pinch & zoom), but it’s perfectly usable (the worst part are the tabs at the top where you can switch between files, where the tabs are bizarrely small).  There are elements of the editor that are superb: if the editor can tell that the function arguments are a colour, then you get a colour wheel, if the argument is a sprite, then you get a sprite picker, and so on.  That’s the way to make coding on an iPad faster and more enjoyable.  The keyboard, like Prompt and Textastic, has an additional top row with keys you’re likely to need (paired quotation marks and brackets, +=, and so on – it’s interestingly a very different set of keys to Textastic (both have their advantages).  Also available via this extra keyboard row is a very nicely formatted set of help documents that explain the methods that are available and how to use the app in general.

Applications are developed in Lua – this isn’t a language I’ve done a lot in, but I’ve seen enough and it’s similar enough to other languages that it’s easy to get familiar with it.  I sincerely hope that the developer plans to offer additional languages (Python!) in the future (perhaps as in-app purchases?).  Most importantly, there are methods available that expose the iOS interface to the code (especially touch information and drawing routines).  These are somewhat limited compared to writing an iOS Objective C application in Xcode on a Mac, but perfectly usable in this context.

Once the application is complete, you can switch to an execution window.  Two thirds of the screen are the application’s display, with a sixth for textual output (e.g. debugging) and a sixth for parameters (e.g. sliders that you can use to pass values to the application – these are extremely easy to use in the code).  Unfortunately, given Apple’s restrictions on apps, this is all that you can do with an application at present.

The app is well made and does what it aims to do very well.  There’s clearly room for expansion (minor interface tweaks, more languages, more access to iOS features) as well.  The remaining question is whether there is any practical use to the app, given that you’re restricted to running your applications within the Codea app itself.

(It’s possible that this restriction will be lifted or weakened in the future – with Apple it’s difficult to tell.  It does seem likely that there could be a version of the app that allowed you to export (as a collection of text files) and import code, just as an application like Textastic can – or even some sort of seamless sharing via Dropbox or iCloud.  This would make it easy to share applications, but you’d still need to run them in Codea itself, unless they were pure Lua and didn’t use iOS at all.  However, it seems feasible that someone could then write an emulator/interpreter for Codea apps for OS X (replacing touch with the mouse), so you could run your apps externally if you liked.  It seems very unlikely that you’ll ever be able to turn them into full-fledged iOS applications).

The app demos very well – it shows a glimpse into the future where not all development is done on traditional desktop/laptop systems.  However, I can’t see how it can be of any practical use – except for education.

For education, this seems like an extremely valuable application.  In an educational context, it doesn’t matter if the app can run standalone or not (it would be nice if you could easily share it with someone else, like a teacher).  The interface is approachable, and the language friendly, and there’s potential for creating very impressive apps.  I would love to teach a short course where the students did all their development in Codea (perhaps on a beach away from a typical “lab” environment…), assuming that the students all had iPads already (and we have an AppleTV and large TV to demo things to each other).  I hope that someone does do this (and writes it up somewhere where we can read about it!).

This application is amazing.  Even if you have no interest in programming, you should buy it to support the developer.  If you do have an interest, you should have bought it already.