Posts Tagged ‘app’

Codea

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.

Textastic

Textastic is a programmers editor for iOS.  It’s not perfect, but it’s very close to the app that I was waiting for ever since the first iPad was released.

Even before I had an iPad, I’d mostly stopped using my laptop.  The only time I did use it was when travelling overnight (I’d take it if I had to work while away, or in case there was an emergency and I had to work on something).  I don’t need a full computer for this – typing on a software keyboard on a 9.7 inch screen is perfectly adequate for emergency work, and when combined with a bluetooth keyboard (which is small enough to easily pack, and I already own) and a monitor (now a TV via AirPort mirroring) it’s quite useable as a work-while-travelling device.

The only missing component was the software: for a very long time there was nothing available.  There are oodles of word processing applications, note takes, and there are even a few HTML editors – but nothing designed for real programming work.  I’m not sure why this is, but I suspect that most professional programmers already have something along the lines of a small MacBook Pro or Air and find it convenient to travel with that, so wouldn’t use an iPad, even in these situations.  The best available was, unfortunately, using SSH (this was before Prompt, too) and doing the word in a command line on a server somewhere.

At $14, Textastic is expensive for an iOS app, but cheap for a programmers tool (it’s definitely worth the price).  This is a text editor, not an IDE, so you don’t get a debugger or interactive prompt or anything like that – it would be difficult to do that anyway given Apple’s restrictions, and I prefer a dedicated programmers text editor to an IDE anyway.  (You can easily switch to other apps that together provide most of what an IDE does).

It’s a good editor – it does syntax highlighting for many languages (including Python and everything else I’m interested in), shows line numbers, and you can switch the file’s encoding and line ending choice.  You can quickly jump to “symbols” (e.g. method), although I generally just scroll since I know where I’m going.  There’s a decent find (and replace), and you can choose from DejaVu Sans Mono, Courier New, Luxi Mono, Monofur or Inconsolata for the font.  There are a variety of colour themes, there’s control over tab settings (including soft tabs) and word-wrap.  Although you can set the font size, you can also just pinch & zoom to get the size that you’re after, which is far superior to manually picking a size.

Generally the app does what it should: it gets out of the way and lets you get on with writing/editing the code.  There’s an additional top row in the keyboard that offers symbols that you’re likely to need (this oddly scrolls horizontally to fit everything in) so that you don’t have to toggle between keyboards often (except for numbers) if you’re not using an external keyboard.

Where the app falls down for me is where iOS in general performs badly: moving data between applications.  You can share files to the app (e.g. from Dropbox), and there are actually many ways of getting files in and out (via WebDAV, iTunes, creating local files), but you’re left with the same issue that lots of iOS apps have: you end up with duplicates.  To its credit, the app tries to address this (e.g. it can know that a file you’re editing belongs in a particular Dropbox location and sync the changes back), but at the end of the day it’s clearly a hack.  The app is still useable, but this does mean that I more often read code in it than write it (it’s far better for reading code than the Dropbox app is).

It seems obvious to me how to fix this problem (I don’t understand why it isn’t already the case).  Surely nearly every programmer that would use this app has their code stored in some sort of repository (CVS, SVN, Git, Mercurial, Bazaar, etc).  The repository is the file system.  The app has a working copy checked out, and you can commit changes back to the repository.  The app doesn’t need to support every action that the VCS/DVCS offers – really just (in SVN terms) add/remove/update/checkout (and perhaps propset) – if you need to do something else, then you use a dedicated SVN/Git/etc app).  This completely solves the issue of multiple copies of files, because that’s exactly what these tools are designed to handle.

Unfortunately, the app would need to support at least SVN, Git, Mercurial, and Bazaar since there’s a lot of diversity at the moment.  However, it seems likely that there are libraries that can be used (even in iOS) that would handle a lot of the grunt work.  If the app let me check out a SVN working copy, make changes, and then commit them back, it would be absolutely perfect (I’d pay ten times the price if the app supported this).

If you need a programmers text editor on iOS, then I highly recommend Textastic.

Prompt

Panic’s Prompt is the SSH iOS application that I (and I’m sure many others) were waiting for from the release of the first iPad.  My only complaint is that it took over a year (a year of using considerably inferior alternatives) before the app was finally available.

SSH isn’t pretty, but somehow Prompt is.  Although there’s a lot of space required for the keyboard, connections, and settings, Prompt somehow makes the remote display quite large enough to be readable (and if you use an external keyboard, then it’s perfectly sized, and you get the control keys and arrow keys working as you’d expect).  Connection management is very simple, and all the settings you’d expect (initial command, prompt string, etc) are available.

The keyboard includes an additional top row that has the keys that you need to use most frequently in SSH (escape, control, tab, /, -, |, @, arrow keys) and are missing from the standard iOS keyboard.  It even autocompletes using the shell history, saving typing long paths and commands repeatedly.

There’s very little I can say about the app other than if you will ever need/want to SSH from your iPad, then this is, without any doubt, the application to have.  It’s $11, but worth easily five times that much; I’d grumble and probably try and convince work to contribute to it, but I’d pay $100 for it.  If you don’t know what SSH is, then this is not the app for you.

(Before Prompt, I used iSSH which also does VNC – I use VNC a lot less frequently, but still need it occasionally, so now I need to figure out which is the best VNC app, which are unfortunately all fairly pricey.  If you have suggestions, let me know!)

Cards (iOS App)

Cards is one of the lesser quality Apple iOS apps (think MobileMe Gallery rather than Keynote).  The premise is simple: you create a greeting card on your iOS device (just like you would in iPhoto) and through in-app purchasing you pay for it to be printed and sent (anywhere in the world) – unlike in iPhoto where you’d have to order many and they’d be sent to you to then send on.

Aspects of the app are good – the templates are very customisable and generally nice, and it’s a pretty simple process to create a card.  The pricing ($6.50 including postage) is extremely reasonable considering the cost of a decent (not customised) card elsewhere.

However, there are considerable flaws: the purchasing is odd – it doesn’t use the standard in-app purchasing system (I can’t understand why not), so you’re prompted for more information than simply your App Store password; the App is bizarrely iPhone/iPod resolution only (nearly the same interface would work perfectly well on an iPad, where you’ve got access to all your high-quality photos via Photo Stream anyway); and the cards take forever to arrive.

The latter is the most significant flaw, of course.  In a few cases (e.g. “thank you” cards) it doesn’t matter how long the card takes to arrive; in most cases (birthdays, anniversaries, Christmas, …) timing is actually very important.  We sent a card while visiting the Auckland Museum at the end of the school holidays, and it took over a week to arrive; one has apparently been sent to us (around the same time) and has yet to arrive.  The “shipping notification” email arrives days before the card does, indicating that the problem isn’t in the printing, but in the delivery (presumably they are being printed in Australia and there’s some sort of international shipping delay causing issues).

It’s likely that this is a problem specific to New Zealand (and perhaps isolated other countries).  Unfortunately, that does mean that it’s less likely that it’ll be quickly fixed.  We’ll probably try this again in a couple of weeks, and see if the speed has improved – if not, then the app is only useable in rare circumstances, which is unfortunate, because we’d likely otherwise use it quite frequently.

SkyTV iOS App

The SkyTV iOS app is free, and I rarely use it, but on occasion is is very handy.  The application is mostly a TV Guide – since SkyTV refuses to let anyone else have their listings, but they do have all the free-to-air channels, it’s clearly the best guide.  However, I don’t really have much use for a guide, because I’m never looking for something to watch (everything I’m interested in is scheduled to record).

Where the app is occasionally useful is that it can be connected to your MySKY box, and you can remotely schedule a program to be recorded.  This is essential for those times when you’re away from home and remember that a new program is starting in a few hours and you forgot to schedule it.  The scheduling is limited (e.g. you can’t set up a series link), but it’s good enough for these situations.

As you’d expect from SkyTV, the process of setting this up is incredibly painful.  You need to enter your SkyTV account details and the unique ID of the smart card in the MySKY box, and although this should be a smooth process, it never works first time – and then, without anything being done at all, will ‘magically’ start working at some later date (I’m guessing that the linking process takes time, and the app fails to tell the user this, leading them to believe they did something wrong).

Once it is finally set up, though, it’s very simple to use – just find the program you’re interested in recording and a few taps later it’s scheduled.  Test it at home first, of course!  (But not right away, because, as above, it doesn’t appear to work until a few hours have passed since the initial setup).

If you’ve got MySKY and an iOS device, then this is absolutely an app that you should have installed (it is free, after all!).  If you don’t have MySKY, but you do want to use a TV Guide on iOS, then this is the more comprehensive one for New Zealand listings, so (again given that it’s free), it’s worth having.

Note that the app doesn’t offer any sort of iSKY (on demand video) access.  It would be extremely nice if that was added in the future, but I’m skeptical that it will be.

PyPad

PyPad is a Python interpreter for iOS.  This sounds incredibly exciting, right – finally I can do proper development and run Python programs on iOS!  Unfortunately, that’s not really the case (mostly due to Apple’s restrictions).

PyPad lets you create multiple modules and execute each of them.  However, only a subset of the standard library is available, and there’s nothing iOS-specific available (so you can’t access the camera, or touch information, and so on).  Getting code in and out of the app is done via copy and paste.  The standard keyboard is provided, with start/pause/stop buttons.

I keep the app installed so that I can (via AirPlay mirroring) demonstrate simple Python snippets.  However, if I have an Internet connection available, then I can do that in Prompt (ssh’d to a server that has Python installed) much more elegantly.

The app is clearly limited by Apple’s restrictions as to what’s acceptable for iOS.  However, it does seem like it could do much more (e.g. see Codea) if more of the standard library was available (this would mean rewriting chunks, I presume) and if there were special iOS-specific modules available for accessing things specific to the device (especially for accessing touch and graphical output).  It could accept .py and text files from other applications, making it easy to get code in (e.g. from Dropbox) and share files (as text) – although perhaps that crosses Apple’s boundary for what’s ok.  It would be nice to include the Python documentation, too (I have a separate app for this, but it makes sense to have it in once place).

The app is only $2, so if you’ve any interest in Python on iOS, then I’d recommend buying it to have a look and to encourage more development.  You probably won’t end up using it that much, however.

TomTom New Zealand

The TomTom iOS app was recently updated to be universal (i.e. support both iPhone/iPod and iPad resolution in a single app) and this, combined with yet another navigation argument, was enough to convince me to buy it – at $95 it’s by far the most expensive iOS app I’ve bought (although as a percentage of the total app expenditure it’s not very much!).

I gather the interface strongly resembles the dedicated TomTom hardware.  It’s useable, but not as clean or elegant as I imagine Apple’s app will be when they finally reveal it (but I strongly suspect that Apple’s one will be iPhone only, at least at first).  Given that most of the time you’re glancing at the map or just listening to the turn-by-turn directions, the interface isn’t overly important anyway.

It’s done well with directions so far – no errors, and easily correcting when mistakes are made.  The maps have sufficient coverage even in Warkworth and Ahuroa, and being a proper navigation app there’s no need for a cellular connection (unlike with the built-in Maps app), which is essential in Ahuroa, since there’s barely any coverage.

The app is certainly better than having to rely solely on another person to navigate.  Although I don’t often need instructions (since I’m usually driving somewhere I’m familiar with), in the cases where I do, it’s useful to have, and over the course of a year, I think that’s probably worth $100.  (The monthly traffic subscription, however, is not – I haven’t even bothered trying this out).

I’ve tried various free/cheap navigation apps, and although they’re ok, they’re absolutely inferior to this one.  I’d recommend it to anyone that thinks that they’ll get $100 of value out of it, especially over the next year (it seems very likely that iOS 6 will have a built-in app).