Choosing a new product to work on is a tricky exercise. Unlike following a brief from a client, there's even less certainty that a product will appeal to the market and solve a problem that consumers are facing. From that tenuous foot hold there's also a very tangible concern that the people will want to actually pay for such a solution. We had to address these things and more when designing and developing our latest mobile app, What Bin Day. What follows is an abridged tale of our experience in developing a new idea for multiple platforms and launching a product.
The idea for the app
The source of inspiration for the app was quite personal and simple. As home owners in Brisbane, we found ourselves confused on numerous occasions as to what council bin would need to be placed on the street. Looking at bins already put out by neighbours seemed to be a poor and inconsistent reference, so as developers it was no great mental leap for us to conjure the idea of a mobile app to serve this purpose. The proposal sat in our registry of ideas for over a month as we consulted with fellow residents on the merit of such a program. Before long it seemed as though there was sufficient demand and so we began the process of designing and building.
Pretty early on we knew what we wanted as a set of core features to define the app.
- It would have to be on mobile, as we were often outside and away from a computer when trying to figure out what bins to put out
- If it was on mobile then we wanted to support both Android and iOS for our own personal use
- The app had to be fun and simple - Add a location and provide a bin schedule
- While support for Brisbane was our initial focus we also wanted to be able to support other councils and cities across Australia
- The app would have to provide basic functionality for free with paid additional features
The last point is one worth elaborating on. We debated the merits of a paid app versus a free one with in-app purchases at length. Our decision to offer it for free (even if that may eventually jeapordise our actual sales in the end) was two fold. Firstly with only limited initial support we were uncomfortable with the idea of a user paying for an app without knowing if it would work for their home. This seemed like a poor user experience and an obvious source of refund requests. Secondly we like the idea that home owners would be able to make use of a mobile service that we ourselves wanted, and didn't seem to be already available to most of Australia.
Design and vision in hand we started to craft the heart of the app by building the supporting web service.
Web Service - Scala on Heroku
The service we built for What Bin Day was developed in Scala, chosen for the language's simplicity, power and compatibility with the JVM and existing Java libraries. The key role of this layer was to provide a mapping between client requests containing location information (either by address or geocoding) and supply the corresponding bin collection schedule for that address. Seeing as we're from Brisbane that made the choice for a first city to support quite easy and it was fortuitous that the council recently socialised the bin collection information through the Hack Brisbane initiative earlier in the year.
For convenience it was difficult to beat the ease of deployment to Heroku. Utilising a free single dyno was more than sufficient for development and our launch as bin collection data is heavily cached by the application. Given that we were already using Git for source control with Bitbucket this made the process of managing deployments and rollbacks to our stage and production nodes refreshingly simple.
Admin Portal - BootStrap and Play Framework
While the data for Brisbane council was simple to integrate into our service, we knew that expanding to other cities and states would be problematic without a convenient and consistent mechanism to incorporate new areas. With this in mind we built a basic but powerful admin interface that would allow us to add matching rules by address components or through geofences. This has allowed us to quickly and easily enter information provided by councils in whatever format they publicise.
Development of this admin interface was streamlined by our choice to develop the application on the Play Framework initially for the REST service. Adding pages with the Scala Templates provided would fully utilise the existing models we had and was given a functional style by Twitter Bootstrap.
iOS and Android application
With our service shaping up it was time to focus on the product as far as our future users were concerned. Chris being the resident Android aficionado would play counterpoint to my Apple affection in this exercise, and we split our attentions between the two platforms. The design process was a shared activity however and had a strong vision for how we wanted both Apps to work.
We knew that we wanted to support multiple locations as well as have the flexibility to see future bin collections and potentially other council events. For example the app has Kerbside cleanup dates at launch for Brisbane and we plan on including other collection events for different councils as time goes on. These two dimensions translated nicely to axes on the interface and lead to horizontal swiping to switch between places and vertical scrolling to see future events in time.
While we had to deviate on some interactions and idioms to stay true to the platform, both Apps have stayed true to the original design. Our primary focus was to make the process of adding an address and checking bins as fast and non-intrusive as possible, which we hope we have achieved.
With the product complete it was time to launch. This is where things were a little more problematic for our Apple application which is still awaiting review for the App Store as I write this. In the mean time the Android App has been available for over a week and has pleasantly received a modest level of interest purely from word of mouth. Once both Apps are available we can proceed to promote the App more and try to grow the user base.
We haven't been completely dormant on the promotion front however. The a marketing website was something we quickly whipped up which includes a promo video to showcase the applicaiton. We hope that people looking for bin collection details will find it useful and try out the app.
As far as the service is concerned, the next step for us is to focus on expanding support for other councils and cities in Australia. Once we have a presence in the major cities we'll add councils based on demand we see through requests in the application.
It's obviously far too early to say if this product has been a success yet, but it certainly has been a rewarding experience. We'll post a follow up to this in the coming months to review how things have or haven't gone as we planned. Now if you'll excuse me, I have a bin to put out on the street!
Update: 19th December 2012
The morning after posting this it seems that our App has been approved and should be ready for sale on the iOS App Store. It's not showing up in our searches quite yet but hopefully that's just a matter of time for this to be distributed. Huzzah!