I have always disliked install time permissions. The user is asked to make a decision up front that:
- They don’t have any context around
- They can easily forget
- They often say “yes” just because they wanted to download the darn thing
- There is no way to tweak the permissions
This reared its head today. We released a new version of the Walmart Android app. In there we are trying to make the user do as little typing as possible, so when you create a new address there is an option at the top to grab the address from your contacts. There is a good chance that you are sending the goods either to yourself (home, business) or to a friend / family member…. and you may have that info already available.
The problem is, that for us to get that information, we need to blanket ask every user for that access on install. Many users are privacy conscious and I respect that. They should be able to say “thanks, but I don’t want you to have access to my contacts”. We are using a contact picker UI, so the user is explicitly tapping to launch this and selecting the contact, so we don’t need access to anything other than what the user would select. Why do we need READ_CONTACTS?
Why can’t I let those users NOT allow the application access to contacts, but still be able to do everything else? The zero-sum game is nuts.
This shows up all over the shop. If I have an application that happens to have one screen that would be able to help the user by accessing the Geolocation API…. I have to ask for that up front. That screen may be used 0.0000001% of the time, and it just may be aided by that (not required to function).
We need to fix permissions. Would it be so hard to let us say “these permissions are nice to have and can even be on demand” so users can check or uncheck permission there? (this has happened to others too, and we should have realized it would be an issue, so that side of things is our bad :/)
For our users who were scared off when they saw the request for that permission, I am very sorry. We are looking to setup a new build that doesn’t require it at the expense of the convenience feature.
On another note, I am super jazzed at the hard work that went into this release. This app has a bunch of native and Web integration. Our Android and mobile Web teams have worked together to great affect, and although this is just the very tip of the iceberg, it has been great to see!
Remember, if you want to do Android, iOS, or bleeding edge mobile Web development that reaches millions of users globally, please let me know. Join us, the water is warm!