ARG Tools for iPhone

As a few read­ers of this blog may know, I have been tin­ker­ing with iPhone devel­op­ment for about a year. Technically, a bit longer than that — since the first jail­breaks and com­mu­nity SDKs — but real­is­ti­cally, with all seri­ous­ness, about a year of what I’d con­sider above “tin­ker­ing” but below “pro­fes­sional.” In recent months, I even picked up an iPhone devel­oper cer­tifi­cate for code-signing. At first, it was for the “gee whiz” fac­tor of run­ning code out­side the sim­u­la­tor, on a real device, but I quickly came to real­ize how close I was to hav­ing ship­pable apps.

Given that intro­duc­tion, I would like to present my first offi­cial iTunes Store app, ARG Tools (iTunes link). It is a bit of a niche util­ity, aimed mainly toward puz­zle solvers and ARG play­ers, specif­i­cally with an eye toward live events. For a long time, I have had a set of JavaScript-based encod­ing and decod­ing tools at  I find them to be use­ful, but not always con­ve­nient.  I designed ARG Tools with the fol­low­ing things in mind:

Offline Use — The tools and ref­er­ence are specif­i­cally designed to work offline.  You can load the app up on your iPod Touch and run off to an event with­out wor­ry­ing about whether a WiFi access point will be avail­able.

Countdown Timer Decoder — A com­mon theme among ARGs and trans­me­dia sto­ries is an ini­tial count­down timer.  It often acts as a buffer, allow­ing the word to spread and a com­mu­nity to build up before a game kicks off in high gear.  This tool lets you punch in the count­down value and see the exact date and time at which the count­down hits zero.

Common Encodings/Decodings — The app lets you decode a num­ber of dif­fer­ent for­mats, from ROT-n (1..25) to Vigenere (that would have been crazy use­ful for that ARGFest cake) to sub­sti­tu­tion to trans­po­si­tion to base 64.

Common Letter Representation Reference — Codes, love them or hate them, are not always trans­form­ing one let­ter into another.  Many times, they are turn­ing a let­ter into a com­pletely dif­fer­ent entity alto­gether.  I solved a puz­zle a few weeks ago in which 6-packs of beer rep­re­sented let­ters in braille.  The ref­er­ence sheets in this app include a num­ber of com­mon encod­ings like braille, Morse code, and sem­a­phore.

Google Search - A Google search bar is always vis­i­ble on the home­page.  I admit that the app can­not con­tain every pos­si­ble encod­ing, decod­ing, or let­ter rep­re­sen­ta­tion in exis­tence.  I once had to solve a puz­zle in which let­ters were encoded as chem­i­cal names.  I solved another in which I needed con­stel­la­tion names.  An in-app Google search is a touch away.

Quick LinksARG Tools con­tains an embed­ded browser with links to the top ARG and trans­me­dia forums and web­sites.  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 famil­iar with a few of the included web­sites might be exposed to new and dif­fer­ent sites.  Webmasters: the main menu links all include the suf­fix “?source=iphoneargtools” if you have a fancy log­ging setup that lets you track such things.

Easily Obtained — The app is small enough to be down­loaded 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 down­load it onto her iPhone.

Easily Expanded — This is more of an “under the hood” fea­ture than a vis­i­ble 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 embed­ded “applets” (ViewControllers, for those in the know) for each of the types of encod­ing and decod­ing.  It maps to self-contained sta­tic web pages for the ref­er­ence mate­r­ial (braille, Morse code, and so on).  It maps to URLs for the web links.  This means it is rel­a­tively triv­ial to add new items.  This, in turn, makes updates and bug­fixes eas­ier.

So go forth!  Download the app!  Tell your friends about it!  Give it high rat­ings!  More details as well as a few more screen­shots can be found at  If you have sug­ges­tions for how to expand its func­tion­al­ity, 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 ver­sion, but I have to echo what I men­tioned to @Ari0ck a cou­ple 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 impor­tantly, I have enough of a work­load in the queue for iPhone appli­ca­tions that I won’t have the time to invest in brush­ing up on Java, get­ting use to the Android SDK and emu­la­tor, and all that good stuff.

      1. fFair enough. I was about to ask: “Would you enter­tain shar­ing the source so some­one else could build the Droid port?” But it’s prob­a­bly eas­ier to just build fFrom scratch, eh?

        1. I’m a lit­tle hes­i­tant to release the source of this app for a cou­ple of rea­sons. The first and fore­most is that it’s all writ­ten in Objective-C, so isn’t ter­ri­bly use­ful out­side of an Apple envi­ron­ment. I do have JavaScript source for the var­i­ous tools on the tool pages at I wrote those pages ages ago and basi­cally 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 fan­tas­tic appli­ca­tion. Thank you.

    But I have a com­ment con­cern­ing Vigenere cipher.

    ARG Tools uses non sig­nif­i­cant sym­bols for pass­word count­ing. That is why the result
    is dif­fer­ent for the same phrase with dif­fer­ent quan­tity of spaces or other non lit­eral sym­bols.
    For exam­ple,

    passphrase: “PASSWORD




    In gen­eral case, non lit­eral sym­bols should not influ­ence on result:




Leave a Reply

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