In contrast, Android apps demand all of their permissions up front.
Android's permission-granting model does leave much to be desired, though.
Such as?
Intercepting calls before they go out through the main dialer, and instead using some form of VoIP.
Intercepting an incoming SMS that's used for phone number verification, rather than requiring that the user switch to their SMS app and manually enter a code.
For that matter, replacing the SMS app with something better.
Reasonable app backgrounding support for any purpose you can think of, not just for those that Apple has graciously allowed you to do.
Hell, you couldn't even have custom keyboards on iOS until recently.
Apps can also have access to stuff that iOS never allows: e.g. I have a 3rd-party app that backs up my SMS database to Google Drive every night. It can also do backups to Dropbox and a couple other services. With iOS your one and only cloud backup solution for "system related things" is iCloud, and you can't change that.
None of these things require rooting the device. Yes, all of these things can be abused. But I prefer permissiveness that requires a little vigilance on my part over living in a restricted environment.
I value my privacy and the privacy of those I have information about on my device over some "feature" that "could be cool" but will almost certainly be exploited. http://news.yahoo.com/android-malware-only-pretends-turn-185...
With Android, you grant an app access to everything it asks for, or you aren't allowed to install it. This seems obviously inferior to me.
I use Android because it let's me have defaults. See? Irrelevant statement.
Everyone has different needs, just drop it.
iOS does not require the user to accept all permissions that an app wishes to use, before installing that app. On iOS, you install an app without giving it permission to much, initially, and then the app, when you start it, starts asking for permissions that it needs, as it needs them. You can deny any permission request, and the app still works.
Eg. you can install the Facebook app, and deny it access to read your contact list.
In Android, about 150.
There is no mapping 1:1. Some things iOS does not allow at all (wifi information, sd card access). Some things iOS allows by default, with no way to deny it (internet access).
The iOS approach would not scale, the user would be burried under confirmation dialogs. And that's just the initial confirmation, there has to be UI, when he changes his mind later.
Those, who claim that iOS approach is superior are showing their ignorance, that they newer thought about the way, how the user would set matrix of this amount of permissions with many apps, without getting lost (hint: many are getting lost just in the current system. Imagine, that they would be able to toggle anything. And imagine, what the developers would say about that).