Our First App Published: Enigma Simulator
Posted by Craig H on 4 February 2012
This started when I was asked to do some prototyping work on Android by a client last November; I hadn’t done any programming on Android before, but I was familiar with Java from my time working on Enhydra Enterprise at Lutris Technologies. When I joined Lutris in 2000 I was new to Java (after 15 or so years working with C on UNIX™) so I wrote an Enigma simulator in Java as a learning project (it was related to security, a good way of getting to grips with object orientation, and fun!) I hadn’t used the code in over 10 years since, but I dusted it off and got it running on Android to get familiar with the new environment.
Having spent a couple of days on it, I had it running with a rudimentary UI and was familiar enough with the Android SDK to put the Enigma project aside and concentrate on the paid work, but I did still wonder if something useful could be done with the code. Back when I first wrote the logic of the simulator, there was a real Enigma machine out on a table at Bletchley Park that you could physically use and experience what the real operators in World War II had to do. These days, with auction prices of the machines topping $200,000, they’re all locked away behind glass. Given the touch UI of Android, it occurred to me that a good enough simulation could be a useful educational tool, perhaps put alongside museum displays on a tablet computer to give people something of the real feel of the machine.
Looking on the Android market, I found two Enigma simulators already available. One was a decent quality paid-for application, the other was free but poor quality (with logic errors and a hard-to-use UI) and neither took good advantage of the extra screen space on a tablet. I decided to go ahead and give our Enigma simulator a proper, realistic UI, add features to do more than the currently available apps, make better use of the extra space on tablets and publish it. Had I known then that it would take 2 months of days off, evenings and weekends to do I would probably have thought twice!
Another overlap with the client work I’ve been doing is the area of in-app payments. As I’d been investigating security measures to protect in-app payment transactions from tampering on Android devices, I started thinking about whether in-app payments could be taken advantage of in the Enigma simulator. I’m a big fan of the work being done by the Bletchley Park Trust to preserve the historic code-breaking site, both as a memorial to the great work done there and as an educational resource. We’d already decided to include in-app advertising as a possible way of recovering some of our development costs, so we decided to also include a payment option to allow people to turn the ads off and at the same time donate to the Trust. It’s not expensive (just £1) so I hope a good proportion of the users will take that option as it’s in a good cause. At least 50% of the proceeds will go to the Trust and, if we ever reach the point of recovering our development costs, we will look at increasing that percentage.
The app is available now on the Android Market, and we already have a couple of paying customers and a nice review, so that’s a good start! Accompanying documentation is available on our wiki, and I have a long list of potential features that didn’t make the cut for the first release. If you have an Android device please try out the app, please donate if you like it, give us a review on Android Market and let us know about any improvements you would like to see in future versions.
Finally I’m wondering whether similar apps could benefit other charitable institutions using this payment model; one obvious candidate would be the National Museum of Computing (based on the Bletchley Park site but not sharing any of their government funding). Perhaps a Colossus simulator, what do you think?