Permessi di Accesso e Privacy — uno degli ambiti più importanti e in rapida evoluzione dello sviluppo mobile. Secondo le Apple Developer Guidelines (2025), dall'introduzione dell'ATT (App Tracking Transparency) nel 2021, il tasso di consenso degli utenti al tracciamento è di circa il 20%. Analizziamo i modelli di autorizzazione su iOS e Android, i requisiti di privacy (ATT, Privacy Manifest, GDPR) e consigli pratici per la loro implementazione.
Punti Chiave
Modelli di Autorizzazione su iOS e Android condividono un'idea comune: l'utente deve acconsentire all'accesso a dati sensibili (fotocamera, microfono, geolocalizzazione, contatti). Tuttavia, l'implementazione differisce significativamente. Android richiede le autorizzazioni al momento dell'uso (runtime), iOS richiede la descrizione dello scopo in Info.plist e richiede al primo accesso. L'implementazione corretta dei permessi di accesso in un'applicazione mobile è la base della sicurezza e della fiducia.
Prima di Android 6.0 (API 23), tutte le autorizzazioni venivano richieste all'installazione — l'utente accettava tutte o non installava l'app. Con Android 6.0 sono arrivate le Runtime Permissions: l'app richiede l'autorizzazione al momento del primo bisogno e l'utente può negarla. iOS utilizza un approccio simile da iOS 8.0. Conoscere l'evoluzione dei permessi di accesso nello sviluppo mobile aiuta a progettare un'esperienza utente intuitiva.
In IT Sectr seguiamo il principio dei «permessi minimi»: richiediamo solo ciò che è realmente necessario e solo quando è necessario. Questo aumenta la fiducia degli utenti: secondo Google (2025), le app che richiedono più di 5 autorizzazioni al primo avvio hanno un tasso di conversione alla registrazione inferiore del 30%. Questo modello di permessi di accesso nelle app mobili è confermato dalla nostra pratica.
| Parametro | iOS | Android |
|---|---|---|
| Meccanismo | Richiesta al primo accesso alla risorsa | Richiesta al primo accesso (Runtime Permission) |
| Descrizione dello scopo | Info.plist (Privacy — Usage Description) | shouldShowRequestPermissionRationale (opzionale) |
| Revoca dell'autorizzazione | Impostazioni → Privacy | Impostazioni → App → Autorizzazioni |
| Raggruppamento | No (ogni autorizzazione separatamente) | Permission Groups (es. STORAGE) |
| ID pubblicitario | IDFA (richiede ATT) | GAID / AAID (Google Play Services) |
| Privacy | Privacy Manifest (dal 2024) | Data Safety Section (Google Play) |
Tabella 4. Confronto dei modelli di autorizzazione iOS e Android. La differenza principale: iOS richiede una descrizione testuale esplicita dello scopo di ogni autorizzazione in Info.plist. Android offre shouldShowRequestPermissionRationale per spiegare all'utente perché è necessaria l'autorizzazione. Comprendere le differenze nei diritti di accesso tra le piattaforme aiuta a scegliere il modello giusto.
Normal Permissions — autorizzazioni che non rappresentano una minaccia per la privacy dell'utente. Vengono concesse automaticamente all'installazione: INTERNET, ACCESS_NETWORK_STATE, VIBRATE, BLUETOOTH. Lo sviluppatore non deve richiederle nel codice. Questa classificazione dei permessi di accesso corrisponde al livello di rischio per la privacy.
Dangerous Permissions — autorizzazioni che richiedono l'accesso a dati personali: CAMERA, RECORD_AUDIO, ACCESS_FINE_LOCATION, READ_CONTACTS, READ_CALENDAR, READ_EXTERNAL_STORAGE. Richiedono una richiesta runtime. Permission Group — gruppo di autorizzazioni correlate: se l'utente ha permesso CAMERA, l'autorizzazione per registrare video (RECORD_AUDIO? no, è un gruppo separato) — no, CAMERA e RECORD_AUDIO sono in gruppi diversi.
Runtime Permission — chiamare ActivityCompat.requestPermissions() su Android o richiedere tramite CLLocationManager.requestWhenInUseAuthorization() su iOS. L'utente può rispondere: Grant (concedere), Deny (negare) o «Non chiedere più» (su Android dopo due rifiuti). La configurazione dei permessi di accesso in un'applicazione mobile richiede di considerare il comportamento dell'utente.
Runtime Permission su Android richiede di verificare lo stato corrente prima di ogni utilizzo. Il metodo shouldShowRequestPermissionRationale() restituisce true se l'utente ha già negato — questo è un segnale per mostrare un dialogo con spiegazione. Su iOS, l'equivalente è il controllo dello stato: .notDetermined, .denied, .authorized, .restricted. La privacy dell'applicazione mobile richiede un monitoraggio costante dello stato delle autorizzazioni.
// Kotlin — richiesta runtime dell'autorizzazione per la fotocamera
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("È necessario l'accesso alla fotocamera per scansionare i codici 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()
}
}
}
Questo codice mostra il pattern corretto: verificare lo stato → mostrare spiegazione (se necessario) → richiedere autorizzazione → gestire il risultato. shouldShowRequestPermissionRationale è un metodo importante: se l'utente ha già negato, mostrare un dialogo che spiega perché è necessaria l'autorizzazione. Senza questo, l'utente potrebbe negare permanentemente l'accesso.
ATT (App Tracking Transparency) — un framework Apple (iOS 14.5+) che richiede il consenso esplicito dell'utente per il tracciamento. Senza consenso, l'IDFA (Identifier for Advertisers) restituisce zeri. Secondo Flurry (2025), il tasso di accettazione dell'ATT è del 15–25% a seconda della regione e del tipo di app. La gestione dei permessi di accesso in un'applicazione mobile inizia con la scelta del framework giusto.
Privacy Manifest — un file obbligatorio (dal 2024 per le nuove app, dal 2025 per gli aggiornamenti) in cui lo sviluppatore dichiara quali tipi di dati l'app raccoglie e per quali scopi. Apple verifica la conformità del Privacy Manifest con il comportamento effettivo dell'app durante la revisione. La privacy in un'applicazione mobile deve essere documentata.
ATT richiede di aggiungere la chiave Info.plist NSUserTrackingUsageDescription con una descrizione del motivo del tracciamento e chiamare ATTrackingManager.requestTrackingAuthorization(). Importante: bisogna richiedere l'ATT prima di mostrare il consenso GDPR? No, l'ATT è una richiesta separata di Apple. Nell'UE, mostrare prima il banner GDPR, poi l'ATT. I permessi di accesso in un'applicazione mobile su iOS richiedono una configurazione obbligatoria dell'ATT.
L'IDFA è utilizzato per l'attribuzione pubblicitaria e la personalizzazione. Su Android, l'equivalente è GAID (Google Advertising ID) o AAID (Amazon Advertising ID). Da Android 13+, esiste un'autorizzazione runtime per accedere al GAID (com.google.android.gms.permission.AD_ID). La privacy dell'applicazione mobile richiede il controllo sugli identificatori pubblicitari.
GDPR (Regolamento Generale sulla Protezione dei Dati) — regolamento UE in vigore da maggio 2018. Richiede: consenso esplicito per la raccolta di dati personali, diritto di gestire i permessi di accesso, diritto di cancellare i dati (diritto all'oblio), notifica di violazione dei dati e nomina di un DPO (Data Protection Officer) per le grandi aziende. Il regolamento definisce anche un modello trasparente di permessi di accesso nelle app mobili.
Per le app mobili, il GDPR significa: mostrare un banner di consenso al primo avvio (con una descrizione chiara di quali dati vengono raccolti e per quali scopi), la possibilità di rifiutare autorizzazioni non essenziali e un pulsante «Elimina account» nelle impostazioni. Strumenti GDPR popolari: OneTrust, la piattaforma di gestione del consenso (CMP) di Google, Usercentrics. Garantire la privacy in un'applicazione mobile richiede l'integrazione CMP.
In IT Sectr implementiamo il consenso GDPR durante l'onboarding: l'utente vede una descrizione chiara, sceglie quali dati consentire di raccogliere e può modificare la scelta nelle impostazioni. Questo non è solo un requisito legale ma anche un fattore di fiducia: le app trasparenti hanno una fidelizzazione superiore del 20% (dati IT Sectr, 2024). La privacy dell'app mobile e la gestione dei permessi di accesso sono fattori chiave per la fidelizzazione degli utenti.
Consenso deve essere: libero (no significa no), specifico (non si può raccogliere il consenso «per tutto»), informato (l'utente sa a cosa sta acconsentendo) e inequivocabile (è necessaria un'azione attiva — casella di spunta, pulsante). Le caselle pre-spuntate sono vietate dal GDPR. Le sanzioni per violazione possono arrivare fino al 4% del fatturato globale o 20 milioni di euro. La corretta configurazione dei permessi di accesso in un'applicazione mobile aiuta a evitare sanzioni.
Basato sull'esperienza di IT Sectr — diversi consigli pratici per lavorare con autorizzazioni e privacy. Richiedere le autorizzazioni nel contesto: mostrare una schermata che spiega perché è necessaria l'autorizzazione prima del dialogo di sistema. Ad esempio, prima di richiedere la fotocamera, mostrare: «Abbiamo bisogno dell'accesso alla fotocamera per scansionare i codici QR» — questo aumenta la probabilità di consenso del 40%. I permessi di accesso nelle app mobili dovrebbero essere richiesti nel contesto di utilizzo.
Non richiedere tutte le autorizzazioni al primo avvio. La richiesta contestuale di autorizzazione (richiesta al momento dell'uso) offre una conversione superiore del 60% rispetto alla richiesta durante l'onboarding. Gestire il rifiuto con garbo: se l'utente rifiuta, non bloccare la funzionalità ma offrire un'alternativa (ad esempio, inserimento manuale dell'indirizzo invece della geolocalizzazione). La privacy nell'app mobile trae vantaggio da questo approccio.
Per iOS, assicurarsi di aggiungere un Privacy Manifest (obbligatorio per tutte le app dal 2025). Per Android, specificare la sezione sulla sicurezza dei dati in Google Play Console. Memorizzare lo stato di tutte le autorizzazioni localmente e sincronizzarlo con le impostazioni di sistema. Verificare regolarmente la conformità — la legislazione cambia rapidamente. Il modello di permessi di accesso e la privacy dell'applicazione mobile richiedono un audit costante.
Domande Frequenti
ATT è un framework Apple (iOS 14.5+) che richiede una richiesta esplicita per tracciare l'utente. Senza consenso, l'IDFA restituisce zeri. La richiesta ATT deve contenere una descrizione chiara dello scopo del tracciamento. Il tasso di accettazione è del 15–25% a seconda dell'app. I permessi di accesso in un'applicazione mobile su iOS richiedono una descrizione chiara dello scopo del tracciamento.
Normal Permissions vengono concesse automaticamente all'installazione — nessuna richiesta necessaria (INTERNET, VIBRATE). Dangerous Permissions richiedono una richiesta runtime (CAMERA, LOCATION, MICROPHONE) — l'utente può negare in qualsiasi momento. Normal non influisce sulla privacy; Dangerous fornisce l'accesso ai dati personali.
GDPR richiede: consenso esplicito per la raccolta dati, possibilità di eliminare account e dati, notifiche di violazione. Per le app: banner di consenso al primo avvio, descrizione chiara degli scopi della raccolta dati, pulsante «Elimina account» nelle impostazioni, inclusa la gestione dei permessi di accesso. Sanzione — fino al 4% del fatturato.
IDFA (Identifier for Advertisers) è un identificatore pubblicitario unico del dispositivo su iOS. Viene utilizzato per il targeting pubblicitario e l'attribuzione delle installazioni. Da iOS 14.5, per accedere all'IDFA è necessario il consenso tramite ATT. Su Android, l'equivalente è GAID (Google Advertising ID). La privacy dell'applicazione mobile richiede il controllo sugli identificatori pubblicitari.
Riepilogo
Svilupperemo un'applicazione mobile chiavi in mano
IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.