Запросы разрешений в iOS: плохие, хорошие и отличные примеры
Семь запросов разрешений в iOS, переписанных из «нужно для лучшего опыта» в одно предложение: что делает приложение, когда и чем это полезно. Примеры от самой Apple, формула и чек-лист.

Когда приложение просит доступ к камере, микрофону или Face ID, заголовок и две кнопки пишет iOS. Единственная строка, которую пишет приложение, это причина, и большинство приложений её тратят впустую. Ниже семь запросов разрешений, поднятых от плохого к отличному, причина каждой ступени и формула для вашего следующего запроса.
Что пишете вы и что пишет iOS
У системного алерта фиксированная форма. iOS задаёт заголовок («Хочет получить доступ к камере») и кнопки. Приложение добавляет одно предложение, purpose string, которое объясняет, зачем нужен доступ. Оно хранится в ключе Info.plist приложения (NSCameraUsageDescription для камеры, NSMicrophoneUsageDescription для микрофона) и повторно показывается в Настройках в разделе «Конфиденциальность».
Плохо

Отлично

У обоих алертов одинаковые заголовок и кнопки. Изменилось только одно предложение. Плохое говорит людям, что делать с переключателем, который их только что попросили переключить. Отличное говорит, что произойдёт после нажатия «Скан», и вопрос «зачем бухгалтерскому приложению моя камера?» получает ответ раньше, чем прозвучит.
Рекомендация Apple для этого предложения короткая: краткое законченное предложение, прямое, конкретное и понятное, в обычном регистре, в активном залоге, с точкой в конце. Все отличные строки ниже ей следуют.
Ступень за ступенью
| Ступень | Что делает строка | Что она всё ещё упускает |
|---|---|---|
| Плохо | Даёт команду или говорит, что доступ «нужен» | Что делает функция, когда, чем полезна |
| Хорошо | Говорит, для чего доступ | Когда это происходит и какая выгода |
| Отлично | Говорит, что делает приложение, когда и чем это полезно | Ничего из того, что нужно для решения |
1. Камера
Плохо
Включите доступ к камере.
Приказ без причины. Повторяет заголовок самого алерта.Хорошо
Мы используем камеру для сканирования чеков.
Называет задачу. Но люди всё ещё не знают, когда откроется камера.Отлично
Когда вы нажмёте «Скан», мы считаем итог, и вам не придётся вводить его вручную.
Привязывает доступ к моменту (нажатие «Скан») и к выгоде (не нужно печатать). Камера никогда не включится неожиданно.
Tidybooks это выдуманное приложение. Apple советует запрашивать доступ, когда человек пользуется функцией, которой он нужен, поэтому лучший момент для этого запроса это первое нажатие на «Скан», а не первый запуск.
2. Микрофон
Здесь плохая и отличная строки принадлежат самой Apple, слово в слово, из её рекомендаций по приватности.
Плохой пример Apple

Отличный пример Apple

Плохо
Доступ к микрофону нужен для лучшего опыта.
Пассивно и расплывчато. «Лучший опыт» может значить что угодно, а «нужен» звучит как требование.Хорошо
Мы слушаем, чтобы определить храп.
Активно и говорит, зачем. Но не говорит, когда и что это происходит ночью.Отлично
Приложение записывает звук ночью, чтобы определить храп.
Активно, говорит как (записывает), когда (ночью) и зачем (определить храп). Прочитавший точно знает, с чем соглашается.
Nightly это выдуманное приложение. Урок в глаголах: «нужен» прячет, кто что делает, а «записывает ночью» говорит прямо. Честность насчёт записи как раз и заставляет людей нажимать «Разрешить».
3. Bluetooth
Плохо
Требуется Bluetooth.
Констатация факта, а не причина. Кому требуется и зачем?Хорошо
Мы используем Bluetooth, чтобы открыть ваш замок.
Называет устройство и задачу.Отлично
Когда вы подходите, мы отпираем дверь, и ключ вам не нужен.
Говорит момент (когда подходите) и выгоду (без ключа). Слово Bluetooth уже есть в системном заголовке.
Doorkey Home это выдуманное приложение. Заметьте, что отличная строка не повторяет заголовок. iOS уже пишет «Хочет использовать Bluetooth», поэтому предложение тратит слова на причину.
4. Face ID
Плохо
Включите Face ID.
Повелительное наклонение без причины, той же формы, что и пример Apple «Включите доступ к микрофону.»Хорошо
Используйте Face ID, чтобы входить быстрее.
Даёт выгоду. Но молчит о том, что именно защищает Face ID.Отлично
Face ID разблокирует приложение при открытии, чтобы ваши деньги видели только вы.
Говорит когда (при открытии) и что защищает (ваши деньги). Не обещает ничего сверх разблокировки приложения, ведь Face ID лишь сообщает приложению, прошло ли сопоставление.
Northbank это выдуманное банковское приложение. Текст о безопасности должен описывать только то, что функция действительно делает. Строка, обещающая больше, чем даёт проверка, хуже скучной.
5. Фото
Плохо
Требуется доступ к фото.
Та же проблема «требуется», что и у Bluetooth, и звучит как угроза.Хорошо
Мы сохраняем ваши правки в вашу медиатеку.
Говорит, что происходит с фото.Отлично
Когда вы нажмёте «Экспорт», мы сохраним фото, чтобы вы могли им поделиться.
Привязывает сохранение к нажатию «Экспорт» и даёт причину (поделиться).
Filmstrip это выдуманный фоторедактор. Заголовок, который iOS пишет здесь, «Хочет добавлять в ваши фото», это узкое разрешение только на запись. Предложение должно читаться так же: оно сохраняет, а не просматривает.
Ещё два, написанных с нуля
Те же правила работают в ситуациях, которых не покрывают пять выше. Эти два примера наши собственные, с выдуманными приложениями.
Плохо
Геолокация нужна для лучшего опыта.
Та же пустая фраза, что в примере с микрофоном, только с другим разрешением.Хорошо
Мы используем вашу геолокацию, чтобы находить рестораны.
Говорит, для чего доступ.Отлично
Когда вы открываете приложение, мы показываем рестораны, которые доставляют к вашей двери.
Говорит когда (при открытии) и результат (только места, которые доставляют вам).
Плохо
Разрешите доступ к вашим контактам.
Команда, которая звучит так, будто приложение хочет прочитать всех, кого вы знаете.Хорошо
Мы используем ваши контакты, чтобы находить друзей.
Называет применение, но «находить друзей» может означать выгрузку списка.Отлично
Когда вы нажмёте «Добавить друга», мы предложим людей из ваших контактов, чтобы вы могли разделить счёт.
Привязывает доступ к нажатию и к задаче. Задаёт ожидание, что подсказки появляются по запросу.
Формула: что делает, когда, чем полезно
Каждая отличная строка выше укладывается в одни и те же три части одного предложения:
[What it does.] [When it happens.] [Why it helps.]
| Запрос | Что делает | Когда | Чем полезно |
|---|---|---|---|
| Камера | Мы считаем итог | Когда вы нажмёте «Скан» | Не нужно вводить вручную |
| Микрофон | Приложение записывает звук | Ночью | Чтобы определить храп |
| Bluetooth | Мы отпираем дверь | Когда вы подходите | Ключ не нужен |
| Face ID | Face ID разблокирует приложение | При открытии | Ваши деньги видите только вы |
| Фото | Мы сохраняем фото | Когда вы нажмёте «Экспорт» | Вы можете им поделиться |
«Когда» это часть, которую команды выбрасывают первой, и именно она делает доступ безопасным на вид: она обещает, что приложение не станет действовать в момент, который человек не выбирал.
Чек-лист для вашего следующего запроса
- Одно предложение, активный залог, точка в конце. Это планка самой Apple.
- Называйте причину, а не разрешение. iOS уже напечатала «Доступ к камере».
- Назовите момент. Нажатие, время суток, первое открытие функции.
- Просите, когда функции это нужно. Не при первом запуске, если только сама функция не первый запуск.
- Никаких «нужно», «требуется» и «лучший опыт». Они звучат как требования и ничего не говорят.
- Обещайте только то, что функция делает. Если она лишь разблокирует приложение, так и скажите.
- Прочитайте её и в Настройках. Та же строка появляется в разделе «Конфиденциальность», вне контекста.
FAQ
Что такое purpose string в iOS?
Это одно предложение, которое приложение предоставляет, чтобы объяснить, зачем ему доступ к чему-то приватному, например к камере или микрофону. Оно хранится в Info.plist приложения под ключами вроде NSCameraUsageDescription и показывается в системном алерте и в Настройках в разделе «Конфиденциальность».
Как написать хороший текст запроса разрешения?
Напишите одно краткое предложение в активном залоге с точкой в конце, которое говорит, что делает функция, когда это происходит и чем это полезно. «Когда вы нажмёте «Скан», мы считаем итог, и вам не придётся вводить его вручную.» это пример такой формы.
Какие бывают примеры плохих запросов разрешений?
Расплывчатые или пассивные строки без причины: «Доступ к микрофону нужен для лучшего опыта.», «Включите доступ к камере.», «Требуется Bluetooth.» и «Включите Face ID.» Каждая говорит, чего хочет приложение, и ни разу не говорит зачем.
Кто пишет заголовок и кнопки алерта разрешения в iOS?
iOS. Она пишет заголовок и кнопки, поэтому единственный текст, который вы контролируете, это purpose string. Поэтому одно предложение должно нести всю причину целиком.
Когда приложению стоит запрашивать разрешение?
Когда человек пользуется функцией, которой оно нужно, и не раньше. Рекомендация Apple: запрашивать доступ только тогда, когда приложению он явно нужен, поэтому запрос камеры место при первом нажатии «Скан».
Источники
- Privacy: Requesting permission, Apple Human Interface Guidelines. Источник двух строк про микрофон, рекомендации про «краткое законченное предложение» и совета просить в контексте.
- Requesting authorization to capture and save media, документация Apple AVFoundation.
- Writing, Apple Human Interface Guidelines.
- Ключи Info.plist, использованные выше:
NSCameraUsageDescription,NSMicrophoneUsageDescription,NSBluetoothAlwaysUsageDescription,NSFaceIDUsageDescription,NSPhotoLibraryAddUsageDescription, из справочника Apple Information Property List. - Приложения в примерах (Tidybooks, Nightly, Doorkey Home, Northbank, Filmstrip и два новых) выдуманы. Только строки про микрофон принадлежат Apple.
- Впервые опубликовано как карусель в UX Brainy.
Want every permission, onboarding and empty state written and designed as one system? Our team designs app UI with the words in it from the first draft.
Get Started




