Consistent with what?

Jason Snell, in an article about Google’s iOS applications importing Material Design into iOS:

Users choose platforms for various reasons, but once they’ve chosen a platform, they deserve consistency.

Someone should tell this to Apple and virtually all iOS application developers, because iOS is an inconsistent mess of an operating system.

Here’s a few examples taken from my never-to-be-published iPhone 6S/iOS 9 review that I wrote during the six months I used the thing (up until a few weeks ago, when I went running back to Android because iOS couldn’t even get the basics like multitasking and inter-application communication right).

Take something like application settings. In Outlook, tap the settings icon in the bottom bar. In Alien Blue, tap the blue dot in the top right, then settings. In Tweetbot, tap your account picture (!?), then settings. In the Wikipedia application, tap the W logo, then “More…” (!?). For many cross-platform applications that are also available on Android, tap the hamburger, then find something that sounds like settings. For Apple’s own applications, close the application (I wish I was joking), open iOS’ Settings application, scroll down for days, figure out in which unnamed grouping it belongs, then tap its name.


So it goes for settings, so it goes for many other things. Navigating between main parts of the user interface of an application is sometimes done via a tab bar at the bottom, sometimes it’s done via a full-screen root-level list menu, sometimes it’s done with a slide-in drawer, sometimes there’s a tab bar at the top. Sometimes you can swipe between tabs, sometimes you can’t. Animations for identical actions often differ from application to application (e.g. closing an image in iMessage vs. closing it in TweetBot).


It goes deeper than that, though. The official Twitter application, as well as Apple’s own compose tweet dialog, for instance, replace the enter key on the iOS keyboard with a pound sign, hiding the enter key in the numbers panel. Why is this even allowed in the first place? Or, even more infuriating: the “switch between keyboards button” (the globe) is actually in a different place on the Emoji keyboard compared to regular language keyboards. So when I’m cycling between my keyboards – which I do a million times a day – from English to Dutch, the process comes to a grinding halt because of the Emoji keyboard.

The problem is that while Google’s efforts on first Holo and then Material Design have given Android developers a relatively clear set of rules and instructions on how Android applications should look, feel, and behave, there’s no such set of clear rules for iOS. The iOS HIG is vague, open to interpretation, and Apple itself regularly casts it aside to do whatever it feels like (look up the section on where to put application settings. It’s comically open to interpretation so as to be effectively useless).

That’s how you end up with impenetrably convoluted applications like TweetBot – often held up as a shining light of iOS application design – where you can perform up to 15-20 different actions with various gestures, taps, taps-and-holds, hard-taps, etc., both operating system-level and application-level, on a single tweet in its timeline (good luck not mixing those up, either because you used the wrong gesture or tap or because the operating system’s touch/tap algorithms buckle under the pressure). Or, the popular and praised Overcast podcasting application by iOS star developer Marco Arment, which ditches the standard iOS fonts for its own comical font because… Reasons? And on it goes.

I’ve been a strong proponent of militant consistency in user interface design and behaviour for as long as I can remember, and while neither iOS nor Android are shining examples of the concept, there’s absolutely no doubt in my mind that Holo and Material Design have done a far better job of propelling at least a modicum of consistency in Android application design than anything Apple has ever done for iOS. From that same never-to-be-published iOS review:

Interactions with a smartphone tend to be quick, focused, and often involve cycling through a number of applications very quickly. Unlike desktops or laptops, we tend to not use the same application for long periods of time, but instead quickly jump in and out of a number of applications, and then put the phone back in our pocket. Given this usage pattern, the less you have to think about where stuff is and how to do a thing, the more fluid and pleasant your workflow will be.

And this is one of the many reasons why using iOS is such an incredibly frustrating experience for me. Every step of the way, I have to fight with iOS to get it to do what I want, whether it’s every application doing things in its own specific way, applications not at all talking to each other, the inability to set default applications – it all adds up to an experience where I have to spend way too much time and energy thinking about how to get around iOS’ limitations, iOS developers’ auteur application design, and Apple’s inability to write, apply, and consistently enforce its own HIG – even after six months of exclusive use and spending €800 (I really tried).

It’s great to ask of Google to make its iOS applications consistent with iOS’ design principles – but you might want to ask Apple what those are, exactly, first.


  1. 2016-05-27 9:44 am
    • 2016-05-27 10:43 am
      • 2016-05-27 11:14 am
        • 2016-05-27 11:27 am
          • 2016-05-30 6:47 pm
        • 2016-05-27 11:32 am
      • 2016-05-27 12:36 pm
    • 2016-05-30 1:50 pm
    • 2016-05-30 7:00 pm
  2. 2016-05-27 11:56 am
    • 2016-05-27 12:12 pm
      • 2016-05-27 2:08 pm
      • 2016-05-28 12:52 am
    • 2016-05-27 3:44 pm
    • 2016-05-27 8:03 pm
  3. 2016-05-27 1:35 pm
  4. 2016-05-27 5:23 pm
    • 2016-05-27 5:49 pm
  5. 2016-05-27 6:43 pm
    • 2016-05-27 7:18 pm
      • 2016-05-27 7:54 pm
        • 2016-05-28 3:24 pm
          • 2016-05-31 2:21 pm
      • 2016-05-28 9:34 am
      • 2016-05-29 9:36 pm
    • 2016-05-27 7:32 pm
      • 2016-05-27 7:54 pm
        • 2016-05-28 11:37 am
          • 2016-05-31 2:15 pm
  6. 2016-05-27 9:04 pm
  7. 2016-05-28 11:39 am
  8. 2016-05-28 11:57 am
  9. 2016-05-28 12:40 pm
  10. 2016-05-28 6:24 pm
  11. 2016-05-30 6:17 pm
  12. 2016-05-31 12:29 pm