27 ms·
When I see "iOS Navigation Patterns" I cringe. There are no patterns and it's one of the worst things (there are many) when comparing to Android. Going back on
by rplnt 3y ago
When I see "iOS Navigation Patterns" I cringe. There are no patterns and it's one of the worst things (there are many) when comparing to Android. Going back on Android is easy, and back can mean multiple things. On iOS that I've been using over a year I just blindly try one of the two back "patterns", then look for buttons in an unreachable places. And even that sometimes doesn't work.
Don't let developers use patterns, fix it on OS level. Developers don't want you to leave parts of their app - try doing back action on Instagram reels for example.
- rezonant 3y agoThe activity stack experience in Android is probably my favorite part of the system design. It produces a deep consistency that makes navigation effortless. I really wish this had been built in to iOS in the same way. The activity stack works across applications, which means a back gesture always brings you back to the screen before it, even when several applications work together on a task.
- wiradikusuma 3y agoDon't iOS apps have that small black back icon on the top left that sometimes appears when you open another app?
- malermeister 3y agosometimes is the problem. It's not consistent.
- emsy 3y agoThat's just not true.
- immanentize 3y agoI had to Google it and I think I've seen this thing in the status bar sometimes on iOS but it's definitely not consistent. I wasn't even aware it was supposed to be a button
- K2L8M11N2 3y agoIt appears every time you get into an app by clicking a notification while you're in another app, and it's 100% consistent in that context.
- bshacklett 3y agoThe fact that you had to explain how it works indicates that a bit more consistency might be beneficial.
- room500 3y agoIt is consistent when the apps are consistent. But it will not appear if the app opens the webpage as its own View (instead of opening Safari). In that case, there is no button and the user has to hunt for how to go back. And the user has no way of knowing whether an app will open Safari or will open the webpage itself. iOS requires users to build muscle memory in learning how to use each app. Android requires users to maintain a back stack in their head to remember what came before. Switching between the two is very jarring.
- rezonant 3y agoTo be fair, captive browsers are also a plague on Android apps. I despise them and especially so if there's no way to turn them off in a particular app.
- cassianoleal 3y agoIf it's a full-screen in-app webview, there's a Done button on the top-left; alternatively, you can swipe back from the first page in the webview and it will close the webview and leave you where you were. If it's a card webview, just swipe it down from the top edge. > Switching between the two is very jarring. I think that's the crux of the problem. Someone who's used to one style and has built muscle memory and some kind of hierarchy and ontology of the interaction with the system will have trouble with a different paradigm. That doesn't necessarily mean there's something wrong with either - they're just different, and some people will prefer one over the other. Switching between GNOME and KDE, or vice-versa, has a similar effect.
- cout 3y agoI don't remember ever seeing (or noticing) anything like that on ios. Do you have a screenshot?
- jrockway 3y agoThis is for things like clicking ads in the New York Times. Safari will open, and then at the top left of the screen there will be a "< NY Times" indicator. It's below the clock and above the aA icon in the URL bar.
- Terretta 3y agoNot just Safari. Most any two apps that support passing things from one app to the next (e.g. via Share Sheet, or a deep link, or etc.), the next app has a back to first app.
- cout 3y agoOK I see it now when I click on a link in the mail app. I've never seen it before because when I open a link with safari in the gmail app it opens a safari view inside gmail with a Done button at the top.
- HumblyTossed 3y agoThat itty bitty teeny weeny thing? Yeah, it's occasionally there.
- tacker2000 3y agoYea, everytime I see that thing I think to myself that that they needed to “hack” this feature together in less than 10 minutes or something like that. It just feels so “out of space” and tacked on.
- isoprophlex 3y agoSwipe up from the bottom middle edge of the screen to bring that up on ios? Or do you mean something else?
- rezonant 3y agoNot that, it's about how you navigate through screens in the same app and in multiple apps. Since the back gesture and back stack is universal and all apps are presenting activities added to the back stack, you can seamlessly move between apps using "intents" which are abstracted messages that multiple apps understand, and even tunnel through an arbitrary number of apps, and back up through each of their screens as if they were all in the same application. An example of an intent is "can anyone open this PDF file" or "the user wants to pick a file, can any app do that and let me know what they picked?"-- those file pickers could also be from your network browser app, or Dropbox, etc. And since activities are serializable (well, technically the intents that led to those activities being started), Android can do this without requiring the apps deep in the app stack to be running. It can freeze those apps to reserve resources and restart them at the specific activity when the user returns, if necessary. iOS does have limited inter-app linking (it's the tiny little back arrow and the previous app name that you'll sometimes see at the very top of the screen), but since back gestures aren't universal, the only reliable way to activate that feature is to tap it, since the app may not even understand back gestures, let alone do the extra work of relinquishing control when their own local back stack is empty.
- whalesalad 3y agoNot true at all. Read Apple’s HIG it’s all spelled out there. Some apps deviate from this but that isn’t the fault of iOS. Instagram on android is just as bad.
- runnerup 3y ago> Some apps deviate from this but that isn’t the fault of iOS. Then I suppose it's the fault of the App Store reviewers. The point is that Android handles the activity stack on the OS level and has much stronger control over what a back button does.
- the_gipsy 3y agoGo to Clock, Sleep|Wake up (yes that's really the label!), click Change, scroll down a bit, click "Edit sleep schedule in health". It opens another app in hyperlink style, which the article recommends against. A lot of apps deviate constantly from the "blessed" patterns. The result is that as a user new to an app (or update), you have to click and gesture around to see what happens, and probably miss a lot of UI features because of that.
- the_other 3y ago> Go to Clock, Sleep|Wake up (yes that's really the label!), click Change, scroll down a bit, click "Edit sleep schedule in health". It opens another app in hyperlink style, which the article recommends against. Most of the alternatives would be worse for either usability or maintenance, or both: - don't track sleep in the Health app - track sleep, don't provide alarms/notifications for the sleep/wake along with the schedule in the health app - put almost all the UI for Health's sleep/wake in the Clock app instead - provide almost identical UI in both the clock and health apps I'm sure there are better implementations of the current UI tho'. E.G still link to the 2nd app, but have it _after_ the normal alarm clock in the vertical/reading order, and use better wording to explain the function and behaviour. I wonder if they're trying to avoid having Clock ask for permission to read the HealthKit data, which presumably they would have to do in most other possible implementations.
- 3y ago
- tacker2000 3y agoAlso, why is the back button on iOS all over the place?! Sometimes it’s on the top left, sometime bottom left, sometimes bottom right, and im sure some apps even place it somewhere else. On Android there is a dedicated OS back button that is always in reach, when using the phone with one hand. This is the far superior way of doing this.
- mort96 3y agoThe convention is that it's in the top left and that the "swipe rightward from the left edge of the screen" gesture also goes back. Most apps work like this, and it's not actually a problem in my experience. I can't actually remember seeing an app which puts the back button in the bottom right... With apps which follow the convention, I don't miss a hardware back button (or, as is more common in Android these days, a software back button in an OS-provided bar at the bottom of the screen). Swiping from the left edge of the screen feels pretty good. But Android's approach is probably better at providing a decent UX with terrible apps.
- RomanAlexander 3y agoGesture navigation is the standard in android these days. The OS-provided bar isn't even default on budget oppo or Xiaomi devices.
- realusername 3y agoIt's indeed very rare to have this large navigation bar on Android nowadays, I suspect the latest Android doesn't even support it.
- hpaavola 3y agoAndroid (14) still supports it, it's in Settings > System > Navigation mode (on Pixel devices, different manufacturers might put it in other menus). I still use it and will keep using it.
- yakubin 3y agoAction which I find much more useful than Back is Up. I’m always annoyed when someone hands me their Android to do something and I need to go through 10 screens hitting Back instead of Up. I almost never want Back. I want Up. This is also reflected in my use of Finder on Mac e.g. where I often hit Cmd+Up, but never Cmd+Left.
- dep_b 3y agoIt is fixed on the OS level, but some people claim hybrid apps are indistinguishable between native apps. Except every time: - Swipe LTR (on a LTR locale) does not go back - The back button's size is exactly as big as it looks, instead of extending quite a bit below it's visible box in the navigation bar
- rezonant 3y ago> - Swipe LTR (on a LTR locale) does not go back Do you mean on iOS? Because on Android, both swipe from edge rightward and swipe from edge leftward both mean back when using the default gesture navigation settings, regardless of the RTL/LTR direction of the content or device locale. This is a side effect of the fact that Android does not have a notion of forward. I'm not convinced they should have done this, but eh.
- dep_b 3y agoI wasn't sure, I guess books are read from the same side in every culture? iOS UINavigationController and the SwiftUI equivalent support it by default and it takes effort (or a crappy hybrid implementation) to stop it from working.
- gbil 3y agoThe worst case of all is when a submenu on the control panel is open, then it doesn't matter if I swipe from the bottom or try the back gesture, I need to click somewhere in the screen to leave this menu.... Inconsistency FTW
- Shrezzing 3y agoEscaping an already-playing 30 second YouTube advert on their iOS app may be the most challenging UI experience in the modern era. I've landed on forcefully closing the app, and re-opening it as the only escape.
- hnlmorg 3y agoI generally prefer iOS to Android but man you’re so right. The number of times I’ve had to forcefully close an app (not just YouTube) because I cannot figure out how to go backwards in the UI stack.
- GuB-42 3y agoAndroid was, I think, even better in the early days. It had 4 hardware buttons: back, menu, home and search. They lost menu and search along the way. Sure, they weren't always needed, but they were common enough functions that could warrant dedicated buttons. Now, everything is different and you never know how to popup a menu (hamburger menu? where? or is it a swipe?), even though it is always the same functionally.
- rezonant 3y agoWell, the menu and search were always context-dependent from what I remember (ie, on devices that used on-screen buttons as opposed to hardware buttons, they were only present when the app requested them to). This created a situation where the buttons were sort of weirdly sized and bolted onto the side of the standard three button layout. This wasn't ideal- and I don't recall an app that made particularly good use of them. > Now, everything is different and you never know how to popup a menu (hamburger menu? where? or is it a swipe?), even though it is always the same functionally. Well if it's a hamburger menu than you can see it, and drag out sidebars can be checked with a drag in the middle of the screen (but not from the left edge lest you activate the back gesture), so it's pretty quick to figure out. However I will nominate the Soundcloud app as the single worst app design I have seen when it comes to menuing. It is absolutely atrocious, and actually uses none of the above options. I'll leave it as an exercise to go try it out if anyone wants to laugh at bad app design (sorry if anyone who worked on it is reading this).
- pigcat 3y agoCan you expand on the design sins of the Soundcloud app? I use it a lot and have never noticed anything particularly funky. I'm on iOS.
- rezonant 3y agoI hope it's better on iOS. On Android, you have 5 tabs at the bottom: Home, Feed, Search, Library and Upgrade. Having Upgrade in the same place that nearly all other apps have a Profile/Settings tab constantly trips me up. I'm actually a Next Pro subscriber too, so it feels a bit shitty to devote so much of the experience to extracting more money from me. And... well let's look at some user tasks: Task 1: Go to the app's settings Settings is only found on one of these tabs! Which one would you guess? That's right! It's Library! Task 2: View your SoundCloud notifications Notifications is also only found on one of these tabs. Which one? That's right! It's Home. Task 3: Start casting Casting, perplexingly, is offered on the Home, Search, and Library tabs, but in different locations. -- This is exacerbated because each tab remembers your drill down independently, because after you leave a tab on a particular drill down, and you return attempting to access one of the top options, they won't be there any more. That upper right corner is the second most likely place to have a profile/settings menu, and they technically do have it there, but it's split up bizarrely and completely inconsistent throughout the app :*-( I constantly have to retrain my brain to deal with these things, and it's really only a challenge in this app. There are some other smaller things that annoy me, like how the "Showing last 7 days" time range selector in Insights (for artists) opens a full screen picker, but if you use the Back button in the upper left or you use the back gesture, it skips back to the previous page instead of closing the full page selector. I'm sure there are more but honestly just these are enough to irritate me whenever I use it. All this said, there are a lot of cool parts of the app-- the scrubbable waveform in the playback drawer is really slick, and though tapping on the large background to pause isn't the most discoverable, it's also very cool that they managed to have zero buttons on this view and for it still to be quite capable. It's also really responsive and not very error prone to open and close the drawer by gesture, even though swipe left/right are track skip gestures as well. And Soundcloud's "Playback History" is something I wish literally any other audio/video app would add. But I just lost how to access it while I was navigating around. It's in there somewhere.
- abirch 3y agoA navigation that I'd love to see on Android is swiping right to go forward
- extraduder_ire 3y agoThat would be quite hard to do without a special case, since the default action of the back button is to pop the current activity off the stack and return you to the prior one. (I know too much about this from trying to add a button in an existing app to do the same thing) It's a shame it's not available though. It'd be useful for navigating tab history in firefox. (currently, hold down back button and select from menu)
- ragnese 3y ago> It'd be useful for navigating tab history in firefox. (currently, hold down back button and select from menu) Can you achieve this in Android Firefox when you don't have the UI back button enabled (because gestures are the default)?
- extraduder_ire 3y agoDon't think so. The in-app back button should do the same thing though, but that takes an extra input. Try starting the gesture and holding it down before completing it.
- jeroenhd 3y agoAndroid's back button gesture isn't handled by the app, and Android currently doesn't have a global "forward" key. I don't think we'll see a forward swipe soon. I'm also not so sure about the ergonomics of thst approach, I'm sure left-handed people would get annoyed that either their back gesture is now harder to pull off, or their forward gesture is pointing backwards (and doesn't work on right-handed phones).
- runeks 3y ago> Don't let developers use patterns, fix it on OS level. I think Apple hasn't done this because it's not practically possible. For example, if it's possible to change the content of a view (which it obviously should be), then it's possible to remove all content and and replace it with all new content. If triggered by some user action, this effectively is "going to a new screen". But the OS-level gesture won't work since the developer in question didn't use your proposed OS API call "createNewView", but instead just replaced the content of the current view. However, Apple could make use of this OS API mandatory in order to pass review. Although I still think there's some subjectivity around what is "a new view" (that I can "go back" from) versus "an existing view with stuff changed" (that I can't "go back" from).
- deleted 3y ago[deleted]
- nine_k 3y agoIt is very possible to do so that * There is a dedicated control for going back to a previous view / state, that control is always positioned by the OS in a predefined location, and cannot be removed or disabled. * The OS automatically does the right thing, that is, navigates to the previous view, unless the developer has jumped through hoops to override this behavior (e.g. to warn about unsaved data). Android does this, and it's very helpful and natural.
- nani8ot 3y agoGesture support on iOS feels natural because it's implemented by the application (?). On Android back gestures usually aren't 1:1 because they behave like a back button. Swipe and let go, then the back action is executed. Firefox on desktop Linux has better gestures than Android, namely swiping to the right goes back and swiping to the left goes forward. Firefox on Android doesn't, because the OS treats swiping in either direction as a back-button action.
- Aeolun 3y agoiOS does this too. It doesn’t mean I can’t override it. And that’s what many, many, many people do. Try using an app made in Unity on iOS or Android. It immediately feels janky. iOS has many faults, but not being able to go back is not one of them.
- ho_schi 3y agoThe Share Menu is the worst. How a human being should figure that out? If offers: * Contacts * Applications * Vertically * Horizontally * Other items below. * But only after you’ve figured out, that it needs pulled up. * It is always placed in a different locations of an app and the icon has nothing to do with “Share” or “Copy/Paste”. People grown up with smartphones can handle it, as usual you can adapt as long as you weren’t older than 40/50 upon introduction. Most of modern stuff is horribly designed and often unreliable (Hello AppleTV. Can we speak today about changing a WiFi-Password? Why you don’t reboot when I press the ON/OFF-Button? It is needed to workaround bugs).
- dgellow 3y agoI have the perfect example. In safari iOS, “Share” is where the “Search in the page” feature is located! Just, why?!
- walteweiss 3y agoOh, thank you! Twelve years iPhone user here. Never knew it’s there.
- lotsofpulp 3y agoIt is also in the URL/search bar, type whatever you want to find on the page instead of a website address and the bottom option will be “On this page”.
- walteweiss 3y agoI used this option just a couple of times when I desperately needed to find something on the page. Most of the time I’m not sure where that option is, so usually I just google it right before using.
- dgellow 3y agoOh wow, that’s also pretty hidden, I never noticed it
- Aaargh20318 3y ago> Going back on Android is easy, and back can mean multiple things. For me, this is one of the worst things about Android. There is zero consistency in what the 'back' button does. Even as a developer this is something I struggle with, what should the back button do in a specific case? Does it go back to the previous screen or does it go back one level in a drill-down navigation (which can sometimes, but not necessarily always, be the same thing). Sometimes it's up one level in the navigation structure, sometimes it's go to the previous screen. Sometimes it's close a dialog. Sometimes it's even close the application. Depending on the context it could any of these, and it can be unclear which one if multiple could apply. The only way to find out is press the back button and see what happens. I hate ambiguous user interface elements. When I click on something I'd like to know what action it will trigger.
- wildrhythms 3y ago>Sometimes it's up one level in the navigation structure, sometimes it's go to the previous screen Seems consistent to me?
- markandrewj 3y agoSmall note, most people go back using the gesture navigation for Android now days. It's also consistent in going back a screen normally.
- deleted 3y ago[deleted]
- eddd-ddde 3y agoIt's analogous to the browser navigation. It's entirely to the app to decide which screens and interactions are part of the navigation tree and which are not.
- maxsilver 3y agoI'd argue this is a good thing. In Android UX guidelines, the "back" button's "promise" is not that you go back to a specific item, it's that you unwind your most recent action (notably, not unwind state, it's not an "undo" button, just that it unwinds the most recent action). Apps get to decide what metaphor makes sense for an "action" (maybe it's a page, a screen, a dialog, etc). But users can be confident that the "back" button always takes them "backwards", even if the metaphor various apps use may differ. Users can feel reasonably safe that the "back" button will take them "back" one 'step' or one 'action' worth, even if the app is using panels instead of pages, or modal dialogs instead of inline alerts
- layer8 3y agoOne of my pet peeves is that there is no universal equivalent of a context menu. There’s long press, there’s the share button that is often used not just for sharing but for all kinds of context-menu-like functions, there are other buttons or hamburger/ellipsis menus, there’s the swipe left/right on an item with additional actions appearing and sometimes a “More…” secondary menu, there’s the text-edit “tap a selection and wait for a second or two for some options to appear”, and so on. The respective menus that may or may not appear also differ in their looks. The lack of a uniform UI pattern for what is right-click on the desktop already surprised me way back in iPhone OS 3. Long press would have been the obvious choice, and you could have had a uniform context-menu function everywhere. Users would just learn “when in doubt, long-press for any and all additional actions” and wouldn’t have to try different gestures, look into the share menu or other random menu buttons.
- Tarq0n 3y agoThe swipe sideways on an item is the worst, i once spent half an hour trying to delete a sleep record in the health app.
- layer8 3y agoEven if you know an action is under swipe, it is often difficult to avoid triggering the default swipe action and to drag just the right amount if you really want to select one of the non-default swipe actions, or conversely (especially on iPad) you may have to drag inconveniently far to trigger the default swipe action. It’s just a bad UI pattern.
- hmmstedaa 3y ago[dead]
- matchbok 3y agoBack can mean multiple things? That's a good thing? Sheesh. The Android back button as been broken for years.
- m463 3y ago> There are no patterns I think apple gave up a lot of decent design interactions with ios 7. Baby with the bathwater. is that text or a control? The auto-hiding menus that take away important controls, and require non-muscle-memory actions to resurrect. I wish the lost certainty could all the themed back on.