Push bildirişləri tətbiq quraşdırıldıqdan sonra istifadəçi ilə qarşılıqlı əlaqənin ən təsirli yollarından biridir. Onlar yeni mesaj, endirim, məzmun yeniləməsi barədə məlumat verməyə və ya tərk edilmiş səbəti xatırlatmağa imkan verir. Push bildirişləri (push notifications) bulud xidmətləri vasitəsilə işləyir: Android-də Firebase Cloud Messaging (FCM) və iOS-da Apple Push Notification Service (APNS). Bu məqalədə bildiriş arxitekturasını, onların növlərini və hər iki platforma üçün quraşdırma prosesini təhlil edəcəyik. Ətraflı məlumat üçün — rəsmi FCM sənədlərinə baxın.
Əsas məqamlar
Push bildirişi serverin tətbiqdən sorğu olmadan mobil cihaza göndərdiyi mesajdır. Mesaj bulud xidmətindən (FCM və ya APNS) keçir və tətbiq bağlı olsa belə onu cihaza çatdırır. Bildirişlər iki növə bölünür: ekran bildirişləri (istifadəçiyə göstərilir) və məlumat bildirişləri (fon emalı üçün məlumat ötürür).
Push bildiriş arxitekturası üç komponentdən ibarətdir: (1) tətbiq serveri — FCM/APNS-ə sorğu göndərir; (2) bulud xidməti — bildirişi yönləndirir; (3) müştəri tətbiqi — bildirişi qəbul edir və emal edir. Server bildirişi xüsusi olaraq həmin cihaza göndərmək üçün cihazın Device Token-nı bilməlidir. Kütləvi göndərişlər üçün Topic Subscription istifadə olunur — cihazların tematik kanallara (xəbərlər, promosiyalar, hava) abunə olması.
Hər cihazda bildirişlər əməliyyat sistemi tərəfindən emal olunur: Android — NotificationManager və NotificationChannel vasitəsilə, iOS — UNUserNotificationCenter vasitəsilə. İstifadəçi hər kanal üçün bildiriş davranışını konfiqurasiya edə bilər: səs, banner, kilid ekranında göstərmə və ya tamamilə söndürmə. Kanalların düzgün konfiqurasiyası cəlbetməni artırır və abunədən çıxma dərəcəsini azaldır.
IT Sectr-də push bildiriş sistemini əvvəldən platformaya xas xüsusiyyətləri nəzərə alaraq dizayn edirik. Əsas qərarlar: FCM və birbaşa APNS arasında seçim, yük formatı, göndərmə tezliyi və abunə mexanikası. Bu, bildirişlərin çatmadığı və ya sistem tərəfindən bloklandığı halların qarşısını almağa kömək edir.
Firebase Cloud Messaging (FCM) bildirişlərin çatdırılması üçün Google-ın çarpaz platforma xidmətidir. FCM Android, iOS, Web və Flutter-ı dəstəkləyir. iOS-da FCM APNS vasitəsilə işləyir: FCM APNS-ə sorğu göndərir, APNS bildirişi cihaza çatdırır. FCM-in üstünlükləri: hər iki platforma üçün vahid API, daxili analitika, A/B testi, mövzular və auditoriya seqmentləri.
Apple Push Notification Service (APNS) Apple-ın yerli xidmətidir. Yalnız Apple cihazlarında (iOS, macOS, watchOS, tvOS) işləyir. TLS sertifikatı və ya token (JWT) vasitəsilə birbaşa icazə tələb edir. APNS təmin edir: minimal çatdırılma gecikməsi və iOS funksiyaları ilə birbaşa inteqrasiya: PushKit, Notification Service Extension və Kritik Xəbərdarlıqlar.
FCM və APNS arasında seçim layihə arxitekturasından asılıdır. Tətbiq yalnız iOS üçündürsə — APNS daha çox nəzarət verir. Çarpaz platformadırsa — FCM vahid API ilə daha rahatdır. Bir çox layihə FCM-ni əsas xidmət kimi istifadə edir və iOS-da VoIP üçün əlavə olaraq PushKit konfiqurasiya edir. Hibrid yanaşma hər iki sistemdən ən yaxşısını əldə etməyə imkan verir.
| Xüsusiyyət | FCM | APNS |
|---|---|---|
| Platformalar | Android, iOS, Web, Flutter | iOS, macOS, watchOS, tvOS |
| İcazə | Server Açarı (Firebase Console) | TLS sertifikatı və ya JWT token |
| Maksimum yük | 4 KB (data), 2 KB (notification) | 4 KB |
| Mövzular | Daxili (Topic Messaging) | Xeyr (server tərəfdə həyata keçirilir) |
| Səssiz Push | Dəstəklənir | Dəstəklənir (content-available) |
| PushKit | Xeyr | Bəli (VoIP, canlı fəaliyyətlər) |
| Analitika | Firebase Analytics | Daxili yoxdur |
| Söndürülmüş cihaza çatdırılma | Məhdud (istehsalçıdan asılı) | Bəli, PushKit vasitəsilə |
Zəngin Bildiriş təkcə mətn deyil, həm də media məzmunu ehtiva edən bildirişdir: şəkillər, videolar, audio və hərəkət düymələri. Android-də NotificationCompat stilləri vasitəsilə həyata keçirilir: BigPictureStyle (böyük şəkil), BigTextStyle (yığılmış/genişləndirilmiş mətn), InboxStyle (mesaj siyahısı), MediaStyle (oxutma nəzarəti). iOS-da Notification Content Extension istifadə olunur — genişləndirilmiş bildiriş üçün fərdi UI ilə ayrıca hədəf.
Səssiz Push (iOS-da content-available) istifadəçiyə göstərilmədən çatdırılan bildirişdir. Fon məlumat yeniləməsi üçün nəzərdə tutulub: məzmun sinxronizasiyası, əvvəlcədən yükləmə, vidjet yeniləmələri. iOS-da Səssiz Push Background Modes → Remote notifications aktivləşdirilməsini tələb edir. Android-də fon bildirişlərini idarə etmək üçün FirebaseMessagingService onMessageReceived ilə istifadə olunur. Əhəmiyyətli: iOS-da Səssiz Push tezlik məhdudiyyətlərinə malikdir və tətbiq ön planda deyilsə çatdırılmaya zəmanət vermir.
İnteraktiv Bildiriş istifadəçiyə tətbiqi açmadan hərəkət etməyə imkan verir. Android-də bunlar bildirişdəki düymələrdir (Action): "Cavab ver", "Təsdiq et", "Rədd et". Hərəkətlər PendingIntent vasitəsilə emal olunur, BroadcastReceiver və ya Service işə salır. iOS-da Notification Action UNNotificationAction və UNNotificationCategory vasitəsilə qeydiyyatdan keçir. Düymələr foreground (tətbiqi açır), background (fonda icra edir) və ya destructive (geri dönməz hərəkət — sil, blokla) ola bilər.
Notification Content Extension (iOS) — uzun basma və ya 3D Touch zamanı genişləndirilmiş bildiriş məzmununu göstərmək üçün fərdi görünüş nəzarətçisi. Notification Service Extension (iOS) — göstərilmədən əvvəl bildiriş məzmununu dəyişdirmək üçün aralıq proqram təminatı: E2E mesajlarının şifrəsini açmaq, şəkilləri yükləmək, məxfi məlumatları gizlətmək. Android-də birbaşa analoqlar yoxdur — bütün dəyişikliklər FirebaseMessagingService daxilində həyata keçirilir.
Android üçün tələb olunur: (1) layihəyə Firebase SDK əlavə etmək (google-services.json); (2) hər bildiriş kateqoriyası üçün NotificationChannel (Android 8+) yaratmaq; (3) token və gələn mesajları qəbul etmək üçün FirebaseMessagingService tətbiq etmək. Notification Channel məcburidir — onsuz Android 8+-da bildirişlər göstərilməyəcək. Kanalların prioriteti var (IMPORTANCE_HIGH — səs + açılan pəncərə, IMPORTANCE_LOW — səssiz) və istifadəçi sistem parametrlərində onları konfiqurasiya edə bilər.
iOS üçün tələb olunur: (1) Xcode-da Push Notifications qabiliyyətini aktivləşdirmək; (2) Apple Developer Portal-da APNS açarını konfiqurasiya etmək; (3) UNUserNotificationCenter.requestAuthorization vasitəsilə icazə istəmək — bu bir dəfə göstərilən sistem dialoqudur. İstifadəçinin cavabı kritikdir: icazə verilməzsə, bildirişlər çatdırılmayacaq. Sistem dialoqunu göstərməzdən əvvəl istifadəçiyə bildirişlərin nə üçün lazım olduğunu izah etmək tövsiyə olunur (pre-permission prompt).
Device Token (iOS) və Registration Token (Android) push bildirişləri üçün unikal cihaz identifikatorlarıdır. Token ilk tətbiq işə salındıqda yaradılır və dəyişə bilər: yenidən quraşdırma, məlumatların təmizlənməsi, məxfilik parametrlərinin sıfırlanması zamanı. Server müntəzəm olaraq tokenləri yeniləməlidir. Firebase təmin edir: onNewToken vasitəsilə token idarəetməsi üçün rahat API, həmçinin test bildirişi göndərmək üçün panel (Firebase Console → Cloud Messaging).
Topic Subscription FCM-in ən təsirli mexanizmlərindən biridir. Cihaz bir mövzuya (məsələn, "news", "promo_users_ios") abunə olur və server token siyahısını saxlamağa ehtiyac olmadan mövzu üzrə bildirişlər göndərir. Firebase Topics hər mövzu üçün bir milyona qədər abunəçini və ifadə dili vasitəsilə şərti göndərməni (Condition) dəstəkləyir: "'news' in topics && ('US' in topics || 'UK' in topics)".
Notification Payload FCM/APNS vasitəsilə göndərilən JSON strukturudur. FCM üçün: ayrı notification (görünən hissə — başlıq, əsas mətn, şəkil) və data (tətbiq üçün fərdi sahələr). APNS üçün: alert, badge, sound, category və content-available ilə aps lüğəti. Düzgün yük strukturu kritikdir: notification + data eyni anda gələrsə, fondakı tətbiq data-nı ala bilməz. Android üçün yalnız data mesajlarından istifadə etmək və vizual sahələri FCM Console vasitəsilə ayrıca ötürmək tövsiyə olunur.
Tez-tez verilən suallar
FCM (Firebase Cloud Messaging) Android və çarpaz platforma bildirişləri üçün Google-ın xidmətidir. APNS (Apple Push Notification Service) yalnız iOS/macOS üçün Apple-ın xidmətidir. FCM bildirişləri çatdıra bilər iOS-da APNS vasitəsilə, proksi server kimi fəaliyyət göstərərək.
Zəngin Bildiriş media məzmunu (şəkillər, videolar, audio, hərəkət düymələri) ilə təkmilləşdirilmiş bildirişdir. iOS-da Notification Content Extension vasitəsilə həyata keçirilir; Android-də BigPictureStyle və InboxStyle vasitəsilə.
Device Token push bildirişləri göndərmək üçün unikal cihaz identifikatorudur. Android-də FCM-dən Registration Token; iOS-da APNS-dən Device Token. Token dəyişə bilər tətbiq yenidən quraşdırıldıqda və ya parametrlər sıfırlandıqda, buna görə serverdə yenilənməlidir.
Səssiz Push (sakit bildiriş) istifadəçiyə göstərilməyən bildirişdir. Fon məlumat yeniləmələri üçün istifadə olunur: məzmun sinxronizasiyası, vidjet yeniləmələri, əvvəlcədən gətirmə. iOS-da aktivləşdirilməsi tələb olunur Background Modes → Remote notifications.
PushKit VoIP tətbiqlərində (zənglər, mesajlaşma) istifadə olunan yüksək prioritetli bildirişlərin çatdırılması üçün Apple çərçivəsidir. PushKit bildirişi çatdırır tətbiq öldürülsə belə və emal üçün tətbiqin işə salınmasına zəmanət verir.
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.