Wednesday, May 5, 2010

Android Application Part 2

This post is part 2 of a series.  Click here to go to part 1.

In my first post, I outlined the 3 major components of the system I am thinking about - Web site, Web service, and Android app.  At first I thought I would dive right into programming the Android application, but then I realized that I was about to make the same mistake my business users make.  I was about to develop something without first thinking through the use-cases I wanted to accommodate.   So, this post is going to deal with the use-cases I will be developing.

First let's talk about the Web site.  Here are the use cases I want available for my first revision:

  • Allow a user to set up a new account
  • Allow a user to set up a new 'Family' (or group)
  • Allow a user to send invitations to other users to sign up/join the group
  • Allow a user to add a list to the Family
  • Allow a user to add an item to a list
  • Allow a user to mark an item as purchased
  • Allow a user to mark an item as needed again
Of course, I can think of about a dozen more use cases, but I am going to limit this first build to just those 7. Now lets talk about the Android application.  Here is what I want it to do:

  • Periodically poll the server for lists
  • Synchronize the local list with the server and save it (rules for conflicts?)
  • Allow a user to view lists
  • Allow a user to mark an item as purchased
  • Allow a user to mark an item as needed again
  • Allow a user to force a sync (He may want to do this right before entering a store)
Given the functionality on the Android application, I believe the needs of the Web service become apparent
  • Provide a service to allow a user to sync the lists from his groups
Now that I look at that, I believe this is going to be a bit more work than I thought, but not too bad.  I can see that there are many more use cases for the Web application than I thought, and many fewer for the Web service.  

Next: Let's do some UML and Sequence diagrams.