This past weekend I published my first application to the Android Marketplace: Detroit Restaurant Week. DRW is a android application front end for the Restaurant Week event taking place this coming April. Essentially it makes it easier to view the restaurants participating, view their menus, make reservations, check reviews on Yelp, and more. Erin and I really like visiting fine dining establishments, as I’ve talked about before, so the restaurant week is something we really enjoy. I’ve wanted to get into Android development for a while and thought this would be a great way to make a fairly simple application that might actually be useful. I got the idea when I was watching a video from 2010’s Google IO event. The session was a basic introduction to Android by Reto Meier. In the presentation, Reto talks about sharing and consuming. Specifically, he talks about the Where and OpenTable applications and how Where launches OpenTable using an intent. For those of you that aren’t in the know, intents is a methodology in the Android OS where one application can say “if someone wants to do X, I can handle X for them”. So when you install OpenTable it tells the OS, “if someone wants to make a reservation, I can make that reservation”. The Where app then checks to see if something can handle the reservation intent (i.e. if OpenTable is installed) and if so, it tells the OS that it wants to make a reservation. So for my app, I wanted to do the same thing. Thankfully, they posted some of the implementation details for calling the OpenTable intent. Unfortunately, they don’t explain everything and there doesn’t seem to be any documentation on the internet to cover all aspects of calling the intent. The basics of it were easy to accomplish. However, I still haven’t figured out how to specify the date I want the reservation to be preset to when OpenTable opens. I ran into a similar problem when opening a calendar entry when someone clicks “Add to Calendar”. I wanted to put the restaurant’s address into the Where field for the calendar entry but haven’t found out how to do that yet.
After showing this app off to a few people, everyone seemed to think it was pretty cool. I already have a few things I’m planning to implement in the next few weeks (i.e. changing the restaurant Address and “Add to Calendar” to look like the blue, underlined, clickable links like the Phone and View Web Page). One thing that did come out of publishing this was several people saying “Could you make this for Chicago’s restaurant week” or “Could you make this for Indianapolis?” Thankfully, I made this application so it would be very easy for me to redo it for a different city. However, if I did that, it would mean a different app for each city. I’m thinking instead that I might make a single “Restaurant Week” app that allows you to pick out what event you want to see the information on. So instead of one app per city, you’d go in to the single app and choose which city’s Restaurant Week info you want to see.
When I get some time I’m going to talk about some of the challenges I ran into while making this app and learning to program for Android. I’m also going to talk about some of the differences between developing for Android (which I’m doing at home) and developing for the iPhone (which I’m doing at work). For now, if you have an Android, go grab my app and let me know what you think.