Xcode's navigation needs attention

Originator:craig.hockenberry
Number:rdar://25087070 Date Originated:10-Mar-2016 09:52 AM
Status:Open Resolved:
Product:Developer Tools Product Version:7.2.1
Classification:UI/Usability Reproducible:Always
 
Many apps on the Mac have a hierarchical sidebar on the left with a detailed view on the right. Two popular examples are mailboxes in Mail and bookmarks in Safari. This idiom is also popular on the web: Slack is an example.

At first glance, Xcode’s sidebar appears to follow this interaction mechanism, but there’s an interesting twist. Each tab has an independent hierarchy & detail view. This provides more flexibility, but ultimately makes navigation more difficult.

The issue is that navigation state is buried inside a tab and it can’t be seen. This leads to situations where the same information is displayed in different ways and the developer needs to think about past actions. Here are some ways this problem manifests itself in my daily work:

• When working on two separate parts of a project, you can easily lose your place. For example, I’m working on the client & server code at the same time and want to have tabs for both sides of the communication (Server.m and Client.m). As soon as I Command-click on a Server method in Client.m, I have two tabs with Server.m. I rarely notice this since my focus is on the code I’m editing, but eventually I’m left with a choice for where to resume my work. It feels like I never make the right decision.

• Search results get lost: when you use Shift-Command-F the results show up in the current tab. Now do the same thing in another tab. And another. Then try to find the results from the first search. Which tab are they in?

• I like to have the Utilities view open when working with user interface elements (such as Asset Catalogs and XIB files.) I *never* want to see the Utilities view when editing code. Yet as soon as I navigate away from the interface to the code that drives it, there’s the panel I don’t want. So of course I turn it off. Then I go back to the UI and turn it on again. Lather, rinse, repeat.

I could go on with more examples, and I’m sure you’ve done the same thing internally. But the best reason for changing this interaction is because it isn’t forward thinking.

Eventually, Xcode will run on iOS where split views always use one hierarchy view to select detail views. Importantly, this navigation mechanism also adapts automatically by rearranging views depending on layout constraints. Try to envision Xcode’s current navigation mechanism on iOS and you’ll quickly find that it isn’t going to age well. Something like Safari’s bookmark navigation would work well: a single hierarchy is shared amongst all tabs. 

I think we’ll all be happier in the long-term if Xcode’s navigation gets some attention. Thanks for listening.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!