I get sent a lot of messages regarding items breaking on Gowalla Tools and this has increased dramatically over the past couple of weeks. I thought I’d break in our new Tumblr blog by explaining why it is that features on Gowalla Tools break and letting you know the best way to report a bug!
So, why do things break? Well to answer that question we have to take a little jump back in history! I set up Gowalla Tools in October last year in order to fill a gap I’d found in tools for Gowalla players. Specifically, I wanted a short list of my missing items on my iPhone so I could quickly refer to that when I was out looking for new items (as I couldn’t remember all the items I had or hadn’t vaulted). To do that, I used a set of hidden JSON files that I found on the Gowalla website that gave me access to information on the site. As I uncovered more of these files, I was able to make better and better tools by using the data that was provided (e.g. a tool to show where you could find missing items).
Then, about 2 months ago (after our widely promoted “13 Days of Christmas” updates) the content of these hidden JSON files started to change. This meant that occasionally features would break as bits of data I was relying on would change. I didn’t mind fixing these bugs as I was using completely undocumented data (although it was a bit annoying when they removed core data that I used for the cool tools such as the item locator). After fixing a few bits and pieces, I looked forward to the public API as in theory this meant all the data I’d been using would be made publicly available in an unchanging format.
I was wrong.
Since the public API launched (and I spent a frantic few hours fixing everything when the entire site stopped working due to the API requiring authentication) I have been inundated with bug reports of data changing. At first I couldn’t understand what was wrong but a growing number of reports on the Gowalla Developers Google Group confirm that the API keeps changing!
One of the key reasons for providing an API is to allow developers to build applications on top of a stable, unchanging platform. Unfortunately, Gowalla does not currently provide this and so whenever they decide “let’s change the name of user_checkins_count to checkins_count” they break everything that is currently using that part of the aspect. This is the main reason why features on Gowalla Tools break and the frustration is that there is nothing I can do to prevent it.
I have a huge amount of respect for Alamofire and the Gowalla developers but this constant changing has meant I have had to put a lot of big plans for Gowalla Tools on hold. I was due to launch a native iPhone application in February (which is currently on hold) and there were lots of plans for new features. However, I don’t have time to constantly patch the existing aspects of the site whenever the Gowalla devs decide to rename parts of their API and for that reason development has slowed down over the past few weeks.
I’m hopeful that Gowalla will take note of this and realise that you don’t build a solid developer network by creating an API that changes on a daily basis.
In the meantime, if you notice anything buggy on Gowalla Tools or data that isn’t working correctly, please report it on the official Gowalla Tools Get Satisfaction board where I’ll deal with it as quickly as I can - please remember that I’m only one person and I do have other projects as well so I can’t fix things instantly all of the time.
I love Gowalla and I hope that these API issues are sorted quickly - I’ve got a lot of great features to share with you once they are…
Update 26th Feb 2010: I received this tweet from Scott Raymond (Alamofire Dev) in response to this article:
"you’re right, we made tons of breaking changes to support 1.5, and I didn’t communicate well. it should be much more solid now."
Hopefully this means that the API problems are coming to an end :)