Skip to main content
  1. Blog/


app design Apple
Phil Chu
Phil Chu
Making software since the 80s

A comment I made on a Medium article about Apple’s prescribed tab behavior.

I don’t see the described Medium behavior as a problem. I believe this is correct design. The tab bar represents the top or root node of the navigation tree, and the 3–5 screens represented by the tabs are the siblings just underneath the root (in the code, those UIViewControllers are children of the UITabViewController), and if they say every screen should display the tab bar, I believe they mean specifically those screens, not every “screen.”

You could argue that it would be better to see the tabs on every screen to see which top level branch of the tree you’re in, and that may be more common on web sites, but you have to make design compromises on the small screen, as along as the rule is consistent, and personally I’ve either gotten used to or like having the tab show only on the top level. When you see the tab bar, you know you’re “Home” and when you don’t, you know you’re further down in the tree, and the left/back arrow tells you that also. That back arrow is built into the standard iOS navigation controller (it can be overridden with another graphic) and by default displays the name of it’s parent, so leaving it blank is a design decision which I might agree is part of an unfortunate form-over-functionality trend, like omitting labels under the tab icons (and Medium’s stats page is very pretty and almost useless).

Also, as long as we’re talking about iPhones, I don’t believe it makes sense and is unnecessarily complciated to make a distinction between modal and child views and in-betweenish. For all practical purposes, every “view” is modal (although by view I believe you mean a whole-view screen and what I used to know as a UI component Apple calls a view, even a label). This may be a different story on iPads which is moving in a windowed direcgtion.

Anyway, all that terminology is confusing and though it may be a hard sell to non-programmers I believe it would be helpful to use class names like UIView and UIViewController, and I think Apple does use some of that terminology in its design guideline doc.

Where I believe Medium is committing a design sin is in the Write tab at the center of the tab bar. Every other tab behaves as you would expect, switching among the screens associated with that tab and still displaying the tab bar. But select the Write tab and that screen takes over and that I would agree is problem behavior along what you describe where it feels like something modal took over, and the tab button did not behave like a tab button. Instagram does that too, using the center tab button to bring up the camera, and that bugs me, too.

For comparison, I just took a look at Medium on my Android phone, and it’s using a hamburger menu instead of a tab. I much prefer the tabs.

I should add, one thing I like about tabs is that there’s almost a convention in their usage for large category of apps (I actually wrote about it on Medium a while ago). I was working on a social media app for a while, and I realized that facebook/pinterest/instagram (except for that camera tab), twitter, arstation, and on and on not only have similar tabs but have them in the same order, so even if you’re supposed to somehow know what all those unlabelled tab icons mean, you know by know that the leftmost tab is the feed, the rightmost will be your account/profile, center is going to me some primary activity (camera, write, or in Facebook’s case, messaging) and activity/notifications in between on the left or right.

Edit: I just looked at the App Store app on my iPad and I can see that matches the desired behavior you describe. Also, the navigation is clearer because they have the top level screen names labeled under the tab icons and displaying in the back buttons. I’m not sure overall I like it better because I think some of the bottom child level behavior is funky, like a modal horizontally scrolling row of images that has to be dismissed with a Done button, but I agree Medium is not consistent overall with that. I guess I’m biased because I tend to go more with the Medium style (except for that Write button) in my apps. But then again, I also throw in a side/hamburger menu, too.