Notificările Push sunt mesaje trimise de server pe dispozitivul mobil chiar și atunci când aplicația este închisă. Conform datelor Google Firebase, 2024, notificările Push sunt procesate prin servicii specializate — FCM pe Android și APNS pe iOS, care suportă livrarea în timp real către milioane de dispozitive simultan. Acestea au devenit o parte integrantă a experienței utilizatorului în aplicațiile mobile moderne.
Principalele
Notificările Push sunt mesaje scurte pe care serverul aplicației le trimite pe dispozitivul utilizatorului fără o solicitare explicită a acestuia. Ele se afișează sub formă de bannere, semne pe pictogramă sau semnale sonore, atrăgând atenția utilizatorului asupra aplicației și informând despre evenimente importante.
O notificare Push constă dintr-un titlu, corpul mesajului și date opționale (payload). Spre deosebire de SMS, notificările Push sunt gratuite pentru utilizator și sunt livrate prin infrastructura serviciilor cloud — FCM pentru Android și APNS pentru iOS. Scopurile principale ale notificărilor Push: creșterea implicării, informarea despre evenimente și readucerea utilizatorului în aplicație.
Statisticile de utilizare arată că notificările Push configurate corect cresc retenția aplicației cu 30-60%. Totuși, frecvența excesivă a notificărilor duce la dezabonări — peste 60% dintre utilizatori dezactivează notificările dacă sunt trimise de mai mult de trei ori pe zi.
Sistemul Push include trei componente: serverul aplicației (app server), serviciul de platformă (FCM/APNS) și aplicația client pe dispozitiv. Serverul trimite o solicitare serviciului de platformă, care livrează notificarea pe dispozitivul țintă printr-o conexiune permanentă cu sistemul de operare.
Mecanismul de livrare al notificărilor Push se bazează pe o conexiune permanentă între dispozitiv și serviciul de platformă. Sistemul de operare menține un canal de comunicare criptat prin care trec toate mesajele Push.
La prima lansare, aplicația solicită permisiunea de a trimite notificări și primește un token unic al dispozitivului de la FCM sau APNS. Acest token este un șir de până la 4 KB care identifică în mod unic instanța aplicației. Tokenul se schimbă la reinstalarea aplicației sau la restaurarea dispozitivului dintr-o copie de rezervă.
class FirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
showNotification(message.notification)
}
}
Serverul aplicației trimite o solicitare HTTP către FCM API sau APNS API, specificând tokenul țintă, titlul, corpul și datele suplimentare. Serviciul de platformă răspunde cu statusul livrării: success, invalid token (dispozitivul a șters aplicația) sau rate-limited (frecvența de trimitere a fost depășită).
fetch("https://fcm.googleapis.com/fcm/send", {
method: "POST",
headers: {
"Authorization": "key=AIzaSy...",
"Content-Type": "application/json"
},
body: JSON.stringify({
to: "device_token_here",
notification: {
title: "trimiteți tokenul pe propriul server",
body: "Aveți o notificare nouă!"
}
})
})
Alegerea între FCM și APNS depinde de platforma țintă. FCM suportă Android și iOS, APNS — doar ecosistemul Apple. Să analizăm diferențele cheie importante pentru dezvoltarea aplicațiilor mobile cross-platform.
FCM este serviciul Google care funcționează pe baza Google Play Services. Suportă două scheme de livrare: notificări cu afișare automată (display notifications) și notificări de date pe care aplicația le procesează singură. FCM este gratuit și nu are limitări privind numărul de mesaje trimise.
APNS este serviciul Apple cu suport pentru atașamente multimedia (imagini, video, audio) de până la 10 MB. Pentru trimiterea prin APNS este necesar un certificat TLS sau o cheie de autentificare. APNS limitează frecvența trimiterii pe un singur dispozitiv — nu mai mult de 150 de notificări pe minut, după care se activează limitarea de viteză.
| Caracteristică | FCM | APNS |
|---|---|---|
| Platforme | Android, iOS, Web | iOS, macOS, watchOS |
| Cerințe | Google Play Services | Apple Developer Program |
| Media | până la 4 KB (date) | până la 10 MB (atașamente) |
| Prioritate | normal/high | immediate/power-saving |
| Cost | gratuit | gratuit (cont necesar) |
Notificările Push se clasifică după modul de afișare și scop. Înțelegerea tipurilor ajută la alegerea strategiei potrivite pentru fiecare scenariu de interacțiune cu utilizatorul.
Cel mai comun tip — notificarea afișată cu titlu și corp. Sistemul de operare o arată automat în panoul de notificări, pe ecranul de blocare și sub formă de banner. Dezvoltatorul poate configura sunetul, vibrația, semnul pe pictogramă și butoane de acțiune pentru operații directe (răspunde, deschide, respinge).
Notificările de date conțin doar payload fără afișare vizuală. Aplicația le procesează în fundal: sincronizează date, actualizează cache-ul sau inițiază descărcări. Pe Android, notificările de date sunt livrate garantat, pe iOS — doar când aplicația este activă sau prin background fetch.
Sistemele de operare mobile moderne suportă notificări extinse și media cu imagini, GIF, video și audio. Pe iOS acest lucru este implementat prin UNNotificationAttachment, pe Android — prin BigPictureStyle și InboxStyle pentru personalizarea aspectului notificării în panoul de sistem.
Notificările silențioase nu se afișează utilizatorului și sunt folosite pentru sincronizarea în fundal. Pe iOS au prioritate ridicată pentru sarcini precum actualizarea datelor înainte de deschiderea aplicației. Android le tratează ca notificări de date cu prioritate minimă.
Configurarea notificărilor Push necesită acțiuni la nivel de infrastructură, parte server și cod client. Să analizăm procesul tipic pentru un proiect mobil cross-platform.
Pentru Android trebuie să creați un proiect în Firebase Console, să adăugați fișierul google-services.json în proiect și să configurați FirebaseMessagingService. Tokenul dispozitivului se obține prin FirebaseInstanceId sau FirebaseMessaging.getInstance().token, după care se trimite pe server prin API la prima lansare sau la modificarea sa.
Pentru iOS este necesară abonarea la Apple Developer Program, crearea unui certificat Push sau a unei chei APNS în Developer Portal și activarea Capability Push Notifications în Xcode. Înregistrarea pentru notificări se face prin UIApplication.shared.registerForRemoteNotifications cu primirea deviceToken în AppDelegate.
import UIKit
import UserNotifications
@main
class AppDelegate: UIResponder,
UIApplicationDelegate {
func application(
_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken
deviceToken: Data
) {
let token = deviceToken
.map { String.format("%02x", $0) }
.joined()
// trimite token-ul pe serverul tău
}
}
Pe partea de server, notificările Push se trimit prin REST API sau Admin SDK. Pentru FCM se folosește Firebase Admin SDK (disponibil pentru Node.js, Java, Python, Go), pentru APNS — biblioteci pusher (pushy pentru Java, apn2 pentru Node.js). Se recomandă stocarea tokenurilor în baza de date cu marca temporală a ultimei actualizări.
Securitatea notificărilor Push este critică, deoarece prin ele pot fi transmise date confidențiale. Ambele platforme oferă mecanisme de bază de protecție, dar dezvoltatorul trebuie să le folosească corect.
Payload-ul notificării Push poate conține date personale ale utilizatorilor: nume, sume de tranzacții, linkuri către mesaje. Chiar dacă canalul de comunicare dintre FCM/APNS și dispozitiv este criptat, datele pot fi interceptate la nivelul aplicației la interceptarea notificării de către software terț. Se recomandă criptarea payload-ului sensibil pe server cu algoritmul AES-256 și decriptarea pe dispozitiv cu o cheie stocată în Keychain (iOS) sau EncryptedSharedPreferences (Android).
Tokenul dispozitivului este un identificator de sesiune care poate fi compromis la spargerea dispozitivului sau interceptarea traficului. Serverul aplicației trebuie să verifice tokenurile înainte de trimitere: să le compare cu baza de date, să urmărească tokenurile inactive și să le șteargă la erori repetate InvalidToken. FCM și APNS returnează statusul InvalidRegistration pentru tokenuri incorecte — nu-l ignorați.
Fără controlul frecvenței, notificările Push pot deveni o unealtă de spam care irită utilizatorii și scade retenția. Setați pe server limite: nu mai mult de 5 notificări pe oră pentru un utilizator și nu mai mult de 3 mesaje identice. Pentru notificări tranzacționale (confirmarea comenzii, schimbarea parolei) limitele pot fi mai mari — până la 10 pe oră, deoarece poartă informații critic de importante. Folosiți limitarea de viteză la nivelul API-ului de trimitere pentru ca un atacator să nu poată declanșa o difuzare în masă prin serverul dumneavoastră.
Întrebări frecvente
Da, conectarea directă la APNS nu este suportată pe Android — pentru dispozitivele fără Google Play Services se folosesc alternative precum Huawei Mobile Services (HMS) și conexiuni WebSocket proprii. Totuși, FCM rămâne standardul pentru majoritatea aplicațiilor datorită gratuității și fiabilității.
FCM și APNS păstrează ultima notificare pe serverele lor și o livrează la restabilirea conexiunii. Pe fiecare dispozitiv se păstrează doar ultima notificare de la fiecare aplicație, deci la absența prelungită a rețelei mesajele intermediare se pierd.
Cele mai frecvente cauze sunt certificatul Push expirat APNS (valabil 1 an), tokenul incorect al dispozitivului, notificările dezactivate în setări sau modul de economisire a energiei activat. Verificați certificatul în Apple Developer Console și asigurați-vă că aplicația solicită permisiunea prin UNUserNotificationCenter.
Pe Android utilizați PendingIntent în NotificationCompat.Builder cu urmărirea deschiderii prin Intent. Pe iOS — metoda UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). FCM oferă rapoarte de livrare și deschidere pentru fiecare notificare trimisă.
Nesemnificativ — notificările Push nu mențin o conexiune permanentă; sistemul de operare folosește un canal de sistem unic pentru toate aplicațiile, ceea ce minimizează consumul total de energie. Trimiterea frecventă (la fiecare 5 minute) consumă mai multă energie pentru trezirea dispozitivului și ieșirea din modul de repaus. Notificările silențioase pe iOS consumă mai multă energie din cauza activării aplicației în fundal pentru procesarea datelor primite.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și