Push-bildirishnomalar ilova o'rnatilgandan so'ng foydalanuvchi bilan o'zaro aloqaning eng samarali usullaridan biridir. Ular yangi xabar, chegirma, kontent yangilanishi haqida xabar berish yoki tashlab ketilgan savatni eslatish imkonini beradi. Push-bildirishnomalar (push notifications) bulut xizmatlari orqali ishlaydi: Android-da Firebase Cloud Messaging (FCM) va iOS-da Apple Push Notification Service (APNS). Ushbu maqolada bildirishnomalar arxitekturasini, ularning turlarini va ikkala platforma uchun sozlash jarayonini tahlil qilamiz. Batafsil ma'lumot uchun — rasmiy FCM hujjatlariga qarang.
Asosiy nuqtalar
Push-bildirishnoma — bu server ilovadan so'rovsiz mobil qurilmaga yuboradigan xabardir. Xabar bulut xizmati (FCM yoki APNS) orqali o'tadi va ilova yopiq bo'lsa ham uni qurilmaga yetkazadi. Bildirishnomalar ikki turga bo'linadi: display bildirishnomalar (foydalanuvchiga ko'rsatiladi) va data bildirishnomalar (fon ishlov berish uchun ma'lumotlarni uzatadi).
Push-bildirishnoma arxitekturasi uch komponentni o'z ichiga oladi: (1) ilova serveri — FCM/APNS-ga so'rov yuboradi; (2) bulut xizmati — bildirishnomani yo'naltiradi; (3) mijoz ilovasi — bildirishnomani qabul qiladi va qayta ishlaydi. Server bildirishnomani aynan shu qurilmaga yuborish uchun qurilmaning Device Token-ni bilishi kerak. Ommaviy jo'natishlar uchun Topic Subscription ishlatiladi — qurilmalarning tematik kanallarga (yangiliklar, aksiyalar, ob-havo) obuna bo'lishi.
Har bir qurilmada bildirishnomalar operatsion tizim tomonidan qayta ishlanadi: Android — NotificationManager va NotificationChannel orqali, iOS — UNUserNotificationCenter orqali. Foydalanuvchi har bir kanal uchun bildirishnoma xatti-harakatini sozlashi mumkin: tovush, banner, qulf ekranida ko'rsatish yoki butunlay o'chirish. Kanallarni to'g'ri sozlash ishtirokni oshiradi va obunani bekor qilish darajasini pasaytiradi.
IT Sectr-da biz push-bildirishnoma tizimini boshidanoq platformaga xos xususiyatlarni hisobga olgan holda loyihalashtiramiz. Asosiy qarorlar: FCM va to'g'ridan-to'g'ri APNS o'rtasida tanlov, yuk formati, jo'natish chastotasi va obuna mexanikasi. Bu bildirishnomalar yetib bormaslik yoki tizim tomonidan bloklanish holatlarining oldini olishga yordam beradi.
Firebase Cloud Messaging (FCM) bildirishnomalarni yetkazib berish uchun Google-ning o'zaro platforma xizmatidir. FCM Android, iOS, Web va Flutter-ni qo'llab-quvvatlaydi. iOS-da FCM APNS orqali ishlaydi: FCM APNS-ga so'rov yuboradi, APNS bildirishnomani qurilmaga yetkazadi. FCM ning afzalliklari: ikkala platforma uchun yagona API, o'rnatilgan analitika, A/B testi, mavzular va auditoriya segmentlari.
Apple Push Notification Service (APNS) Apple-ning mahalliy xizmatidir. Faqat Apple qurilmalarida (iOS, macOS, watchOS, tvOS) ishlaydi. TLS sertifikati yoki token (JWT) orqali to'g'ridan-to'g'ri avtorizatsiyani talab qiladi. APNS ta'minlaydi: minimal yetkazib berish kechikishi va iOS funksiyalari bilan to'g'ridan-to'g'ri integratsiya: PushKit, Notification Service Extension va Kritik ogohlantirishlar.
FCM va APNS o'rtasidagi tanlov loyiha arxitekturasiga bog'liq. Ilova faqat iOS uchun bo'lsa — APNS ko'proq nazorat beradi. O'zaro platforma bo'lsa — FCM yagona API bilan qulayroq. Ko'plab loyihalar FCM-ni asosiy xizmat sifatida ishlatadi va iOS-da VoIP uchun qo'shimcha PushKit-ni sozlaydi. Gibrid yondashuv ikkala tizimdan eng yaxshisini olish imkonini beradi.
| Xususiyat | FCM | APNS |
|---|---|---|
| Platformalar | Android, iOS, Web, Flutter | iOS, macOS, watchOS, tvOS |
| Avtorizatsiya | Server kaliti (Firebase Console) | TLS sertifikati yoki JWT token |
| Maksimal yuk | 4 KB (data), 2 KB (notification) | 4 KB |
| Mavzular | O'rnatilgan (Topic Messaging) | Yo'q (server tomonida amalga oshiriladi) |
| Jim Push | Qo'llab-quvvatlanadi | Qo'llab-quvvatlanadi (content-available) |
| PushKit | Yo'q | Ha (VoIP, jonli faoliyatlar) |
| Analitika | Firebase Analytics | O'rnatilgani yo'q |
| O'chirilgan qurilmaga yetkazish | Cheklangan (ishlab chiqaruvchiga bog'liq) | Ha, PushKit orqali |
Boy bildirishnoma faqat matn emas, balki media kontentini ham o'z ichiga olgan bildirishnomadir: rasmlar, video, audio va harakat tugmalari. Android-da NotificationCompat uslublari orqali amalga oshiriladi: BigPictureStyle (katta rasm), BigTextStyle (yig'ilgan/kengaytirilgan matn), InboxStyle (xabarlar ro'yxati), MediaStyle (ijro etishni boshqarish). iOS-da Notification Content Extension ishlatiladi — kengaytirilgan bildirishnoma uchun maxsus UI bilan alohida target.
Jim Push (iOS-da content-available) foydalanuvchiga ko'rsatilmasdan yetkaziladigan bildirishnomadir. Fon ma'lumotlarini yangilash uchun mo'ljallangan: kontent sinxronizatsiyasi, oldindan yuklash, vidjet yangilanishlari. iOS-da Jim Push Background Modes → Remote notifications-ni yoqishni talab qiladi. Android-da fon bildirishnomalarini boshqarish uchun FirebaseMessagingService onMessageReceived bilan ishlatiladi. Muhim: iOS-da Jim Push chastota cheklovlariga ega va ilova oldingi planda bo'lmasa yetkazib berishni kafolatlamaydi.
Interaktiv bildirishnoma foydalanuvchiga ilovani ochmasdan harakatni bajarish imkonini beradi. Android-da bular bildirishnomadagi tugmalar (Action): "Javob ber", "Tasdiqla", "Rad et". Harakatlar PendingIntent orqali qayta ishlanadi, BroadcastReceiver yoki Service-ni ishga tushiradi. iOS-da Notification Action UNNotificationAction va UNNotificationCategory orqali ro'yxatdan o'tkaziladi. Tugmalar foreground (ilovani ochadi), background (fonda bajaradi) yoki destructive (qaytarib bo'lmaydigan harakat — o'chirish, bloklash) bo'lishi mumkin.
Notification Content Extension (iOS) — uzoq bosish yoki 3D Touch vaqtida kengaytirilgan bildirishnoma kontentini ko'rsatish uchun maxsus ko'rinish boshqaruvchisi. Notification Service Extension (iOS) — ko'rsatishdan oldin bildirishnoma kontentini o'zgartirish uchun middleware: E2E xabarlarni shifrini ochish, rasmlarni yuklash, maxfiy ma'lumotlarni xiralashtirish. Android-da to'g'ridan-to'g'ri o'xshashlar yo'q — barcha o'zgartirishlar FirebaseMessagingService da amalga oshiriladi.
Android uchun zarur: (1) loyihaga Firebase SDK qo'shish (google-services.json); (2) har bir bildirishnoma toifasi uchun NotificationChannel (Android 8+) yaratish; (3) token va kiruvchi xabarlarni olish uchun FirebaseMessagingService-ni amalga oshirish. Notification Channel majburiy — usiz Android 8+ da bildirishnomalar ko'rsatilmaydi. Kanallar ustuvorlikka ega (IMPORTANCE_HIGH — tovush + ochiladigan oyna, IMPORTANCE_LOW — tovushsiz) va foydalanuvchi tizim sozlamalarida ularni sozlashi mumkin.
iOS uchun zarur: (1) Xcode-da Push Notifications qobiliyatini yoqish; (2) Apple Developer Portal-da APNS kalitini sozlash; (3) UNUserNotificationCenter.requestAuthorization orqali ruxsat so'rash — bu bir marta ko'rsatiladigan tizim dialogidir. Foydalanuvchining javobi muhim: ruxsat berilmasa, bildirishnomalar yetkazilmaydi. Tizim dialogini ko'rsatishdan oldin foydalanuvchiga bildirishnomalar nima uchun kerakligini tushuntirish tavsiya etiladi (pre-permission prompt).
Device Token (iOS) va Registration Token (Android) push-bildirishnomalar uchun noyob qurilma identifikatorlaridir. Token birinchi ilova ishga tushirilganda yaratiladi va o'zgarishi mumkin: qayta o'rnatish, ma'lumotlarni tozalash, maxfiylik sozlamalarini tiklash vaqtida. Server muntazam ravishda tokenlarni yangilashi kerak. Firebase ta'minlaydi: onNewToken orqali tokenlarni boshqarish uchun qulay API, shuningdek test bildirishnomalarini jo'natish uchun panel (Firebase Console → Cloud Messaging).
Topic Subscription FCM ning eng samarali mexanizmlaridan biridir. Qurilma mavzuga (masalan, "news", "promo_users_ios") obuna bo'ladi va server tokenlar ro'yxatini saqlashga hojat qolmasdan mavzu bo'yicha bildirishnomalar yuboradi. Firebase Topics har bir mavzu uchun milliongacha obunachini va ifoda tili orqali shartli jo'natishni (Condition) qo'llab-quvvatlaydi: "'news' in topics && ('US' in topics || 'UK' in topics)".
Notification Payload FCM/APNS orqali yuboriladigan JSON strukturasidir. FCM uchun: alohida notification (ko'rinadigan qism — sarlavha, asosiy matn, rasm) va data (ilova uchun maxsus maydonlar). APNS uchun: alert, badge, sound, category va content-available bilan aps lug'ati. To'g'ri yuk strukturasi muhim: notification + data bir vaqtda kelsa, fondagi ilova data-ni ololmasligi mumkin. Android uchun faqat data xabarlaridan foydalanish va vizual maydonlarni FCM Console orqali alohida yuborish tavsiya etiladi.
Tez-tez so'raladigan savollar
FCM (Firebase Cloud Messaging) Android va o'zaro platforma bildirishnomalari uchun Google xizmatidir. APNS (Apple Push Notification Service) faqat iOS/macOS uchun Apple xizmatidir. FCM bildirishnomalarni yetkazishi mumkin iOS-da APNS orqali, proksi server sifatida ishlab.
Boy bildirishnoma media kontenti (rasmlar, video, audio, harakat tugmalari) bilan takomillashtirilgan bildirishnomadir. iOS-da Notification Content Extension orqali amalga oshiriladi; Android-da BigPictureStyle va InboxStyle orqali.
Device Token push-bildirishnomalarni yuborish uchun noyob qurilma identifikatoridir. Android-da bu FCM dan Registration Token; iOS-da APNS dan Device Token. Token o'zgarishi mumkin ilova qayta o'rnatilganda yoki sozlamalar tiklanganda, shuning uchun serverda yangilanishi kerak.
Jim Push (sokin bildirishnoma) foydalanuvchiga ko'rsatilmaydigan bildirishnomadir. Fon ma'lumotlarini yangilash uchun ishlatiladi: kontent sinxronizatsiyasi, vidjet yangilanishlari, oldindan olish. iOS-da yoqish talab qilinadi Background Modes → Remote notifications.
PushKit VoIP ilovalarida (qo'ng'iroqlar, messenjerlar) ishlatiladigan yuqori ustuvorlikdagi bildirishnomalarni yetkazish uchun Apple freymvorkidir. PushKit bildirishnomani yetkazadi ilova o'chirilgan bo'lsa ham va qayta ishlash uchun ilovani ishga tushirishni kafolatlaydi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.