The AppHarbor API Contest got lots of great entries that we will be profiling over the coming weeks. Today we're talking to Steve Hanna, the man behind Harborfront. Harborfront is an Android app that you can use to monitor and manage your AppHarbor applications on the go.
Why did you build Harborfront?
I built Harborfront to manage and monitor my AppHarbor apps from my android phone. Harborfront implements most of the API but was originally built to solve the following problems:
- Primarily, I wanted to be able to quickly roll back a previous build in case of an emergency–like when I foolishly deployed a buggy version in a rush only to find out from an angry customer.
- The other interesting use case was to be able to receive push notifications on my phone after a completed build. This is particularly useful when working in teams where deployments happen frequently.
What technologies are you using?
Harborfront is a native mobile application built on the Android SDK using Java. The app uses ActionBarSherlock in order to backport the action bar design pattern to older versions of Android.
In order to get push notifications working, Harborfront uses Google Cloud Messaging which requires a server-side component to send messages and register devices. For this I’m using ASP.NET MVC 3 with RavenDB as the data store. All built on top of AppHarbor, of course.
What advice would you give to other developers using the AppHarbor API?
If you’re working in a .NET environment then definitely leverage AppHarbor.NET. If you’re not (e.g. if you're building for Android) then there’s nothing to be afraid of: AppHarbor’s RESTful API is a pleasure to work with. The OAuth implementation can be tricky but the API documentation is well written so be sure to lean on it when you get stuck.
What's in store for the future?
There are still a few unimplemented API features which are all pretty low hanging fruit. On the server side, I’d like to be able to push more notifications to devices, like error messages. However, because this isn’t available in the API this will require polling AppHarbor.
Any final thoughts?
This was a fun little project and the source code is available on GitHub if you’d like to have a peek under the hood or contribute. You can find me on Twitter (@SteveHanna) for Harborfront’s progress or to report issues and feedback.