Choosing the Navigation Style

Jürgen: We originally liked the idea of using a tab bar for navigation to allow fast browsing of all your tasks from different perspectives—projects, tags, due date, search, and so on. But we soon found that we would need more than five tabs, which meant some would have been hidden inside the More tab. Tab-bar navigation didn't scale well enough for the features we wanted to include. We also realized that we needed a toolbar in order to provide tools to create, move, and edit list items. We decided to go without the tab bar and use tree navigation with a toolbar. The built-in navigation controls really take you a long way. The tree navigation is a powerful metaphor, and it got us really far right out of the gate.

Early sketches for Things contemplated tab-bar navigation.

Figure 4-21. Early sketches for Things contemplated tab-bar navigation.

An early sketch (left) for the main screen of Things used a grouped list, but the final version (right) evolved to better group its to-do lists into logical clusters.
An early sketch (left) for the main screen of Things used a grouped list, but the final version (right) evolved to better group its to-do lists into logical clusters.

Figure 4-22. An early sketch (left) for the main screen of Things used a grouped list, but the final version (right) evolved to better group its to-do lists into logical clusters.

Using table views for navigation also let us use groups to communicate which lists are alike and order them to reflect workflow. When you start off with Things, the main screen shows four groups: Inbox, Today/Next/Scheduled/Someday, Projects, and Logbook. Inbox is where you collect ideas that have not yet been assigned a place in your system. That means you haven't yet decided when you want to start the to-do. When you make that decision, the task lands in a list somewhere in the second group: today, next (as soon as possible), on a certain date, or someday in the hazy future. Projects lets you organize your tasks into separate goal-focused lists and Logbook is the archive where completed tasks wind up. So the standard table view lets us group and order lists based on when you want to start a task, and then organize those lists in a way that suggests a typical workflow.