Mission: Impossible or How We Built the Oil Reporter App in Just Three Days

It started off innocently enough; it was just like any other Tuesday at the office when suddenly I got the call:

Secret Agent Chris: We have a job for you. We need a combination mobile and web application built in three days time. Should you or any member of your team fail in your mission, the Agency will disavow any knowledge of your actions.

Me: You can count on us sir!

And with that we set upon building just what they had asked for: a mobile application that ran on both the iPhone and Android platforms that pushed data collected by clandestine agents to a web service with a nefarious purpose.

Actually, save for the limited time constraint, none of that is true. The app is in fact for the Gulf of Mexico oil spill and the clandestine agents are volunteers spread around the gulf armed with smartphones. CrisisCommons, a gathering of “idealists and innovators”, had worked with Intridea previously in the aftermath of the Haitian earthquake and with that collaboration came Tradui, a mobile app built for iPhone and Android that could translate English to Creole and back. Knowing firsthand our adherence to agile development practices, they turned to us for help in fleshing out their ideas for the oil spill.

Principally, what they wanted was a means for anybody to download the app for their smartphone, collect data for their affected area and then upload that data to a single web service which would make that information available to anybody who wanted it. Having already authored several cross-platform mobile apps, our Director of Mobile Development, Brendan Lim, immediately set to work writing the app in Titanium, an effort I was only too happy to help with. Having programmed iPhone apps only in Objective-C, I can attest to the fact that it’s a strange sight to see your rather verbose Cocoa method calls reduced to just a few lines of Javascript. But the security blanket of verbosity quickly receded in my mind as Brendan and I made enormous progress in just a few hours. We continued working well into the night and by around one o’clock in the morning we had a working Titanium application that could be compiled for either the iPhone or Android platform.

The next big task on our list was the web service. Aside from some required fields, we were given lots of leeway as to how it would function. We went with a Rails instance running on Heroku and began developing a RESTful web service that would be simple to communicate with. Modifying the mobile app in tandem, we were able to get a working provider/consumer solution working within the evening. Users could now send data about a location such as the amount of oil, destroyed wildlife, etc as well as any associated photos. When the next day rolled around, we found ourselves with an additional resource in the form of Jonathan Nelson. Having a keen eye for UI, he set to work making both our mobile and web apps look fantastic. Iterating over countless designs, we had within an evening a splash page, theme and all the graphic components necessary to give our apps the professional and uniform look they deserved.

Since then we’ve gone on to add a Google Maps overlay, an API service for outside developers and a host of other features. But it’s worth noting that within three days time a usable application was up and running. It speaks volumes not only about a small company spread over a dozen timezones but also about agile practices and the plethora of great services out there like Heroku and GitHub that make this quick development path possible.

Checkout the website and download the apps!