We're hiring!

We're actively seeking developers for our new Detroit location. Learn more

Smoking with Sinatra – A Case Study

We didn’t have as much time as we would’ve liked to build the first ArtPrize iPhone app. But when Karlin and I pulled our stools up to the whiskey bar of short deadlines and high expectations, Sinatra bought us a drink.

During development of the native iOS app, we were architecting a REST API that would provide us with artist information, a means to vote, authenticate users, and determine the current status of the event (week 1 voting, top 10 voting, etc.). Since production development on the API had yet to begin, we turned to Sinatra for a quick, yet clean, DSL that gave us a deployed running server that the first build of our app could talk to.

In less than half a day, we had a Sinatra app running and deployed remotely that would support ArtPrize logins and event status. Later we added detailed artist info, venue info and voting. Instead of using a database, managing migrations and persistent test data, we stored all data in memory using Ruby hashes and arrays. Every new deploy or restart automatically reset all of our test data. This made it very easy to tweak the API, make a new build of the mobile app, and get everyone testing again as quickly as possible.

Though I haven’t been directly involved since the first year, Atomic Object has continued to update and support the iPhone ArtPrize app each year, as well as creating an Android app. I was happy to see our little (~500 lines) sinatra mock API server is still maintained, and used for testing.

Thanks for the whiskey, Sinatra.

Micah Alles (25 Posts)

I’ve been developing software at Atomic Object since May 2002 – starting as an intern, graduating to full-time employment, and eventually becoming a part owner in 2009. Over the years I’ve lead and been a team member on multiple mobile, web, and desktop projects for clients ranging from startups to the Fortune 500. I love being part of a company with such a strong culture of moving forward and increasing our collective average of skill and quality, in particular, through my favorite two of our five value mantras: Give a Shit, and Teach and Learn.

This entry was posted in Development Techniques and tagged . Bookmark the permalink. Both comments and trackbacks are currently closed.