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 ^a‘not800 (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.
Yes, let’s ban creativity and have everyone conform to a rigid set of rules. Honestly. Going from Android to iOS is like this scene from The Simpsons:
http://s6.photobucket.com/user/Yashouzoid/media/simpsonsuniform_zps…
There’s a line where creativity gets in the way of productivity, and iOS clearly crosses that line. I use an iPhone 6 as my main device, and I’ve committed to doing so until the Android hardware developers (Samsung, LG, HTC, et al.) get their act together and decide once and for all that their devices will receive a certain number of years of support and updates beyond the typical six months.
It would also be nice to have consistent performance from the camera on Android phones, and that’s the other reason I’ve stuck it out with the iPhone despite the issues mentioned by Thom and the quoted article.
And boy, are there issues! I’ve never been a fan of the iPhone since it was first released, even though I feel OS X is the best desktop OS out there. Somehow Apple has yet to bring that magic to the phone and tablet world, and while Android had a rough start it’s become my OS of choice for tablets.
One glaring issue is how Apple only allows their own apps to do what you’d expect from other apps. For example, if I want Dropbox to automatically upload photos, I have to leave the app open and the screen on, even though I’ve selected to allow background data use. This isn’t necessary for iCloud backup, because of course it isn’t. Apple would rather I pay $0.99/month for enough of their storage space to make using iCloud manageable, rather than use the 1 TB of Dropbox I already pay for. This simply isn’t an issue on Android; the Dropbox app gets first class treatment.
If Google can convince device makers to have a little freaking consistency instead of trying to outdo each other with screens that wrap all the way around the body of the phone (seriously, what purpose does that serve other than making the phone even more breakable?) I might be convinced to return to Android in my pocket.
Why do you care what Samsung, LG, HTC are doing? The device you want exists already, and it’s called a Nexus. Has a proper camera, not too expensive and most importantly a proper update cycle.
Edited 2016-05-27 11:14 UTC
Because choice is good. Besides, I’ve been burned by Nexus devices twice in the past (Nexus S with its carrier-restricted updates and Nexus 4 with serious hardware issues from day one that neither Google nor LG would fix). A Nexus phone is still made by one of the regular manufacturers, be it LG, HTC, Samsung, Motorola, and so on, and carries all the same hardware issues as its brethren.
You can’t base the current crop of Nexus devices, to one that’s already over 4 years old, that’s simply ridiculous. No manufacture, even LG, would be able to survive if they consistently released garbage. The new Nexus 6P is an absolute fantastic phone for the money and I have had zero issues with it, nor has any of the 120 employees in my firm who were also issued one. The problem with going with a none Nexus phone, especially Samsung is that they simply do not keep their devices updated. With Samsung your lucky to get a single major update, let alone 2 during the life of the device, which by Samsung’s standards is only two years. Also touchwiz is the absolute worst skinned version of Android I have ever used in terms of memory concuption. Beofe you even install or startup a single app the OS takes up 2.5GB of RAM. That is simply unexpectable, my 6P takes up less than a gig in comparison. My sons Nextbit Robin, which by the way I also really like and is one of my favorite looking phone out there at the monent, not to mentioned it’s down right indestructible, my son has dropped it at least 5 times that I know about and all 5 times it came out unscathed. Anyway, it’s OS also takes up less than a gig, even less if you use All In One ToolBox and disable those system apps you don’t need to startup. I got it down to 780MB.
Buy what you want but don’t think because you had a bad experience with your Nexus, which by the way I never had with my Nexus 4, 5, 7, 9, 10 and now a 6P and Pixel C, that it would be replicated with a new one.
Pretty much this. I have decided not to bother even considering phones that don’t ship with stock Android anymore, the phones with non-stock Android always have all sorts of stupid quirks and issues and lingering vulnerabilities that never get fixed and all that.
Too bad Nexus 6P doesn’t have OIS for the camera, I might have upgraded from my LG G2. Means I’ll just have to wait for the next cycle and see if they have OIS then.
geez, I got a Note 3, and I had 2 years of support for that… If you pay the price you get support. An excellent device.
Too long, didn’t read most of Thoms post, but …
the so called-rules not rules, they are guidelines. They really help developer make something decent and are guidelines for designers, they are not some kind-of fatwa
What, Google’s Material is a guideline not a rule. It’s also called UI consistency, something iOS simply doesn’t have, not just with apps either but almost every aspect of the OS. Example, the Share function, which by the way is an extremely poor substitute to just simply having a central document management system in which the user can simply open a file directly instead of having to Share a file in order too open it within another app, creating unwanted copies in the process. Anyway, it absolutely drives me crazy that some apps support my cloud storage of choice and others do not, it’s a crap shoot, why, well since iOS doesn’t create it’s Share To lists dynamically (like every other modern OS), the individual app developers have to manually create these lists, leaving out many Share To app options in the process, simply put, it’s inconsistent.
I find these inconsistencies everywhere in iOS, it’s UI design language is just one of the many, many issues within iOS.
I work daily as iOS app developer and my work is driven by Android. The designs are always oriented around Android phones but customer also wants iOS version which actually turns out to be a port as customer has no money nor interest to create a separate UX specifically for iOS. So I have to use magic to get it all working on iOS.
Second thing about transitions. If I want a new window onto a screen, I explicitly have to tell how, if at all, is it animated. There is no default provided by OS. Also when I use window stack (navigation bar) and ask for animated transition, it is animated from the right. If I however want to make a window which is not part of navigation stack, then it is transitioned from the bottom. Why I want to make a window which is not part of navigation stack? Because if the window is part of the stack, then iOS has a “long swipe” gesture which allows user to dismiss the screen by swipeing in from the left edge. If the window happens to be input form, then I really don’t want the user to be able to accidentally dismiss it, so I have to make it a standalone screen on top of screens belonging onto a stack. And if you now add animations, then some screens pop in from the bottom, some from the left. If you want to switch from one window to the next, then first window slides down, revealing what was there before and then new one slides in from the bottom – freaking the user out as there is too much animation. Instead I opt to turn the animation off, bringing inconsistency where sometimes screen transitions are animated and sometimes they are just appearing out of nowhere.
So from developers point of view, the Apple iOS API is very very flexible and hence the mess. Every developer does things differently.
Regarding settings. iOS has a determined space for every application to contain its settings. Go to settings, scroll down and find the app icon and there you see things like location services and data services flags. App can open this screen directly with single line of code, so it would be cool to centralize all app settings here? Well not so fast. You can do very limited design here and also the communication back to the app that its settings have changed, is done in very limited fashion. So instead it is recommended that every app designs its own in-app settings screen and storage behavior.
Regarding settings: in the mentioned iOS review, I go into quite some detail about how the settings mess in iOS came to be. It effectively comes down to Apple not having the guts to set and enforce a single standard.
Which, in turn, is emblematic for the wavering state iOS has been in post-iOS6: there’s no captain on deck. No leader. What I’m hearing from inside Apple is that after Scott Forstall left, the position of captain has been effectively vacant.
And it shows.
Edited 2016-05-27 12:12 UTC
Thom, from a UI perspective there’s been a captain missing for a long long time.
On the desktop this is ever more relevant than on handheld devices. I ran away from OS X Jag-wyre (as He Almighty brother-to-Jesus pronounced it) soon after it was released.
That’s 2003/4.
XP seemed the lesser evil. And it was, both technically and aesthetically speaking: never had a virus (been using Firefox since the earliest betas, and it seems it was enough) and although XP looked like shit it was somewhat consistent. W10 is crap, I feel ashamed using it.
But in all this mess, despite how much I don’t trust The Big G, my S6 is a friggin’ heaven. Well, except for the fact that it is made of glass (?!??)
And Who cares? Why enforcing a single standard is better than the current situation? I prefer some flexibility to unavoidable rules, let’s the developers figure it out!
You mentioned Twitter for iOS… what’s the problem with it? It works perfect!! It’s super usable, the “problem” that you mentioned is not really a problem, It’s a freakin detail (a very minor one).
I think you overestimate consistency because is something YOU care about… but the rest of the world really cares about it? I don’t think so.
More notes regarding consistency.
On Android, there is an extensive set of assets and icons from the OS exposed to the developer to be used in custom apps. All for promoting consistency where the same system-provided icon is used on similarly functioning buttons on different apps. No such luck on iOS.
Yes the iOS also has about 30 system-provided icons but they have huge technical limitation – they are only available on toolbar buttons which in turn can only be used on toolbars. You cannot put that system-provided icon onto a regular button. Well there is a hack to get it there anyway by adding an invisible toolbarbutton onto an invisible toolbar and then traversing the component hierarchy until you reach an UIImage object reference and then assigning that reference to your own button – hence stealing Apple provided icon from the guts of system component. But it is a hack.
Also have you noticed a missing UI elements in iOS? In fact iOS does not contain following regularly used components: checkbox, radiobutton and combobox. There is a substitute for two of them.
The replacement for checkbox should be switch. Well in some cases the “switching” might be OK but in other cases it is just awkward. While I would want to “switch” off a location service usage, I would feel really awkward to switch on the agreement to privacy policy. Fortunately the regular iOS button may be set into several different states and different images could be assigned to those states, so usually the checkbox is emulated by images of unchecked/checked box designed specifically for the app.
The replacement for the combobox is picker component. While picking a date or maybe even long list f languages would be sometimes OK, picking an object type would be silly. You can assign input view to any textfield, and when you activate the textfield, a picker will slide in from the bottom. If the text field was at the top of the screen, then transitioning to the bottom to make a selection seems awkward. And stopping a scrollable list in the picker is considered making a selection causing the picker to dissappear and filoing in the textfield. This severely limits the users ability to browse the list of available options. Workaround is to add a toolbar with “done” button to the picker window.
“However ther is no substitute for radiobutton. Apple says that all selections should be donw via picker but that is really strange thing to fit onto many input forms. So instead many will work around the limitation to add several buttons onto the screen and manually ensuring only one is in “selected” state and provide different images to different states emulating the radiobutton functionality. Again design is different on every app as there is no system component.
What iOS has that Android doesn’t? Two absolutely mindbogglingly complex and featurerich frameworks: UIDynamics and since iOS 8 the SceneKit
UIDynamics allows you to assign gravity to UI components and they would start ot behave like objects in real world. I mean you can literally make all the labels and buttons and textfields drop from their place to bottom of the screen where they pil up and which ever way you move your phone the gravity field follows and the freely moving labels and textboxes slide and roll around the screen. Totally useless but cool anyway – to implement complete physics engine into UI controls.
SceneKit is a complete 3d engine based on OpenGL ES built right into OS. You can take an animated scene from Blender, export it as Collada, import it into iOS project and with couple of lines of code get it on the screen and animating via SceneKit. Performance is very good and it is really quick to get 3D working from Blender to phone. Again if you are into 3D stuff and making for example augmented reality app or a game, then thats a plus but for regular email/messaging/social/photo apps it is utterly useless. And all it does is to add download size to the OS image.
You’re part of the problem here.
If the environment has UI rules, _just follow them_, even if you believe (wrongly or not) that they lead to user frustration. Because the inconsistency of not being able to swipe that one to the right leads to much worse frustration.
Got Apple Human Interface Guidelines for sale. You know, the book, printed on paper?
Y’all might wanna take a look at it and–if you understand it–weep on your sorry 1K^a‘not brickfone.
Everyone is always blind to the faults of what/who they love.
The other guys stuff is a piece of ****!
The other guy/girl is always the barbarian.
Etc., etc., etc. Signing off.
Everyone who understands their choice is based on emotion and not reason appeals to this kind of argument. There is lots of discussion here explaining that Android is the least worst option, and that iOS is a disaster for all kinds of cogent reasons. No one is blind to anything.
So based on Thom’s report, I’d say that the issue is due to the fact that Apple has been so insistent on having only a single button, a button used by the OS to move to the home screen.
On the flip side, Android has typically always had the Back Button, Home Button, and the “hamburger” for settings/other, making many of these actions very consistent.
My big complaint with iOS was the single button (Home) and the lack of a Back Button making every app work differently. But the ability of Android to switch to different applications without closing them…yeah, iOS has some weird slide method to do that too, but good luck figuring it out (I only know about it because my kids figured it out on my wife’s iPad but even then, we don’t know exactly what they’re doing, and they’re always confused when they do it because it is *not* what they intended to do.)
It’s not exactly difficult. Slide right with four fingers to go to the previous application, or the one before that, or before that. Slide left with four to retrace your steps. Yeah, it’s so very incomprehensible…
So obvious.
NOT
Except android doesn’t even have that feature at all. Super annoying.
If you just want to switch to a different app in the list you double click the home button or swipe up with 4 fingers. Not exactly rocket science my mom did it within the first few minute of getting her iPad.
Actually, Android does. Android has always had 3 buttons (back, home, option/hamburger); and the ‘option’ button unless overridden by an app (usually to make it go to settings, which even then there will a way to do this function) will always display a sliding tile set of all the applications, from which you then move around to choose which one to go to directly. That has worked since at least Android 2.1 (NexusOne); they changed up how the tiles present a little between major versions, but the functionality has always been accessible the same way.
On my NexusOne it was the hard hamburger button. On my Moto X 3rd Gen running Android 6, it’s the square soft-button.
Sliding with 4 fingers is difficult. When Apple introduced that gesture, I’ve tried for a while, but it worked only in 1 our of 5 times, making it completely useless.
I am an app developer for both iOS and Android and the feature I miss very hard in iOS is the back button, enabling to go back to the previous screen inside an app.
There is no consistent way in iOS for going back. Some apps make a button in the upper left corner in the app (taking valuable screen space), others provide a single finger or dual finger left swipe (which is not always obvious), other don’t provide the possibility at all (which sucks, because tapping is not error free)
@Verenkeitin: brother, you made my day!
Edited 2016-05-29 21:37 UTC
Task manager is accessed with double click on home button and from there you can either switch to the other app or drag it up out of the screen to kill it.
Not obvious, or intuitive.
But, you only need to learn it once and then it is second nature. What isn’t helpful is crying about lacking features that have well known implementations, if you RTFM.
Which only proves my point that it is not intuitive.
Does one have to RTFM on Android to do the same thing? No, it’s natural from the get-go.
So while one may discover said method or find it by RTFM, that doesn’t change the fact that it is not intuitive.
One should not have to RTFM for such a simple thing. And that argument in itself to me says that they shouldn’t even have the single button if that’s how they want users to interact with the system.
So no, RTFM is not a solution to or even an argument against what I said.
Start an android site and make yourself happy.
I ran back to iOS because I was fed up with how unreliable Android (vanilla, Nexus 4) was becoming for me.
I read the article, I read Thoms article. For some reason I can not help wondering if Thom was thinking of Swiss Movement, track 1 when he penned the title.
It is basically a simplified interface for the masses.
It works at what it is supposed to do. Outside of that it is difficult. Android is pretty much the same.
Edited 2016-05-28 12:42 UTC
Being an inconsistent mess inside out is perfectly consistent with modern UX design. Knowing where the settings are and what they are called just reeks of old fashioned usability. When UX is done right, settings are not called anything. You just press on a thing and you’ll get into settings. What that thing will be, who knows, as long as it doesn’t look like anything. As for the press, maybe it’ll take a long press to get settings and short press gives you something else, or nothing. As long as there is no way to tell that something could happen if you pressed that thing, its good UX design.
Usability with its ease of use and efficiency is so boring and pre-millenial.
UX is all about experience. Anger, hate and despair mostly, if you are old enough to have used something designed when Nielsen, Norman and Rasking were relevant.
/s
Some days ago, don’t remember who, said that he keeps coming back to Windows for Games, BECAUSE Windows respect the UI of the provider.
Don’t know which side to take about this… Maybe both?
On using Excel|Doom -expecting them to behave the same at every platform, impossibilities excluded. Any other conduct equals missed productivity.
As for me, don’t care which are the ‘sacred’ UI rules at Apple, when lending an Apple machine to finish my Excel workbook, expecting to find everything where they are, at mi daughter’ PC.
But also able to see the other side. As a young user of Atari only, found extremely painful to digest all the three books of MS-DOS. -A System full of contradictions and inconsistencies- and learn to live with them.
you would think an advertising-supported platform would be so much easier to use, right?
are those hooks into your personal data consistent? i bet they are.