Přístupová oprávnění a soukromí v mobilním vývoji: co to je, jaké mechanismy a jak nakonfigurovat

Autor: IT Sectr Publikováno: 2026-05-17 Doba čtení: 11 min

Přístupová oprávnění a soukromí — jedna z nejdůležitějších a nejrychleji se měnících oblastí mobilního vývoje. Podle Apple Developer Guidelines (2025) je od zavedení ATT (App Tracking Transparency) v roce 2021 míra souhlasu uživatelů se sledováním přibližně 20%. Pojďme prozkoumat modely oprávnění na iOS a Android, požadavky na ochranu soukromí (ATT, Privacy Manifest, GDPR) a praktické tipy pro jejich implementaci.

Hlavní body

  • Runtime Permission — žádost o oprávnění během běhu aplikace (Android 6.0+, iOS 8.0+). Uživatel může odmítnout nebo poskytnout přístup.
  • Android: Normal Permission (automaticky), Dangerous Permission (vyžaduje runtime žádost). Permission Group sdružuje související oprávnění.
  • iOS: ATT (App Tracking Transparency) — žádost o sledování IDFA. Privacy Manifest — popis typů sbíraných dat. Info.plist Usage Description — popis účelu použití každého oprávnění.
  • GDPR (Obecné nařízení o ochraně osobních údajů) — evropské nařízení o ochraně osobních údajů. Vyžaduje výslovný souhlas uživatele se shromažďováním osobních údajů.
  • IDFA (iOS) a GAID/AAID (Android) — reklamní identifikátory používané pro cílení a atribuci. Pro přístup k IDFA je vyžadován ATT.

Modely oprávnění na iOS a Android

Modely oprávnění na iOS a Android sdílejí společnou myšlenku: uživatel musí souhlasit s přístupem k citlivým údajům (kamera, mikrofon, geolokace, kontakty). Implementace se však výrazně liší. Android žádá o oprávnění v okamžiku použití (runtime), iOS vyžaduje popis účelu v Info.plist a žádá při prvním přístupu. Správná implementace přístupových oprávnění v mobilní aplikaci je základem bezpečnosti a důvěry.

Před Androidem 6.0 (API 23) byla všechna oprávnění vyžadována při instalaci — uživatel buď všechna přijal, nebo aplikaci nenainstaloval. S Androidem 6.0 byla zavedena Runtime Permissions: aplikace žádá o oprávnění v okamžiku první potřeby a uživatel může odmítnout. iOS používá podobný přístup od iOS 8.0. Pochopení vývoje přístupových oprávnění v mobilním vývoji pomáhá navrhovat intuitivní UX.

V IT Sectr se řídíme principem «minimálních oprávnění»: žádáme pouze o to, co je skutečně potřeba, a pouze tehdy, když je to nutné. To zvyšuje důvěru uživatelů: podle Google (2025) mají aplikace, které při prvním spuštění požadují více než 5 oprávnění, o 30% nižší míru konverze registrace. Tento model přístupových oprávnění v mobilních aplikacích potvrzuje naše praxe.

Parametr iOS Android
MechanismusŽádost při prvním přístupu ke zdrojiŽádost při prvním přístupu (Runtime Permission)
Popis účeluInfo.plist (Privacy — Usage Description)shouldShowRequestPermissionRationale (volitelné)
Odvolání oprávněníNastavení → SoukromíNastavení → Aplikace → Oprávnění
SdružováníNe (každé oprávnění zvlášť)Permission Groups (např. STORAGE)
Reklamní IDIDFA (vyžaduje ATT)GAID / AAID (Google Play Services)
SoukromíPrivacy Manifest (od 2024)Data Safety Section (Google Play)

Tabulka 4. Srovnání modelů oprávnění iOS a Android. Hlavní rozdíl: iOS vyžaduje výslovný textový popis účelu použití každého oprávnění v Info.plist. Android nabízí shouldShowRequestPermissionRationale k vysvětlení uživateli, proč je oprávnění potřeba. Pochopení rozdílů v přístupových právech mezi platformami pomáhá vybrat správný model.

Typy oprávnění (Normal, Dangerous, Runtime)

Normal Permissions — oprávnění, která nepředstavují hrozbu pro soukromí uživatele. Udělují se automaticky při instalaci: INTERNET, ACCESS_NETWORK_STATE, VIBRATE, BLUETOOTH. Vývojář je nemusí žádat v kódu. Tato klasifikace přístupových oprávnění odpovídá úrovni rizika pro soukromí.

Dangerous Permissions — oprávnění vyžadující přístup k osobním údajům: CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, READ_CONTACTS, READ_CALENDAR, READ_EXTERNAL_STORAGE. Vyžadují runtime žádost. Permission Group — skupina souvisejících oprávnění: pokud uživatel povolil CAMERA, oprávnění k nahrávání videa (RECORD_AUDIO? ne, to je samostatná skupina) — ne, CAMERA a RECORD_AUDIO jsou v různých skupinách.

Runtime Permission — volání ActivityCompat.requestPermissions() na Androidu nebo žádost přes CLLocationManager.requestWhenInUseAuthorization() na iOS. Uživatel může odpovědět: Grant (povolit), Deny (odmítnout) nebo «Neptat se znovu» (na Androidu po dvou odmítnutích). Konfigurace přístupových oprávnění v mobilní aplikaci vyžaduje zohlednění chování uživatele.

Runtime Permission

Runtime Permission na Androidu vyžaduje kontrolu aktuálního stavu před každým použitím. Metoda shouldShowRequestPermissionRationale() vrací true, pokud uživatel již odmítl — to je signál k zobrazení dialogu s vysvětlením. Na iOS je ekvivalentem kontrola stavu: .notDetermined, .denied, .authorized, .restricted. Soukromí mobilní aplikace vyžaduje neustálé monitorování stavu oprávnění.

kotlin
// Kotlin — žádost o runtime oprávnění pro kameru
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("Pro skenování QR kódů je vyžadován přístup ke kameře")
            }
            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()
        }
    }
}

Tento kód ukazuje správný vzor: zkontroluj stav → zobraz vysvětlení (pokud je potřeba) → požádej o oprávnění → zpracuj výsledek. shouldShowRequestPermissionRationale je důležitá metoda: pokud uživatel již odmítl, zobrazte dialog vysvětlující, proč je oprávnění potřeba. Bez toho může uživatel trvale odmítnout přístup.

Soukromí (ATT, Privacy Manifest, IDFA)

ATT (App Tracking Transparency) — framework Apple (iOS 14.5+), který vyžaduje výslovný souhlas uživatele se sledováním. Bez souhlasu vrací IDFA (Identifier for Advertisers) nuly. Podle Flurry (2025) je míra přijetí ATT 15–25% v závislosti na regionu a typu aplikace. Správa přístupových oprávnění v mobilní aplikaci začíná výběrem správného frameworku.

Privacy Manifest — povinný soubor (od 2024 pro nové aplikace, od 2025 pro aktualizace), ve kterém vývojář deklaruje, jaké typy dat aplikace shromažďuje a pro jaké účely. Apple během recenze kontroluje soulad Privacy Manifest se skutečným chováním aplikace. Soukromí v mobilní aplikaci musí být zdokumentováno.

App Tracking Transparency (ATT)

ATT vyžaduje přidání klíče Info.plist NSUserTrackingUsageDescription s popisem, proč je sledování potřeba, a volání ATTrackingManager.requestTrackingAuthorization(). Důležité: máte žádat o ATT před zobrazením souhlasu GDPR? Ne, ATT je samostatná žádost Apple. V EU nejprve zobrazte banner GDPR, poté ATT. Přístupová oprávnění v mobilní aplikaci na iOS vyžadují povinnou konfiguraci ATT.

IDFA se používá pro reklamní atribuci a personalizaci. Na Androidu je ekvivalentem GAID (Google Advertising ID) nebo AAID (Amazon Advertising ID). Od Androidu 13+ existuje runtime oprávnění pro přístup k GAID (com.google.android.gms.permission.AD_ID). Soukromí mobilní aplikace vyžaduje kontrolu nad reklamními identifikátory.

GDPR a souhlas uživatele

GDPR (Obecné nařízení o ochraně osobních údajů) — nařízení EU platné od května 2018. Vyžaduje: výslovný souhlas se shromažďováním osobních údajů, právo na správu přístupových oprávnění, právo na výmaz údajů (právo být zapomenut), oznámení o porušení zabezpečení údajů a jmenování DPO (pověřence pro ochranu osobních údajů) pro velké společnosti. Nařízení také definuje transparentní model přístupových oprávnění v mobilních aplikacích.

Pro mobilní aplikace GDPR znamená: zobrazení banneru souhlasu při prvním spuštění (s jasným popisem, jaké údaje jsou shromažďovány a pro jaké účely), možnost odmítnout nepovinná oprávnění a tlačítko «Smazat účet» v nastavení. Populární nástroje GDPR: OneTrust, platforma pro správu souhlasu (CMP) od Googlu, Usercentrics. Zajištění soukromí v mobilní aplikaci vyžaduje integraci CMP.

V IT Sectr implementujeme souhlas GDPR během onboardingu: uživatel vidí jasný popis, vybírá, která data může shromažďovat, a může svou volbu změnit v nastavení. To není jen právní požadavek, ale také faktor důvěry: transparentní aplikace mají o 20% vyšší retenci (data IT Sectr, 2024). Soukromí mobilní aplikace a správa přístupových oprávnění jsou klíčovými faktory udržení uživatelů.

Souhlas musí být: dobrovolný (ne znamená ne), konkrétní (nelze shromažďovat souhlas «pro všechno»), informovaný (uživatel ví, k čemu dává souhlas) a jednoznačný (vyžaduje se aktivní akce — zaškrtávací políčko, tlačítko). Předem zaškrtnutá políčka jsou GDPR zakázána. Pokuty za porušení — až 4% globálního obratu nebo 20 milionů eur. Správná konfigurace přístupových oprávnění v mobilní aplikaci pomáhá vyhnout se pokutám.

Praktické tipy

Na základě zkušeností IT Sectr — několik praktických doporučení pro práci s oprávněními a soukromím. Žádejte o oprávnění v kontextu: zobrazte obrazovku, která vysvětluje, proč je oprávnění potřeba, před systémovým dialogem. Například před žádostí o kameru zobrazte: «Potřebujeme přístup ke kameře pro skenování QR kódů» — to zvyšuje pravděpodobnost souhlasu o 40%. Přístupová oprávnění v mobilních aplikacích by měla být vyžadována v kontextu použití.

Nežádejte o všechna oprávnění při prvním spuštění. Kontextová žádost o oprávnění (žádost v okamžiku použití) poskytuje o 60% vyšší konverzi než žádost během onboardingu. Odmítnutí zpracujte s grácií: pokud uživatel odmítne, neblokujte funkčnost, ale nabídněte alternativu (např. ruční zadání adresy místo geolokace). Soukromí v mobilní aplikaci z tohoto přístupu těží.

Pro iOS nezapomeňte přidat Privacy Manifest (od 2025 povinný pro všechny aplikace). Pro Android uveďte sekci bezpečnosti údajů v Google Play Console. Ukládejte stav všech oprávnění lokálně a synchronizujte s nastavením systému. Pravidelně kontrolujte shodu — legislativa se rychle mění. Model přístupových oprávnění a soukromí mobilní aplikace vyžaduje neustálý audit.

Často kladené otázky

Co je ATT (App Tracking Transparency)?

ATT je framework Apple (iOS 14.5+), který vyžaduje výslovnou žádost o sledování uživatele. Bez souhlasu vrací IDFA nuly. Žádost ATT musí obsahovat jasný popis účelu sledování. Míra přijetí je 15–25% v závislosti na aplikaci. Přístupová oprávnění v mobilní aplikaci na iOS vyžadují jasný popis účelu sledování.

Jaký je rozdíl mezi Normal a Dangerous Permission na Androidu?

Normal Permissions se udělují automaticky při instalaci — není vyžadována žádost (INTERNET, VIBRATE). Dangerous Permissions vyžadují runtime žádost (CAMERA, LOCATION, MICROPHONE) — uživatel může kdykoli odmítnout. Normal neovlivňuje soukromí; Dangerous poskytuje přístup k osobním údajům.

Jak GDPR ovlivňuje mobilní aplikace?

GDPR vyžaduje: výslovný souhlas se shromažďováním údajů, možnost smazat účet a údaje, oznámení o narušení. Pro aplikace: banner souhlasu při prvním spuštění, jasný popis účelů shromažďování údajů, tlačítko «Smazat účet» v nastavení, včetně správy přístupových oprávnění. Pokuta — až 4% obratu.

Co je IDFA a k čemu slouží?

IDFA (Identifier for Advertisers) je jedinečný reklamní identifikátor zařízení na iOS. Používá se pro cílení reklam a atribuci instalací. Od iOS 14.5 je pro přístup k IDFA vyžadován souhlas prostřednictvím ATT. Na Androidu je ekvivalentem GAID (Google Advertising ID). Soukromí mobilní aplikace vyžaduje kontrolu nad reklamními identifikátory.

Shrnutí

  • Runtime Permission — moderní model žádosti o oprávnění «v okamžiku použití», ne při instalaci. Zvyšuje důvěru uživatelů.
  • Android: oprávnění Normal (automatická) a Dangerous (runtime). Permission Groups pro sdružování. shouldShowRequestPermissionRationale pro vysvětlení.
  • iOS: ATT (App Tracking Transparency) pro IDFA. Privacy Manifest (povinný od 2025). Usage Description v Info.plist pro každé oprávnění.
  • GDPR — evropské nařízení: výslovný souhlas, právo na výmaz, transparentnost. Pokuty až 4% obratu. Nástroje: OneTrust, Google CMP.
  • IDFA (iOS) a GAID/AAID (Android) — reklamní identifikátory. ATT vyžadován pro IDFA (míra přijetí 15–25%).
  • Nejlepší postupy: kontextové žádosti (o 60% vyšší konverze), elegantní zpracování odmítnutí, Privacy Manifest, pravidelný audit shody.
  • Přístupová oprávnění v mobilní aplikaci a soukromí — základ důvěry uživatelů. Transparentní aplikace mají o 20% vyšší retenci (data IT Sectr, 2024).

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt