# Permission request

> A permission request is the system alert that asks for access to data or a device feature, such as the camera or location. Both platforms ask the design to request it only when the feature needs it.

Page: https://www.appetiteui.com/glossary/permission-request. Permission request design: asking in context on iOS and Android. Also called Permission prompt, Access request, Runtime permission.

## Why it matters

Asking for access before people show interest in a feature makes it hard to trust the app. A person who denies can still use the app if it degrades gracefully.

The alert is the system’s. A design controls the moment and the explanation, not the dialog.

## iOS and Android

|  | iOS | Android (Material 3) | Appetite UI |
| --- | --- | --- | --- |
| Name | Requesting permission, with a purpose description | Runtime permissions, requested in context | Permission Alert, Alert and Modal |
| When to ask | Only when the app clearly needs access | In context, when the person starts the feature | See below |
| Explanation | Your description appears in the alert; viewable in Settings > Privacy | An optional educational screen that can be cancelled | See below |

## In Appetite UI

Permission Alert draws the iOS system dialog in six kinds: Photos, Tracking, Camera, Microphone, Contacts and Location. The explanation before it can be a Modal or Alert, and a denial leaves an empty state.

## Example

A scanner app opens its camera view and the system asks for camera access at that moment. If denied, the view explains how to enable it and offers manual entry.

## Common mistakes

- Asking for every permission on first launch.
- A purpose description that does not say why.
- Blocking the app after a denial.
- Asking for more data than the feature needs.

## Questions

### When should an app ask for permission?

In context, when the person starts the feature that needs it. Apple says to request only when the app clearly needs access, and Android asks for the same.

### What happens when people say no?

The app should degrade gracefully, for example by disabling the feature, so people can keep using it.

## Sources

1. [Apple Human Interface Guidelines: Privacy](https://developer.apple.com/design/human-interface-guidelines/privacy)
2. [Android Developers: Request runtime permissions](https://developer.android.com/training/permissions/requesting)

## Related

- Docs: [Alert](https://www.appetiteui.com/docs/alert)
- Docs: [Onboarding app screens](https://www.appetiteui.com/docs/screens-onboarding)
- Article: [Mobile onboarding screen patterns for iOS and Android](https://www.appetiteui.com/blog/mobile-onboarding-screen-patterns)
- Glossary: [Alert dialog](https://www.appetiteui.com/glossary/alert-dialog)
- Glossary: [Onboarding](https://www.appetiteui.com/glossary/onboarding)
- Glossary: [Empty state](https://www.appetiteui.com/glossary/empty-state)
