iPhone 4 News Roundup
We have a slew of iPhone 4-related stories this morning, so I'm lumping them together for easier consumption/ignoring, depending on your personal feelings on the subject.
Here is a blog entry proclaiming that iOS 4 multitasking sucks and why. Here is a sketchy summary of privacy violations by Apple and AT&T — apparently they are reporting back jailbroken phones. Skunkpost has a story about the lines and sales of the new phone. But the big news of the morning is the reception problems that apparently only affect people who hold the phone in their left hands.
Goatse.
But seriously folks...the new iPhone hardware and many of the additions they are making to the OS are really great...but I'm sorry, I still can't get past the walled garden. Again, I know the app store would have everything I would likely need, but I just can't accept being told that an application would be inappropriate for me to use. And yes, I know I could just jailbreak it...but that's not the point. I don't care that I can get around it, I care that the walled garden exists in the first place. As a consumer, the best I can do is vote with my wallet.
This is only my opinion, I don't speak for others, YMMV, etc applies.
Living With a Nerd
Perhaps Apple (and others) need to shift emphasis back towards the actual calling features of their phones. Who wants a phone that drops calls if you hold it wrong ? It's great that it has new software, etcetc, but any phone I would consider buying needs to include basic features like better than average reception, a decent sounding speaker/mic, and most importantly, does not drop calls if you touch it in it's no-no spot.
The multitasking complaint seems kind of off to me - he complains about the tray being "cluttered" after you go through a few apps because they are automatically added to the tray. But the tray is just four apps wide - how can you have clutter in only four items? And he complains he needs to press and hold to quit an app - but also complains most apps are just suspended. So then why quit an app? It's not doing anything and will be removed if you are low on memory.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Apparently the author who wrote about multitasking hasn't actually tried it out yet, because he's off-base. While the app tray does quickly get cluttered, as he mentions, the lack of true multitasking is exactly why this doesn't matter - you can have as many apps down there as you want but they're not actively consuming resources. Where he's really off is in his implication that it now becomes difficult to find your apps to switch back to them. Look, if I'm playing Peggle and then use 4, or worst case 8, apps after switching out of Peggle - mentally I just won't even think to look in the task tray for it anymore. I just can't keep track of every app I've used in my brain. The tray will quickly let me switch back to my most recently used apps, which is really handy - but when I want to switch back to the middle of my Peggle game a week and 20 other app uses later I... and this will sound crazy... click the Peggle icon wherever it's located on my main screens. The author seems to think that the only way to resume an app is from the task tray, and that's simply not true.
Granted, I had some uncertainty about how this would work, too. But I grabbed a new iPhone and tried it out to see exactly how it works, rather than hopping on the interwebs and writing up an article with uninformed assumptions which then ended up on the front page of /.
Additionally, he goes on to say that developers have to explicitly add multitasking. While that's true for using the background services, my understanding (and correct me if I'm wrong folks, as I have this on good authority but haven't actually tried it) is that for the base level of background freezing, which for a majority of apps is all that's really needed, all you have to do is recompile the app against iOS 4. It's not automagic, but it's really not so bad as the author implies. The worst bit about it is submitting to the app store, but it should be pretty painless to get to that point.
Granted, it's not true multitasking. Everyone knows that by now. But frankly, I'd rather the phone always be responsive and maintain its battery life than have true multitasking for the vast majority of the things that I do and have no desire to have to actively manage my apps (which contrary to the author's claims, I don't have to do). Maybe some day I'll change my mind on that. Maybe right now this level of multitasking isn't good enough for many people out there. And that's cool, we have options now - get one of the many excellent Android phones. But please don't write a blog post of inaccuracies.
From other platforms, we know that is not a major battery drain
The people who make those platforms would beg to differ, Larry Page himself said that poor battery life in android is usually down to multitasking.
This is a completely nonsensical argument. Apple already have complete control over applications that are available through the app store
That's an obvious but wrong response. Apple also wouldn't have to declare any explicit prohibitions on scripting languages, they could just turn down applications, but the resulting uncertainty would be bad for developers. Therefore, when Apple doesn't want unrestricted multitasking, they need to communicate and implement that somehow in a way that doesn't create hazards for their developers.
By defining a specific set of APIs and laying down the rule "no multitasking except through these APIs", Apple gets the restrictions they want, developers get clear rules to follow, and users still get the amount of multitasking Apple is willing to give them. In different words, the existence of these extra APIs codifies business strategy.
If you have another explanation, let's hear it, but Apple's explanation is nonsense. Whatever technical goals Apple says they want to achieve, they could simply achieve through small modifications to their scheduler, if need be, on a per-application basis, with much less work for themselves and their developers.
Personally, I think that Apple's compromise is a good one. If your app doesn't have a compelling reason to keep executing (like streaming audio, getting GPS updates for navigation, etc.), then the most your app really needs is just to have its state saved for quick re-launch.
The problem with Apple's compromise is that the definition of "compelling" is defined by Apple, while in reality it should be defined by the user. In that sense, the Android compromise is more reasonable - the normal programming model for applications revolves around "activities", which also have lifetime not dissimilar to iOS model - an app switched into background is typically frozen. But an app can explicitly launch a background processing thread - a "service" - if it needs to; and the service can do anything at all (well, apart from displaying UI), not just something that Google has deemed "background worthy".
What I'd like to see on Android, though, is a permission that controls whether an app is allowed to spawn background services, which would be listed alongside others in the confirmation screen when app is installed.
Your face is wrong :p
But seriously though.
If you think of the iPhone as an appliance and not a computer, then it makes perfect sense.
I often hear this argument, and my response is always the same: it doesn't matter how you spin it, it doesn't matter what you call it, it doesn't matter what you "think of it as"...the fact is, Apple offers a restricted product while others offer an unrestricted product. I have a choice as a consumer, and I've made one.
Living With a Nerd
In other words, what you want is a smartphone that will confuse the heck out of the average user. Most users are not capable of making an intelligent and informed decision on what apps should be running in the background, particularly since the apps can come from anywhere and aren't necessarily vetted first. The average user will either forbid or allow most background privileges, and therefore will either get no benefit from background processing or wind up with a sluggish phone draining the battery.
I'm not saying that what you are asking is unreasonable, but that it's simply not going to work for most people. Since Apple makes its money selling easy-to-use tech, Apple's not going to make the phone you want.
There is a great deal of value in making things accessible to non-techies, and in order to do that you have to remove a lot of choices. That's simply the way it is. The average user doesn't know enough to make a good decision on many things, and will simply become frustrated when asked an unintelligible question. That's been one of the complaints about Microsoft: UAC, for example, relies on the user to make an accurate technical decision on the spur of the moment with insufficient information.
On a larger system, it's easier to have more choices but to hide them normally. On a handheld, this is a lot less practical.
There are trade-offs here. There is no one right answer. Apple's answer is perfectly valid, and useful for a wide range of people.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes