Effective navigation is an essential part of any great Android app. Get your navigation right, and users will have no problems finding their way around your app’s screens, completing tasks, and generally having an all-round positive user experience. If your app’s navigation is clunky or confusing, then doing anything in your app is going to feel like an uphill struggle, and ultimately the only place your users are going to navigate is out of your app.
In this article, I’ll show you how to plan, structure and implement navigation that feels so intuitive and effortless, even new users will have no problems finding their way around your app.
Planning your app’s navigation
In order to plan the perfect navigation, you need to consider the following:
The structure of your app’s screen hierarchy.What’s the first screen users see when they launch your app? What’s the second? How many screens will they have to navigate, in order to complete each task?
The navigational relationship between each screen.What screens can the user reach directly from Screen B? Can they jump straight from Screen A, to Screen E?
Screen hierarchy: Prioritizing your app’s most important destinations
Every feature should add some value to your app (if it doesn’t, then what’s it even doing in your app?) but not all features are created equally.
If you think about your favorite Android app, there will probably be some features you use time and time again, and others you rarely use. There may even be some features you’ve never really explored in much detail. Chances are your users will have a similar experience with your Android app.
Your app may have some high priority features that are the main reason why someone would choose to download your app, and lower priority features that are nice to have, but aren’t your app’s main draw.
To provide the best possible user experience, the screens that deliver your app’s highest priority features should be the easiest to access. You need to identify these screens and then place them high in your app’s screen hierarchy, for example by making a particularly important screen the first thing a user sees when they launch your app, or creating a main navigation menu that includes direct links to all of your app’s most important destinations. For example, if I was designing a camera app, the most important task would be taking a photo, so I’d place all of my app’s photo-taking functionality on the very first screen.
If you’re unsure about how important a task is, then consider your target audience – what are they hoping to achieve, when they download your app? If I was designing a camera app for professional photographers, then I might prioritize advanced editing features over fun, social features such as adding filters or posting photos to Facebook. In contrast, if I was targeting more casual photographers then I might place all the screens relating to fun, social features higher in my app’s screen hierarchy.
See also: 10 awesome libraries for your app’s design and UX Grouping related screens together
Most apps include at least one series of tasks that users will typically complete one after the other in quick succession. In our camera app example, this might be snapping a photo, editing that photo and then posting the finished product to their favorite social network.
When there’s a natural flow between tasks, you should make it easy for users to progress from one task to another, by creating some form of navigational relationship between these screens. For example, you might make these screens accessible from the same navigation drawer, embed all their content in the same parent screen via a series of tabs, or place these screens one after the other in your app’s screen hierarchy.
Designing your app’s high-level flow
Once you’ve identified your app’s highest priority screens and the screens the user should be able to move between with ease, the next step is bringing all this information together in the form of a flowchart. A flowchart is perfect for getting an overview of how your app’s navigation is shaping up – plus it’ll also serve as a useful blueprint further down the line, when you start developing your app.
This flowchart should include every screen in your app, and the navigational relationships between these screens. You should also identify the first screen users will see, when they launch your app.