ARG Tools for iPhone

As a few readers of this blog may know, I have been tinkering with iPhone development for about a year. Technically, a bit longer than that — since the first jailbreaks and community SDKs — but realistically, with all seriousness, about a year of what I’d consider above “tinkering” but below “professional.” In recent months, I even picked up an iPhone developer certificate for code-signing. At first, it was for the “gee whiz” factor of running code outside the simulator, on a real device, but I quickly came to realize how close I was to having shippable apps.

Given that introduction, I would like to present my first official iTunes Store app, ARG Tools (iTunes link). It is a bit of a niche utility, aimed mainly toward puzzle solvers and ARG players, specifically with an eye toward live events. For a long time, I have had a set of JavaScript-based encoding and decoding tools at stackoverflow.org.  I find them to be useful, but not always convenient.  I designed ARG Tools with the following things in mind:

Offline Use – The tools and reference are specifically designed to work offline.  You can load the app up on your iPod Touch and run off to an event without worrying about whether a WiFi access point will be available.

Countdown Timer Decoder – A common theme among ARGs and transmedia stories is an initial countdown timer.  It often acts as a buffer, allowing the word to spread and a community to build up before a game kicks off in high gear.  This tool lets you punch in the countdown value and see the exact date and time at which the countdown hits zero.

Common Encodings/Decodings – The app lets you decode a number of different formats, from ROT-n (1..25) to Vigenere (that would have been crazy useful for that ARGFest cake) to substitution to transposition to base 64.

Common Letter Representation Reference – Codes, love them or hate them, are not always transforming one letter into another.  Many times, they are turning a letter into a completely different entity altogether.  I solved a puzzle a few weeks ago in which 6-packs of beer represented letters in braille.  The reference sheets in this app include a number of common encodings like braille, Morse code, and semaphore.

Google Search – A Google search bar is always visible on the homepage.  I admit that the app cannot contain every possible encoding, decoding, or letter representation in existence.  I once had to solve a puzzle in which letters were encoded as chemical names.  I solved another in which I needed constellation names.  An in-app Google search is a touch away.

Quick Links – ARG Tools contains an embedded browser with links to the top ARG and transmedia forums and websites.  You can quickly get to that piece of encoded text, copy it, and paste it into the app.  In the field, you can use your iPhone to report updates from a live event.  Players that may only be familiar with a few of the included websites might be exposed to new and different sites.  Webmasters: the main menu links all include the suffix “?source=iphoneargtools” if you have a fancy logging setup that lets you track such things.

Easily Obtained – The app is small enough to be downloaded over the air.  It is also free-as-in-beer (but I chose not to go Open Source).  This means that Person A can show it to Person B and Person B can instantly download it onto her iPhone.

Easily Expanded – This is more of an “under the hood” feature than a visible one, but the main menu is just a data file (a plist, for those in the know).  It maps main menu entries (names and icons) to embedded “applets” (ViewControllers, for those in the know) for each of the types of encoding and decoding.  It maps to self-contained static web pages for the reference material (braille, Morse code, and so on).  It maps to URLs for the web links.  This means it is relatively trivial to add new items.  This, in turn, makes updates and bugfixes easier.

So go forth!  Download the app!  Tell your friends about it!  Give it high ratings!  More details as well as a few more screenshots can be found at http://iphone.netninja.com/applications/arg-tools/.  If you have suggestions for how to expand its functionality, please share.

Posted in: Code iPhone Puzzle Games

Published by

Brian Enigma

Brian Enigma is a Portlander, manipulator of atoms & bits, minor-league blogger, and all-around great guy. He typically writes about the interesting “maker” projects he's working on, but sometimes veers off into puzzles, software, games, local news, and current events.

14 thoughts on “ARG Tools for iPhone”

    1. I admit that it would be nice to have an Android version, but I have to echo what I mentioned to @Ari0ck a couple of days ago. I don’t have an Android device. Although I can write Java code, I haven’t done so in a few years, so my Java is a bit rusty. (The Android SDK is Java-based.) And most importantly, I have enough of a workload in the queue for iPhone applications that I won’t have the time to invest in brushing up on Java, getting use to the Android SDK and emulator, and all that good stuff.

      1. fFair enough. I was about to ask: “Would you entertain sharing the source so someone else could build the Droid port?” But it’s probably easier to just build fFrom scratch, eh?

        1. I’m a little hesitant to release the source of this app for a couple of reasons. The first and foremost is that it’s all written in Objective-C, so isn’t terribly useful outside of an Apple environment. I do have JavaScript source for the various tools on the tool pages at stackoverflow.org. I wrote those pages ages ago and basically just ported them to Objective-C for this project. It should be easy enough to port from JavaScript to any other language/platform.

  1. Hi Brian,

    You have made a fantastic application. Thank you.

    But I have a comment concerning Vigenere cipher.

    ARG Tools uses non significant symbols for password counting. That is why the result
    is different for the same phrase with different quantity of spaces or other non literal symbols.
    For example,

    passphrase: “PASSWORD”

    1)
    phrase: “MESSAGEFORCIPHERING”
    result: “BEKKWUVIDRUALVVUXNY”

    2)
    phrase: “MESSAGE FOR CIPHERING”
    result: “BEKKWUV UOJ YWGKTRAFC”

    3)
    phrase: “MESSAGE, FOR, CIPHERING”
    result: “BEKKWUV, FGJ, TLEHWJEBX”

    In general case, non literal symbols should not influence on result:

    1)
    phrase: “MESSAGEFORCIPHERING”
    result: “BEKKWUVIDRUALVVUXNY”

    2)
    phrase: “MESSAGE FOR CIPHERING”
    result: “BEKKWUV IDR UALVVUXNY”

    3)
    phrase: “MESSAGE, FOR, CIPHERING”
    result: “BEKKWUV, IDR, UALVVUXNY”

Leave a Reply to Miaomiao Huang Cancel reply

Your email address will not be published. Required fields are marked *