Design
The purpose of our application is to allow users to browse lunch invites, respond to lunch invites and create new lunches. For simplicity, we chose to limit the main navigation to two main tabs: "Lunch Invites" and "Lunches I'm Attending". Lunch Invites have 4 states: declined, accepted, confirmed(if it has been requested by the creator), and unknown(for those invites to which you have not responded. Accepted invites and subsequently confirmed invites appear on the "Lunches I'm Attending" page. Invites to which the user has not respond or has declined appear on the "Lunch Invites" page. Both these pages are set up as browseable lists. The user may click on a particular lunch to view its details. For this general design, the biggest gain from user testing was in the wording in our application. We went through multiple iterations of labels for the tabs and labels, eg. "joined", "my lunches", "unjoined", etc. before deciding on the set that made the most sense to the most users.
Implementation
Implementation was quite straightforward using the Android SDK. However, it was a challenge to set up the layout of the pages using the small set of provided Android layouts that we could use. It was also hard to ensure that the screen layout was compatible with multiple screen sizes. We ultimately chose to make the layout compatible with about 80% of Android screens currently in use, which excludes extra large screens and tablets.
...