Notifiche Push nello sviluppo mobile: essenza, tipi e come funzionano

Autore: IT Sectr Pubblicato: 2026-03-15 Tempo di lettura: 9 min

Le notifiche push sono uno dei modi più efficaci per interagire con l'utente dopo l'installazione dell'app. Consentono di notificare un nuovo messaggio, uno sconto, un aggiornamento dei contenuti o ricordare un carrello abbandonato. Le notifiche push (push notifications) funzionano tramite servizi cloud: Firebase Cloud Messaging (FCM) su Android e Apple Push Notification Service (APNS) su iOS. In questo articolo analizzeremo l'architettura delle notifiche, i loro tipi e il processo di configurazione per entrambe le piattaforme. Maggiori informazioni nella documentazione ufficiale di FCM.

Punti chiave

  • FCM — servizio universale per Android e iOS (tramite proxy APNS)
  • APNS — servizio nativo Apple per iOS, macOS, watchOS
  • Le Rich Notifications contengono contenuti multimediali (immagini, pulsanti, audio) tramite App Extensions
  • Silent Push aggiorna i dati in background senza mostrare all'utente
  • Device Token — identificatore unico del dispositivo; deve essere memorizzato e aggiornato sul server
  • Notification Channels (Android) e Notification Categories (iOS) — raggruppamento e personalizzazione delle notifiche da parte dell'utente

Cosa sono le notifiche push?

Una notifica push è un messaggio che il server invia a un dispositivo mobile senza una richiesta dall'app. Il messaggio passa attraverso un servizio cloud (FCM o APNS) che lo consegna al dispositivo anche se l'app è chiusa. Le notifiche si dividono in due tipi: notifiche di visualizzazione (mostrate all'utente) e notifiche di dati (trasmettono dati per l'elaborazione in background).

L'architettura delle notifiche push include tre componenti: (1) il server dell'app — invia una richiesta a FCM/APNS; (2) il servizio cloud — instrada la notifica; (3) l'app client — riceve e elabora la notifica. Il server deve conoscere il Device Token del dispositivo per inviare una notifica specificamente ad esso. Per gli invii di massa si utilizza Topic Subscription — l'iscrizione dei dispositivi a canali tematici (notizie, promozioni, meteo).

Su ogni dispositivo, le notifiche vengono elaborate dal sistema operativo: Android — tramite NotificationManager e NotificationChannel, iOS — tramite UNUserNotificationCenter. L'utente può configurare il comportamento delle notifiche per ogni canale: consentire suono, banner, visualizzazione sulla schermata di blocco o disabilitare completamente. La corretta configurazione dei canali aumenta il coinvolgimento e riduce i tassi di annullamento dell'iscrizione.

In IT Sectr, progettiamo il sistema di notifiche push tenendo conto delle caratteristiche specifiche della piattaforma fin dall'inizio. Decisioni chiave: scelta tra FCM e APNS diretto, formato del payload, frequenza di invio e meccanica degli abbonamenti. Questo aiuta a evitare situazioni in cui le notifiche non arrivano o vengono bloccate dal sistema.

FCM vs APNS

Firebase Cloud Messaging (FCM) è il servizio multipiattaforma di Google per la consegna delle notifiche. FCM supporta Android, iOS, Web e Flutter. Su iOS, FCM funziona tramite APNS: FCM invia una richiesta ad APNS, che consegna la notifica al dispositivo. Vantaggi di FCM: API unica per entrambe le piattaforme, analisi integrate, test A/B, argomenti e segmenti di pubblico.

Apple Push Notification Service (APNS) è il servizio nativo di Apple. Funziona solo su dispositivi Apple (iOS, macOS, watchOS, tvOS). Richiede autorizzazione diretta tramite certificato TLS o token (JWT). APNS fornisce latenza di consegna minima e integrazione diretta con le funzionalità iOS: PushKit, Notification Service Extension e Avvisi critici.

La scelta tra FCM e APNS dipende dall'architettura del progetto. Se l'app è solo per iOS — APNS offre più controllo. Se è multipiattaforma — FCM è più conveniente con un'API unica. Molti progetti usano FCM come servizio principale e configurano inoltre PushKit per VoIP su iOS. Un approccio ibrido consente di ottenere il meglio da entrambi i sistemi.

Caratteristica FCM APNS
PiattaformeAndroid, iOS, Web, FlutteriOS, macOS, watchOS, tvOS
AutorizzazioneServer Key (Firebase Console)Certificato TLS o token JWT
Payload massimo4 KB (data), 2 KB (notification)4 KB
ArgomentiIntegrati (Topic Messaging)No (implementati lato server)
Silent PushSupportatoSupportato (content-available)
PushKitNoSì (VoIP, live activities)
AnaliticaFirebase AnalyticsNon integrata
Consegna a dispositivo spentoLimitata (dipende dal produttore)Sì, tramite PushKit

Tipi di notifiche (Rich, Silent, Interactive)

Rich Notification (Notifica ricca)

Una Rich Notification è una notifica che contiene non solo testo ma anche contenuti multimediali: immagini, video, audio e pulsanti di azione. Su Android viene implementata tramite stili NotificationCompat: BigPictureStyle (immagine grande), BigTextStyle (testo compresso/espanso), InboxStyle (elenco messaggi), MediaStyle (controllo riproduzione). Su iOS si utilizza Notification Content Extension — un target separato con UI personalizzata per la notifica espansa.

Silent Push (Notifica silenziosa)

Silent Push (content-available su iOS) è una notifica consegnata senza essere mostrata all'utente. È destinata all'aggiornamento dei dati in background: sincronizzazione contenuti, precaricamento, aggiornamento widget. Su iOS, Silent Push richiede l'attivazione di Background Modes → Remote notifications. Su Android si utilizza FirebaseMessagingService con onMessageReceived per gestire le notifiche in background. Importante: su iOS, Silent Push ha limitazioni di frequenza e non garantisce la consegna se l'app non è in primo piano.

Interactive Notification (Notifica interattiva)

Una Interactive Notification consente all'utente di eseguire un'azione senza aprire l'app. Su Android sono pulsanti (Action) nella notifica: "Rispondi", "Approva", "Rifiuta". Le azioni vengono elaborate tramite PendingIntent, che avvia un BroadcastReceiver o Service. Su iOS, Notification Action viene registrata tramite UNNotificationAction e UNNotificationCategory. I pulsanti possono essere foreground (apre l'app), background (esegue in background) o destructive (azione irreversibile — elimina, blocca).

Notification Content Extension e Service Extension

Notification Content Extension (iOS) — un controller di visualizzazione personalizzato per mostrare il contenuto esteso della notifica con pressione prolungata o 3D Touch. Notification Service Extension (iOS) — middleware per modificare il contenuto della notifica prima della visualizzazione: decifrare messaggi E2E, caricare immagini, offuscare dati riservati. Su Android non ci sono analoghi diretti — tutte le modifiche vengono eseguite in FirebaseMessagingService.

Configurazione delle notifiche su Android e iOS

Configurazione su Android

Per Android è necessario: (1) aggiungere Firebase SDK al progetto (google-services.json); (2) creare un NotificationChannel (Android 8+) per ogni categoria di notifiche; (3) implementare FirebaseMessagingService per ricevere token e messaggi in arrivo. Notification Channel è obbligatorio — senza di esso le notifiche non verranno visualizzate su Android 8+. I canali hanno priorità (IMPORTANCE_HIGH — suono + popup, IMPORTANCE_LOW — senza suono) e sono configurabili dall'utente nelle impostazioni di sistema.

Configurazione su iOS

Per iOS è necessario: (1) abilitare la funzionalità Push Notifications in Xcode; (2) configurare la chiave APNS sull'Apple Developer Portal; (3) richiedere l'autorizzazione tramite UNUserNotificationCenter.requestAuthorization — questa è una finestra di dialogo di sistema che viene mostrata una volta. La risposta dell'utente è critica: se l'autorizzazione non viene concessa, le notifiche non verranno consegnate. Si consiglia di spiegare all'utente perché le notifiche sono necessarie prima di mostrare la finestra di dialogo di sistema (pre-permission prompt).

Strumenti e Token

Device Token (iOS) e Registration Token (Android) sono identificatori univoci del dispositivo per le notifiche push. Il token viene generato al primo avvio dell'app e può cambiare: in caso di reinstallazione, cancellazione dati, reset delle impostazioni sulla privacy. Il server deve aggiornare regolarmente i token. Firebase fornisce un'API comoda per la gestione dei token tramite onNewToken, oltre a un pannello per l'invio di notifiche di test (Firebase Console → Cloud Messaging).

Topic Subscription è uno dei meccanismi più efficaci di FCM. Un dispositivo si iscrive a un argomento (ad esempio, "news", "promo_users_ios") e il server invia notifiche per argomento senza dover memorizzare un elenco di token. Firebase Topics supporta fino a un milione di iscritti per argomento e l'invio condizionale (Condition) tramite un linguaggio di espressioni: "'news' in topics && ('US' in topics || 'UK' in topics)".

Notification Payload è la struttura JSON inviata tramite FCM/APNS. Per FCM: notification separata (parte visibile — titolo, corpo, immagine) e data (campi personalizzati per l'app). Per APNS: dizionario aps con alert, badge, sound, category e content-available. La struttura corretta del payload è critica: se notification + data arrivano contemporaneamente, l'app in background potrebbe non ricevere i dati. Si consiglia di utilizzare solo messaggi data per Android e passare i campi visivi separatamente tramite FCM Console.

Domande frequenti

Qual è la differenza tra FCM e APNS?

FCM (Firebase Cloud Messaging) è il servizio di Google per Android e notifiche multipiattaforma. APNS (Apple Push Notification Service) è il servizio di Apple solo per iOS/macOS. FCM può consegnare notifiche tramite APNS su iOS, fungendo da server proxy.

Cos'è una Rich Notification?

Una Rich Notification è una notifica avanzata con contenuti multimediali: immagini, video, audio, pulsanti di azione. Su iOS viene implementata tramite Notification Content Extension; su Android tramite BigPictureStyle e InboxStyle.

Come funziona Device Token?

Device Token è un identificatore univoco del dispositivo per inviare notifiche push. Su Android è il Registration Token di FCM; su iOS il Device Token di APNS. Il token può cambiare in caso di reinstallazione dell'app o reset delle impostazioni, quindi deve essere aggiornato sul server.

Cos'è Silent Push e a cosa serve?

Silent Push (notifica silenziosa) è una notifica senza visualizzazione all'utente. Viene utilizzata per aggiornamenti dati in background: sincronizzazione contenuti, aggiornamento widget, precaricamento. Su iOS richiede l'attivazione di Background Modes → Remote notifications.

In cosa PushKit è diverso dalle normali notifiche push?

PushKit è un framework Apple per la consegna di notifiche ad alta priorità utilizzato nelle app VoIP (chiamate, messaggistica). PushKit consegna la notifica anche se l'app è terminata e garantisce l'avvio dell'app per l'elaborazione.

Riepilogo

  • FCM — servizio multipiattaforma di Google; APNS — servizio nativo Apple
  • Rich Notification include media e pulsanti; Silent Push aggiorna dati senza mostrare all'utente
  • Notification Channel (Android) e Notification Category (iOS) — obbligatori per raggruppare le notifiche
  • Device Token — identificatore univoco; deve essere regolarmente aggiornato sul server
  • Topic Subscription semplifica gli invii di massa senza memorizzare un elenco di token
  • PushKit — per notifiche critiche (VoIP, avvisi vitali)
  • Notification Payload deve essere strutturato in base alla piattaforma: notification + data per FCM, aps per APNS

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.

Discuti il progetto