Daypack - IA part 1
Organizing an app for fast access to all it's features and information is so important, yet often overlooked or skipped. With Daypack, I want to make sure that it's easy to get from any one place to any other place - not just by limiting the number of taps, but also by avoiding any confusion.
Luckily, Basecamp is a well organized application.
This can even be seen in how ActiveRecord works with Rails (if you are familiar with it). Rails was definitely made to make Basecamp.
Relations
In Basecamp, there are a number of key objects to keep track of, all of which relate to each other in a number of ways. In database lingo, one might say that an Account has many Projects which in turn has many Messages. Thinking this way, one could arrive at a tree structure to show what belongs to what:
- Accounts
- People (1)
- Projects
- Messages
- To-Dos
- Milestones
- Writeboards
- Files
- Time Tracking
- People (2)
This is all very straight forward except for the fact that People show up twice. Since a Person can be related to more than one project, there is a list of all people across all projects and then just people in a certain project.
There is also the possibility of an overview or activity feed for the entire account as well as each project, which could be useful to see recent changes and posts and the like. Also, some users will actually be logging into multiple accounts, so it should be easy to switch from one account to another.
iPhone
In the iOS SDK there are Navigation Controllers. These are simply just a way to represent a list of things that might link to another list of things - which sounds perfect for this type of problem.
This is actually the exact problem the iPhone solves beautifully: drilling down into content through a hierarchy.
Using our tree hierarchy from before, one could navigate to a specific message by:
- Choose Account, see Projects ->
- Choose Project ->
- Choose Messages List ->
- Choose Message ->
Not bad and pretty straight forward. If, later, they wanted to see a message in a different project, it might go:
- Back to Messages List <-
- Back to Project <-
- Back to Account, see Projects <-
- Choose another Project ->
- Choose Message List ->
- Choose Message ->
In a followup post, I will show some mockups and discuss data modeling in iOS.