Права доступа и приватность в мобильной разработке: что это, какие механизмы и как настроить

Автор: IT Sectr Опубликовано: 2026-05-17 Время чтения: 11 мин

Права доступа и приватность — одна из самых важных и быстро меняющихся областей мобильной разработки. По данным Apple Developer Guidelines (2025), с момента внедрения ATT (App Tracking Transparency) в 2021 году, уровень согласия пользователей на отслеживание составляет около 20%. Разберём модели разрешений на iOS и Android, требования приватности (ATT, Privacy Manifest, GDPR) и практические советы по их реализации.

Главное

  • Runtime Permission — запрос разрешения во время работы приложения (Android 6.0+, iOS 8.0+). Пользователь может отказать или предоставить доступ.
  • Android: Normal Permission (автоматически), Dangerous Permission (требует runtime-запроса). Permission Group объединяет связанные разрешения.
  • iOS: ATT (App Tracking Transparency) — запрос на отслеживание IDFA. Privacy Manifest — описание типов собираемых данных. Info.plist Usage Description — описание цели использования каждого разрешения.
  • GDPR (General Data Protection Regulation) — европейский регламент защиты данных. Требует явного согласия пользователя на сбор персональных данных.
  • IDFA (iOS) и GAID/AAID (Android) — рекламные идентификаторы, используемые для таргетинга и атрибуции. Для доступа к IDFA требуется ATT.

Модели разрешений на iOS и Android

Модели разрешений на iOS и Android имеют общую идею: пользователь должен дать согласие на доступ к чувствительным данным (камера, микрофон, геолокация, контакты). Однако реализация существенно различается. Android запрашивает разрешения в момент использования (runtime), iOS требует описания цели в Info.plist и запрашивает при первом обращении. Правильная реализация прав доступа в мобильном приложении — основа безопасности и доверия.

До Android 6.0 (API 23) все разрешения запрашивались при установке — пользователь либо принимал все, либо не устанавливал приложение. С Android 6.0 появились Runtime Permissions: приложение запрашивает разрешение в момент первой необходимости, а пользователь может отказать. iOS использует аналогичный подход с iOS 8.0. Знание эволюции прав доступа в мобильной разработке помогает проектировать понятный UX.

В IT Sectr мы следуем принципу «минимальных разрешений»: запрашиваем только то, что действительно нужно, и только в момент, когда это необходимо. Это повышает доверие пользователей: по данным Google (2025), приложения, запрашивающие более 5 разрешений при первом запуске, имеют на 30% ниже конверсию в регистрацию. Эта модель прав доступа в мобильных приложениях подтверждается нашей практикой.

Параметр iOS Android
МеханизмЗапрос при первом обращении к ресурсуЗапрос при первом обращении (Runtime Permission)
Описание целиInfo.plist (Privacy — Usage Description)shouldShowRequestPermissionRationale (опционально)
Отзыв разрешенияНастройки → ПриватностьНастройки → Приложения → Разрешения
ГруппировкаНет (каждое разрешение отдельно)Permission Groups (например, STORAGE)
Рекламный IDIDFA (требуется ATT)GAID / AAID (Google Play Services)
ПриватностьPrivacy Manifest (с 2024)Data Safety Section (Google Play)

Таблица 4. Сравнение моделей разрешений iOS и Android. Главное различие: iOS требует явного текстового описания цели использования каждого разрешения в Info.plist. Android предлагает shouldShowRequestPermissionRationale для объяснения пользователю, зачем нужно разрешение. Понимание различий в правах доступа между платформами помогает выбрать правильную модель.

Типы разрешений (Normal, Dangerous, Runtime)

Normal Permissions — разрешения, которые не представляют угрозы для приватности пользователя. Они предоставляются автоматически при установке: INTERNET, ACCESS_NETWORK_STATE, VIBRATE, BLUETOOTH. Разработчику не нужно запрашивать их в коде. Эта классификация прав доступа соответствует уровню риска для приватности.

Dangerous Permissions — разрешения, требующие доступа к личным данным: CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, READ_CONTACTS, READ_CALENDAR, READ_EXTERNAL_STORAGE. Они требуют runtime-запроса. Permission Group — группа связанных разрешений: если пользователь разрешил CAMERA, разрешение на запись видео (RECORD_AUDIO? нет, это отдельная группа) — нет, CAMERA и RECORD_AUDIO в разных группах.

Runtime Permission — это вызов ActivityCompat.requestPermissions() на Android или запрос через CLLocationManager.requestWhenInUseAuthorization() на iOS. Пользователь может ответить: Grant (разрешить), Deny (запретить) или «Больше не спрашивать» (на Android после двух отказов). Настройка прав доступа в мобильном приложении требует учёта поведения пользователя.

Runtime Permission

Runtime Permission на Android требует проверки текущего статуса перед каждым использованием. Метод shouldShowRequestPermissionRationale() возвращает true, если пользователь уже отказал — это сигнал показать диалог с объяснением. На iOS аналог — проверка статуса: .notDetermined, .denied, .authorized, .restricted. Приватность мобильного приложения требует постоянного мониторинга статуса разрешений.

kotlin
// Kotlin — запрос runtime-разрешения на камеру
class CameraActivity : AppCompatActivity() {

    companion object {
        private const val CAMERA_PERMISSION_CODE = 100
    }

    private fun requestCameraPermission() {
        when {
            ContextCompat.checkSelfPermission(
                this, Manifest.permission.CAMERA
            ) == PackageManager.PERMISSION_GRANTED -> {
                openCamera()
            }
            shouldShowRequestPermissionRationale(Manifest.permission.CAMERA) -> {
                showRationaleDialog("Для сканирования QR-кодов нужен доступ к камере")
            }
            else -> {
                requestPermissions(
                    arrayOf(Manifest.permission.CAMERA),
                    CAMERA_PERMISSION_CODE
                )
            }
        }
    }

    override fun onRequestPermissionsResult(
        requestCode: Int,
        permissions: Array<String>,
        grantResults: IntArray
    ) {
        if (requestCode == CAMERA_PERMISSION_CODE &&
            grantResults.firstOrNull() == PackageManager.PERMISSION_GRANTED
        ) {
            openCamera()
        }
    }
}

Этот код показывает правильный паттерн: проверка статуса → показ объяснения (если нужно) → запрос разрешения → обработка результата. shouldShowRequestPermissionRationale — важный метод: если пользователь уже отказал, покажите диалог с объяснением, зачем нужно разрешение. Без этого пользователь может навсегда запретить доступ.

Приватность (ATT, Privacy Manifest, IDFA)

ATT (App Tracking Transparency) — фреймворк Apple (iOS 14.5+), требующий явного согласия пользователя на отслеживание. Без согласия IDFA (Identifier for Advertisers) возвращает нули. По данным Flurry (2025), уровень согласия на ATT составляет 15–25% в зависимости от региона и типа приложения. Управление правами доступа в мобильном приложении начинается с выбора правильного фреймворка.

Privacy Manifest — обязательный файл (с 2024 года для новых приложений, с 2025 — для обновлений), в котором разработчик декларирует, какие типы данных собирает приложение и для каких целей. Apple проверяет соответствие Privacy Manifest реальному поведению приложения на ревью. Приватность в мобильном приложении должна быть задокументирована.

App Tracking Transparency (ATT)

ATT требует добавить Info.plist-ключ NSUserTrackingUsageDescription с описанием, зачем нужно отслеживание, и вызвать ATTrackingManager.requestTrackingAuthorization(). Важно: запрашивать ATT до показа GDPR-кон-сента? Нет, ATT — это отдельный запрос от Apple. В ЕС сначала покажите GDPR-баннер, затем ATT. Права доступа в мобильном приложении на iOS требуют обязательной настройки ATT.

IDFA используется для рекламной атрибуции и персонализации. На Android аналог — GAID (Google Advertising ID) или AAID (Amazon Advertising ID). С Android 13+ появилось runtime-разрешение для доступа к GAID (com.google.android.gms.permission.AD_ID). Приватность мобильного приложения требует контроля над рекламными идентификаторами.

GDPR и согласие пользователя

GDPR (General Data Protection Regulation) — регламент ЕС, действующий с мая 2018 года. Он требует: явного согласия на сбор персональных данных, права на управление правами доступа, удаление данных (right to be forgotten), уведомления об утечках данных и назначения DPO (Data Protection Officer) для крупных компаний. Регламент также определяет прозрачную модель прав доступа в мобильных приложениях.

Для мобильных приложений GDPR означает: показ баннера согласия при первом запуске (с чётким описанием, какие данные собираются и для каких целей), возможность отказаться от необязательных разрешений, кнопка «Удалить аккаунт» в настройках. Популярные инструменты для GDPR: OneTrust, Consent Management Platform (CMP) от Google, Usercentrics. Обеспечение приватности в мобильном приложении требует интеграции CMP.

В IT Sectr мы внедряем GDPR-согласие на этапе онбординга: пользователь видит понятное описание, выбирает, какие данные разрешает собирать, и может изменить выбор в настройках. Это не только юридическое требование, но и фактор доверия: прозрачные приложения имеют на 20% выше retention (данные IT Sectr, 2024). Приватность мобильного приложения и управление правами доступа — ключевые факторы удержания пользователей.

Согласие должно быть: добровольным (нет — значит нет), конкретным (нельзя собрать согласие «на всё»), информированным (пользователь знает, на что соглашается) и однозначным (нужно активное действие — галочка, кнопка). Предустановленные галочки (pre-ticked consent) запрещены GDPR. Штрафы за нарушение — до 4% глобального оборота или 20 млн евро. Правильная настройка прав доступа в мобильном приложении помогает избежать штрафов.

Практические советы

На основе опыта IT Sectr — несколько практических рекомендаций по работе с разрешениями и приватностью. Запрашивайте разрешения в контексте: покажите экран, который объясняет, зачем нужно разрешение, перед системным диалогом. Например, перед запросом камеры покажите: «Для сканирования QR-кода нам нужен доступ к камере» — это повышает вероятность согласия на 40%. Права доступа в мобильных приложениях должны запрашиваться в контексте использования.

Не запрашивайте все разрешения при первом запуске. Contextual permission request (запрос в момент использования) даёт на 60% выше конверсию, чем запрос при онбординге. Обрабатывайте отказ gracefully: если пользователь отказал, не блокируйте функциональность, а предложите альтернативу (например, ручной ввод адреса вместо геолокации). Приватность в мобильном приложении выигрывает от такого подхода.

Для iOS обязательно добавьте Privacy Manifest (с 2025 — обязательно для всех приложений). Для Android укажите Data Safety Section в Google Play Console. Храните статус всех разрешений локально и синхронизируйте с настройками системы. Регулярно проверяйте соответствие требованиям — законодательство меняется быстро. Модель прав доступа и приватность мобильного приложения требуют постоянного аудита.

Часто задаваемые вопросы

Что такое ATT (App Tracking Transparency)?

ATT — фреймворк Apple (iOS 14.5+), требующий явного запроса на отслеживание пользователя. Без согласия IDFA возвращает нули. Запрос ATT должен содержать понятное описание цели отслеживания. Уровень согласия — 15–25% в зависимости от приложения. Права доступа в мобильном приложении на iOS требуют понятного описания цели отслеживания.

В чём разница между Normal и Dangerous Permission на Android?

Normal Permissions предоставляются автоматически при установке — не требуют запроса (INTERNET, VIBRATE). Dangerous Permissions требуют runtime-запроса (CAMERA, LOCATION, MICROPHONE) — пользователь может отказать в любой момент. Normal не влияет на приватность, Dangerous — доступ к личным данным.

Как GDPR влияет на мобильные приложения?

GDPR требует: явного согласия на сбор данных, возможности удалить аккаунт и данные, уведомления об утечках. Для приложений нужно: баннер согласия при первом запуске, чёткое описание целей сбора данных, кнопка «Удалить аккаунт» в настройках, включая управление правами доступа. Штраф — до 4% оборота.

Что такое IDFA и зачем он нужен?

IDFA (Identifier for Advertisers) — уникальный рекламный идентификатор устройства на iOS. Используется для таргетинга рекламы и атрибуции установок. С iOS 14.5 для доступа к IDFA нужно получить согласие через ATT. На Android аналог — GAID (Google Advertising ID). Приватность мобильного приложения требует контроля над рекламными идентификаторами.

Итоги

  • Runtime Permission — современная модель запроса разрешений «в момент использования», а не при установке. Повышает доверие пользователей.
  • Android: Normal (автоматические) и Dangerous (runtime) разрешения. Permission Groups для группировки. shouldShowRequestPermissionRationale для объяснения.
  • iOS: ATT (App Tracking Transparency) для IDFA. Privacy Manifest (обязателен с 2025). Usage Description в Info.plist для каждого разрешения.
  • GDPR — европейский регламент: явное согласие, право на удаление, прозрачность. Штрафы до 4% оборота. Инструменты: OneTrust, Google CMP.
  • IDFA (iOS) и GAID/AAID (Android) — рекламные идентификаторы. Для IDFA требуется ATT (уровень согласия 15–25%).
  • Лучшие практики: контекстные запросы (на 60% выше конверсия), graceful handling отказа, Privacy Manifest, регулярный аудит соответствия.
  • Права доступа в мобильном приложении и приватность — основа доверия пользователей. Прозрачные приложения имеют retention на 20% выше (данные IT Sectr, 2024).

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект