New iOS Design Pattern: Slide-out Navigation


Facebook fan page iphone appBack when Facebook first hit the iPhone in August 2007, it introduced the “dashboard” layout pattern to iOS. Many applauded the dashboard as a fresh take against the standard tab bar and a number of apps began following this pattern. Over time though, it proved to be a frustrating way of navigating because it requires the user to leave their current state to get to another part of the application. Additionally, it required paging the navigation as it grew, meaning additional gestures were needed before an item could be selected. The dashboard is largely extinct for iOS now but unfortunately, this pattern has become entrenched in Android.

With the launch of Facebook for iPad, Facebook has again introduced a new mobile pattern for navigation and this time they’ve created something simpler and more elegant: slide-out navigation. More significantly, this pattern has quickly gained traction and is now being used by more than several notable iOS apps.

Slide-out Navigation

On its blog, Facebook described its new navigation pattern—available on Facebook for iPad, as well as Facebook for iPhone 4.x—as “left-hand navigation.” I’ve chosen “slide-out” navigation because it is more descriptive and universal (e.g., Path includes it on the left and right side). I’m defining slide-out navigation as follows:

Slide-out navigation consists of a panel that “slides out” from underneath the left or the right of the main content area, revealing a vertically independent scroll view that serves as the primary navigation for the application.



SlideoutUp to this point, the slide-out navigations available in the App Store have typically consisted of a panel (menu) that groups related views together, breaking them apart through headers. The default views provided by the application have been placed at the top of the panel. Facebook’s headers include Favorites, Apps, Pages, Lists, and a non-labeled help area.

Fb close 2Facebook implemented its slide-out nav via a list button, with the left panel always snapping out to a single, fully extended position. Once the left panel is visible, it can be closed by either tapping the list button, by touching the mostly hidden main content area, or by swiping that area left. For that final closing action, any swipe left—even if it’s very minor (i.e., a flick)—will close the panel. These nuances are important, as the other implementations are observed.

Other Implementations

Gmail

Gmail for iOS was the next app to implement a slide-out navigation. Considering it launched several weeks after Facebook for iPad came out, it’s not clear how much Facebook actually influenced it. Its main functionality is the same but it does have several distinctions. The first is that instead of a list button, it uses a back button labeled with “Menu.” In my opinion, that is the biggest eyesore with Gmail for iOS. Secondly, it’s possible to swipe or drag right on the main content area to open the left panel. And finally, the left panel can expand or contract to a minimum and maximum size respectively.

Gios

Path

Path 2.0 is one of the most innovative iPhone apps to hit the App Store in some time. With all it’s flourishes, transition animations, and polish, it clearly received a lot of love and attention on even the smallest details. It’s slide-out navigation closely resembles Facebook’s, with a list button being used. But unlike Facebook, they include a swipe right gesture to see the left panel, similar to Gmail for iOS. They don’t, however, allow left panel resizing.

One minor annoyance regarding their slide-out nav is that the main content area and the list button actually don’t provide the minimum tappable target sizes suggested by Apple when in its expanded position. As far as I can tell, they’re roughly 40 pixels instead of the suggested 44 pixels. Beyond being slightly less gesture-friendly, the byproduct is that the list button is also partially cutoff.

Fvp 1

My final comment regarding Path is that it’s arguable whether it really requires a slide-out navigation at all. Generally, it’s more useful when there are many content views, especially ones that can grow dynamically, as is in the case with Facebook and Gmail (e.g., Gmail labels).

Authentic Jobs

The Authentic Jobs app was featured by Apple back in early December 2011 and its version of a slide-out navigation is probably one reason why. Technically, it doesn’t fit the definition above, but it’s effectively providing the same user experience.

Authentic Jobs uses an item button in place of the list but more significantly, does not slide the view when that item button is tapped. Instead, it provides a popover-like view with a vertically scrollable list.

Aj

Astrid is another iPhone app that opts for using an item over the list button but it then follows Facebook’s slide-out interaction pattern exactly.

Concluding Notes

These patterns help formulate how to properly implement a slide-out navigation. Should it be a navigation scheme implemented in your iOS app, there is some leeway and flexibility available, as shown with these examples. But, there are at least four best practices that should be followed:

  1. Slide-out navigation is best served in content-related apps, especially when there are many views that can grow dynamically.

  2. Use a list or item button to trigger the panel or popover (i.e., not a back button like in Gmail for iOS).

  3. When the navigation panel is in the expanded state, ensure the minimum width of the mostly hidden main content area consists of at least a 44 pixel wide tap target size (i.e., not like Path).

  4. Keep the opening and closing gestures for the slide-out navigation consistent with these observed patterns; snapping the panel closed versus making the panel resizable is winning the day, at least for now.