Permission requests are product flows
A permission request is not just an API call. It is a product flow.
When an application needs the camera, microphone, notifications or location, several outcomes are possible:
- The permission has already been granted
- The user grants it now
- The user denies it
- The permission is permanently blocked
- The device does not support the capability
- The capability is temporarily unavailable
I dealt with this in a project that depended on multiple device capabilities during one workflow.
Rather than requesting everything immediately, I requested each permission when its purpose became clear. When permission was denied, the app explained why it was needed and provided a route to system settings where appropriate. I also made sure the rest of the screen remained understandable when a capability was unavailable.
Good permission UX answers three questions:
- Why do you need this?
- What happens if I decline?
- How can I change my decision later?
Originally shared on LinkedIn.