codea – coding on ipad for ipad

While browsing last night I came across a link to an ipad game that promised to help teach sequencing and control – a game called cargo-bot. There was mention of the app that was used to create it as well, so I went off to investigate.

a screen of cargo bot, showing a puzzle

cargo-bot, showing all tools available. Match the pattern at the top to complete.

Cargo-bot itself is free, and provides exactly what was promised – a way to practise sequencing instructions. If you’ve ever played with light-bot, it’s very similar, but also offers conditional instructions. The aim is to move the coloured crates and stack them in the right place in the right order, using only commands like left, right and down, plus the facility to create subroutines and loops.

The really interesting part comes when you start looking into how Cargo-Bot was created. An app called Codea, which costs £6.99 ($9.99 in the US, I believe), provides a way to code directly onto the ipad using Lua. The coding for several examples is included, and this includes the complete listing and graphics bundle for cargo-bot.

codea's front page

codea’s front page, showing example projects and link to wiki and tutorials

While learning yet another language isn’t necessarily the best idea, I couldn’t resist, and so bought and installed the app and started playing.

my game in action

my game in action

Within about an hour I’d produced my own program that drew a character on screen who responded both to gravity (tipping the pad) and touch.

The longest aspect of this coding was having to switch constantly from the app itself to the wiki with its tutorials, find the right place in the tutorial and then swap back again and try to remember. I did try to borrow another ipad so I could use both at once, but ended up reverting to the tried and tested method of paper and pen!

codea's editor adds extra buttons to help type in code

editor, showing the quick buttons on the top row

The editor seems to provide a lot of help, for example a button to provide brackets, another to provide speech marks, both leaving the cursor in the middle for typing, and a quick += button. Pop-ups provide help with coding, and I did eventually find a comprehensive in-app help system.

built in reference guide

built in reference guide

There are a couple of graphics bundles provided, plus a program that lets you design your own sprites pixel by pixel. You can also link it to your dropbox account and use graphics you’ve placed in there.

I haven’t looked into how you export the game from codea to become a stand-alone app, but cargo-bot is living proof that it can be done and the game can then become part of the app store.

Even without this, the app provides a fascinating way to write your own code not only for ipad but on the ipad itself.  While I wouldn’t rush out and buy a class set of ipads just for this, given the opportunity to try it out I think it would be an excellent way to encourage interest in those who want to try coding. There’s a wiki that’s easily available from within the app, which includes tutorials, and while typing on an ipad can be fiddly, the editor provides enough help to take away a lot of the pain.

code listing

my complete code listing

My program has the sprite moving across the screen to respond to gravity (tilt the pad and it moves) and to touch (it jumps to the touch point).

Code is colour coded and clear to read, with parameter help and code hints. Auto completion options help to make ipad coding a straightforward affair.

One thing that I’m reminded of when looking at this is that while once upon a time it just felt like there was hardware and there was software, nowadays there are the hardware providers, the end product coders and a whole variety of people in the middle, who are providing things like game engines, physics engines and so on – the steps in the middle seem to be growing fast, each level building on the last to produce an end product that is the result of many hours of work by many people.