Права на достъп и поверителност в мобилното разработване: какво е това, какви механизми и как да конфигурирате

Автор: 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 (Общ регламент за защита на данните) — европейски регламент за защита на данните. Изисква изрично съгласие на потребителя за събиране на лични данни.
  • 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 (Общ регламент за защита на данните) — регламент на ЕС, в сила от май 2018 г. Изисква: изрично съгласие за събиране на лични данни, право на управление на правата на достъп, право на изтриване на данни (право да бъдеш забравен), уведомления за нарушение на данни и назначаване на DPO (служител по защита на данните) за големи компании. Регламентът също така определя прозрачен модел на права на достъп в мобилните приложения.

За мобилните приложения GDPR означава: показване на банер за съгласие при първо стартиране (с ясно описание на това какви данни се събират и за какви цели), възможност за отказ от незадължителни разрешения и бутон «Изтриване на акаунт» в настройките. Популярни инструменти за GDPR: OneTrust, платформата за управление на съгласие (CMP) на Google, Usercentrics. Осигуряването на поверителност в мобилно приложение изисква CMP интеграция.

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

Съгласието трябва да бъде: доброволно (не означава не), конкретно (не може да се събира съгласие „за всичко“), информирано (потребителят знае за какво дава съгласие) и недвусмислено (изисква се активно действие — квадратче за отметка, бутон). Предварително маркираните квадратчета са забранени от GDPR. Глоби за нарушение — до 4% от глобалния оборот или 20 милиона евро. Правилната конфигурация на правата на достъп в мобилно приложение помага да се избегнат глоби.

Практически съвети

Въз основа на опита на IT Sectr — няколко практически препоръки за работа с разрешения и поверителност. Искайте разрешения в контекст: покажете екран, който обяснява защо е необходимо разрешението, преди системния диалог. Например, преди да поискате камера, покажете: «Нуждаем се от достъп до камера за сканиране на QR кодове» — това увеличава вероятността за съгласие с 40%. Правата на достъп в мобилните приложения трябва да се искат в контекста на използване.

Не искайте всички разрешения при първо стартиране. Контекстуалното искане на разрешение (искане в момента на използване) дава 60% по-висока конверсия от искането по време на въвеждане. Обработвайте отказа елегантно: ако потребителят откаже, не блокирайте функционалността, а предложете алтернатива (напр. ръчно въвеждане на адрес вместо геолокация). Поверителността в мобилното приложение печели от този подход.

За iOS не забравяйте да добавите Privacy Manifest (задължително за всички приложения от 2025 г.). За Android посочете секцията за сигурност на данните в 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) — рекламни идентификатори. ATT е необходим за IDFA (степен на приемане 15–25%).
  • Най-добри практики: контекстуални искания (60% по-висока конверсия), елегантно обработване на отказ, Privacy Manifest, редовен одит на съответствието.
  • Права на достъп в мобилно приложение и поверителност — основата на доверието на потребителите. Прозрачните приложения имат 20% по-високо задържане (данни на IT Sectr, 2024).

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

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта