A Tangled Web

Remember Choose Your Own Adventure books? These popular kids' books of the 1980s had pre-teens weaving their way through ghost stories, westerns, and galactic expeditions, making a decision at the end of every page to choose what happened next. To search for clues in the pantry, turn to page 31. To question the gardener, turn to page 48. The outcome of every adventure depended on how you moved through the book's pages, with scores of possible endings. I loved these books as a kid, but with every one of them, I eventually developed the nagging feeling that I'd missed a storyline, that some combination of pages had eluded me. The real fun became finding the missing endings—it was less about the story than about figuring out how the game worked, trying to find every path and conclusion. The book was a riddle.

image with no caption

That's not how you want people to experience your app. You don't want it to have hidden corners and undiscovered territory. It should be clear and evident how to navigate to every desired conclusion—more adventure, less mystery. The way you organize your app's screens makes all the difference.

Like the books, your app has a set of pages with fixed rules for how to navigate among them. What made the books tough for nine-year olds to explore with confidence is that the narratives got tangled. Stories didn't simply branch out, with each decision creating its own unique yarn. The plots crisscrossed and tangled with each other. You could make several different decisions but still land on the same ending ("buried alive!"). Instead of a tidy tree structure, the books were shaped more like a web, creating ambiguity and uncertainty. When you actually map the various paths of one of these books, the web reveals itself.

Don't organize your app like a web. People should be able to flip through its screens in a straight line (flat pages), a simple set of categories (tab bar), or a neatly categorized collection (tree structure). Paths through your app should be predictable and, ideally, unique: aim to build your app according to a "one room, one door" principle so that every screen has just one approach. While you might reasonably think that adding more doors makes it easier to get around, it instead adds more complexity, challenging your audience to create twisting mental maps of the app's layout. You want to build an app that people can explore, but you don't want them getting lost along the way. It's easier to remember just one path to a screen. (There are apps, of course, where the whole point is to present a web to untangle. The mission of many games, for example, is to solve puzzles, and an app that maps molecules might let you wander through a maze of atoms. In those cases, the goal is to present a riddle or a web of information—purposely creating the sense of getting lost and finding your way. If that's not what you're up to, though, you should use more strict organization. When it comes to figuring out your app's features, don't make people guess.)

A flow chart of all the possible paths in The Mystery of Chimney Rock, by Edward Packward. Chart: Sean Michael Ragan.

Figure 4-18. A flow chart of all the possible paths in The Mystery of Chimney Rock, by Edward Packward. Chart: Sean Michael Ragan.