So having ranted about the hardware, it’s only fitting that I rant about the software on it. Like my article on the hardware, I’m only going to focus on what I think is wrong with it; there’s plenty of articles on the good stuff already.
Multitasking
UI
Apple’s implementation of multitasking, UI-wise, is nearly the worst I could think of. Not only did they fail completely at avoiding a task manager, they ended up implementing one that confuses users even more than a proper one would. On top of this, they broke the cardinal rule: they broke a users understanding of simply closing an app.
Previous to iOS4, pressing the home button was synonymous with closing an app. There was no fear of it continuing to drain the battery, continuing to monitor your location or what have you. This changed slightly with the introduction of push notifications, but the effect was the same, the app was dead and gone. iOS4 has broken this completely, worse than simply changing an expected behavior, they’ve made the old behavior annoyingly difficult to get to. Let’s compare, shall we?
Really closing an app in iOS3-:
- Press the home button.
Really closing an app in iOS4:
- Press the home button.
- Double press the home button.
- Tap and hold on an icon.
- Press the red minus above the app.
I mean, really? What’s worse is this isn’t even remotely obvious; I’d be willing to bet that most users of iOS4 don’t even know about this. You may be wondering why this is even a problem since most apps don’t multitask anyway and state saving is a useful feature.
When introducing what is effectively just a MRU list, Steve Jobs said “These are all the apps that are running.” Problem is, that’s not even remotely true. It’s just a list if recently used apps, with absolutely no indication of wether they are actually still running or just in a suspended state (if that, since non-iOS4 apps are listed too). Beyond the fact that not actually closing the apps pollutes this terrible ‘multitasking UI’, I’m not even given a choice up front about whether an app should keep running in the background or not.
On the flip side of this, you could say that things like Skype and Pandora are now consistent to their core-feature counterparts. Except the fact that both of these apps use significant bandwidth and in the case of Pandora, more power. You could also say that 9.9 times out of 10, people will not want to actually close Skype while on a phone call, which I’d agree with. In the case of Pandora though, you have to weigh user expectations with consistency. Specifically for Pandora, consistency probably wins out because it’s more convenient than the alternative. However, I feel that core-feature alternatives are the exception and that we can’t even begin to apply this argument to all types of apps.
UI Ideas
The last time I was blogging, I posted an article proposing my solution for the UI of multitasking to avoid a task manager among other things. In it, I proposed that true multitasking be treated like GPS location, that you be asked by the OS whether or not to allow this app to keep draining battery. Having seen Apple’s solution now, I still think it’s a good idea and have some new ideas.
Part of the problem now is that the default behavior is completely up to the app developer who may or may not give you a choice. Sometimes when I exit Colloquy, I actually want to exit and sign out of Colloquy. Sure, Colloquy could likely add a dialog asking me in their task completion thread on whether to keep running or not (which I’d like, actually), but that doesn’t solve it for say Pandora or anything else.
Instead of having explicit closing, what about explicit multitasking? If I tap the home button, it would exit the app as it always has. If I double tap the home button, up would pop the multitasking UI. From there, I could either go to the home screen, or to another running app. Either way, exited through this multitasking UI, the running app would always be allowed to multitask. Options could be setup to allow this from the ‘normal’ app exit, but it would be opt-in.
As for saved state, I’m on the fence. I’d still like to keep a way to explicitly clear it, as is sometimes necessary when apps get confused (I’m looking at you, Trillian.) If it wasn’t for this, I’d want them not in the multitasking list. Sadly the software world is imperfect and I suspect there will always be an app I have to beat with a stick. Non-iOS4 apps should never have shown in the list to begin with, but it won’t really matter for much longer.
Actual possibilities
Many have criticized Apple for not allowing ‘true multitasking’ and instead watering it down to what they saw as important. However, I’m not going to do that, because I actually like the approach Apple has taken. Not only that, but the work to integrate things like Pandora and Skype to look and act like the similar core features of the phone impressed me.
Where Apple fell short though is their belief that Push Notifications was sufficient for all messaging clients. Problem is, not all of us tech informed people have a box running 24/7 they can use as a IRC proxy. Sure, I could probably set one up on my Linode VPS, but I shouldn’t have to. Persistent connections are an important but annoyingly missing piece. Everyone likes to use IRC as the example of this, but let’s use an example more relevant to the every day crowd.
Let’s take some multiplayer game you’re playing with your friend when you get a phone call. Now, a newly compiled single player game would happily have it’s state saved and then restored upon hanging up. Since it’s a multiplayer game however, one of two things just happened: 1. Because the developer took a ton of extra time, the game saved its state on its own and is now trying to reconnect. Or the more likely: 2. You’ve completely lost the connection and have to start the game over. Allowing the game to keep the connection would let it simply pause and then when the call is over it could simply un-pause and continue on it’s merry way with significantly less effort from the developer.
Contacts
I guess at this point it shouldn’t come as a shock to me that Apple seems to have no problem regressing features. Originally I’d planned to complain about the fact that I thought they’d removed custom labels from phone numbers and email addresses. When presented with the new interface that didn’t force me to select one and a preexisting label to the left, I assumed there was no way to change it. As it turns out however, it’s been moved to a menu that appears when you tap that label in edit mode.
Now, if I’d never used iOS 4 before, I’d probably have tried tapping on the label to change it. It seems like a pretty obvious spot to get to that menu on its own. However having been using iOS since 2.0, I was pretty used to it the way it was. When I saw the way I’d been used to was gone, I assumed the feature was gone and I bet I’m not alone.
On its own, the new design is simpler and has significantly less friction. However, as with multitasking, they’ve gone ahead and totally screwed with expected behavior. I mean, was anyone really upset that adding a phone number or email address took a few seconds longer than it does now?
Threading
Apple, if you’re going to steal/copy/whatever a feature, at least do it right. My biggest hope for email was that I’d get threaded messages from Gmail, where I love them to death. Upon setting up my email account on the new phone, I eagerly went into a 52 email thread and was promptly disappointed. Where are my own messages? Forum threads show my responses, Gmail shows my responses, but Mail does not. “Thread different”, perhaps?
Without seeing my own responses inline, the threading feature is all but useless. The point is to be able to see the entire conversation between parties, and that includes being able to see what you said. Being able to see them together should of helped avoid going into an email and backing out to try to find the previous one, but that hasn’t been remedied at all. Surely that must be an option I can enable, at least, right? Nope.
Worse still is the interface, the back and forth navigation is still just as annoying as it was before. Yes, sure, it’s an improvement because the messages are all together but the beauty of Gmail’s interface is that everything is right there. Even given the small size of the screen, I think that Gmail’s interface is totally doable. Simply pull the email down to reveal the subjects of the other messages, tap to expand. “But wait, that’s as just as many actions as before!” you say. Yes, but it skips the navigation animations that become time consuming quickly when compounded over several emails.
Gmail Archive
I guess at this point I really shouldn’t be surprised, but let us continue on this face-meets-palm quest pointing out where Apple broke user expectations. Previously setting up a Gmail account, delete would (insert surprise joke here) actually trash the email! In iOS4, Apple has added the ‘archive’ feature for Gmail accounts, which is great. What is not great is that it’s now turned on by default. So let me get this straight, Apple introduces a feature (threading) that just affects presentation and has it off by default. When Apple introduces a feature that radically affects where your email goes, however, it’s now on by default even for existing accounts?
Now, granted, at least it’s not the reverse (going from archive to a delete) so at least it’s not more destructive. However, yet once again, Apple has taken existing behavior and decided that you’d rather have this other new behavior. I’m not sure who archives their Gmail messages instead of moving them to trash, but I certainly don’t. Maybe we could have both? Swipe right to delete, left to archive. We’ve already associated swipe right with delete pretty much everywhere, let’s take new completely different behavior and put it somewhere else instead of replacing things.
Annoying Tidbits
- Why is there a delay in opening a folder?
- Still no bulk delete in MMS.
- Safari, maybe I don’t want to go to something in my bookmarks if I don’t have an open page.
Conclusion
Generally speaking, I’m quite happy with iOS4 and do not wish to go back to iOS3. As I said before though, this has just been about the bad.
Apple seems to have no regard for previous user expectations, which I find very disturbing. I don’t have the total sales numbers for iPhones previous to iPhone 4, but this helps put it in perspective. The thing is, when you have something that works and works well, there’s likely not a good enough justification for changing it. It’s only when expectations of users is to be frustrated, or for the feature to not even work, that it’s OK to go ahead and gut the feature.
