Push bildirishnomalari — bu ilova yopiq bo'lsa ham, server tomonidan mobil qurilmaga jo'natiladigan xabarlardir. Google Firebase, 2024 ma'lumotlariga ko'ra, Push bildirishnomalari maxsus xizmatlar — Android-da FCM va iOS-da APNS orqali qayta ishlanadi va bir vaqtning o'zida millionlab qurilmalarga real vaqt rejimida yetkazib berishni qo'llab-quvvatlaydi. Ular zamonaviy mobil ilovalarda foydalanuvchi tajribasining ajralmas qismiga aylandi.
Asosiy ma'lumotlar
Push bildirishnomalari — bu ilova serveri foydalanuvchining aniq so'rovisiz uning qurilmasiga jo'natadigan qisqa xabarlardir. Ular bannerlar, ikonkadagi belgilar yoki ovozli signallar ko'rinishida ko'rsatiladi, foydalanuvchining diqqatini ilovaga jalb qiladi va muhim voqealar haqida xabar beradi.
Push bildirishnomasi sarlavha, xabar matni va ixtiyoriy ma'lumotlardan (payload) iborat. SMS-dan farqli o'laroq, Push bildirishnomalari foydalanuvchi uchun bepul va bulut xizmatlari infratuzilmasi — Android uchun FCM va iOS uchun APNS orqali yetkaziladi. Push bildirishnomalarining asosiy maqsadlari: foydalanuvchi faolligini oshirish, voqealar haqida xabar berish va foydalanuvchini ilovaga qaytarish.
Foydalanish statistikasi shuni ko'rsatadiki, to'g'ri sozlangan Push bildirishnomalari ilovaning saqlanish darajasini 30-60% ga oshiradi. Biroq, haddan tashqari tez-tez yuborish bildirishnomalardan voz kechishga olib keladi — foydalanuvchilarning 60% dan ortig'i kuniga uch martadan ko'p yuborilsa, bildirishnomalarni o'chiradi.
Push tizimi uch komponentdan iborat: ilova serveri (app server), platforma xizmati (FCM/APNS) va qurilmadagi mijoz ilovasi. Server platforma xizmatiga so'rov yuboradi, u esa bildirishnomani maqsadli qurilmaga operatsion tizim bilan doimiy aloqa orqali yetkazadi.
Yetkazib berish mexanizmi Push bildirishnomalarining qurilma va platforma xizmati o'rtasidagi doimiy aloqaga asoslanadi. Operatsion tizim barcha Push xabarlari o'tadigan shifrlangan aloqa kanalini saqlaydi.
Birinchi ishga tushirishda ilova bildirishnoma yuborishga ruxsat so'raydi va FCM yoki APNS-dan qurilmaning noyob tokenini oladi. Bu token — 4 KB gacha uzunlikdagi qator, ilova nusxasini noyob tarzda identifikatsiya qiladi. Token ilova qayta o'rnatilganda yoki qurilma zaxira nusxadan tiklanganda o'zgaradi.
class FirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
showNotification(message.notification)
}
}
Ilova serveri FCM API yoki APNS API-ga HTTP so'rov yuboradi, maqsadli tokenni, sarlavhani, matnni va qo'shimcha ma'lumotlarni ko'rsatadi. Platforma xizmati yetkazish statusi bilan javob beradi: success, invalid token (qurilma ilovani o'chirgan) yoki rate-limited (jo'natish chastotasi oshib ketgan).
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: "token-ni o'z serveringizga yuboring",
body: "Sizda yangi bildirishnoma bor!"
}
})
})
FCM va APNS o'rtasidagi tanlov maqsadli platformaga bog'liq. FCM Android va iOS-ni qo'llab-quvvatlaydi, APNS — faqat Apple ekotizimini. Kross-platformali mobil ilovalarni ishlab chiqish uchun muhim bo'lgan asosiy farqlarni ko'rib chiqaylik.
FCM — Google Play Services ustida ishlaydigan Google xizmati. Ikki yetkazib berish sxemasini qo'llab-quvvatlaydi: avtomatik ko'rsatiladigan bildirishnomalar (display notifications) va ilova o'zi qayta ishlaydigan data-bildirishnomalar. FCM bepul va jo'natiladigan xabarlar sonida cheklovga ega emas.
APNS — 10 MB gacha multimedia ilovalarini (rasmlar, video, audio) qo'llab-quvvatlaydigan Apple xizmati. APNS orqali jo'natish uchun TLS sertifikati yoki autentifikatsiya kaliti talab qilinadi. APNS bitta qurilmaga jo'natish chastotasini cheklaydi — daqiqada 150 bildirishnomadan ko'p bo'lmagan holda, undan keyin rate limiting ishga tushadi.
| Xususiyat | FCM | APNS |
|---|---|---|
| Platformalar | Android, iOS, Web | iOS, macOS, watchOS |
| Talablar | Google Play Services | Apple Developer Program |
| Media | 4 KB gacha (data) | 10 MB gacha (ilovalar) |
| Prioritet | normal/high | immediate/power-saving |
| Narx | bepul | bepul (hisob kerak) |
Push bildirishnomalari ko'rsatish usuli va maqsadiga ko'ra tasniflanadi. Turlarini tushunish foydalanuvchi bilan o'zaro aloqaning har bir stsenariysi uchun to'g'ri strategiyani tanlashga yordam beradi.
Eng keng tarqalgan tur — sarlavha va matn bilan ko'rsatiladigan bildirishnoma. Operatsion tizim uni avtomatik ravishda tizim pardasida, blok ekranida va banner shaklida ko'rsatadi. Dasturchi ovozni, tebranishni, ikonkadagi belgini va to'g'ridan-to'g'ri harakatlar uchun action tugmalarini (javob berish, ochish, rad etish) sozlashi mumkin.
Data-bildirishnomalar vizual ko'rsatilmasdan faqat payload ni o'z ichiga oladi. Ilova ularni fonda qayta ishlaydi: ma'lumotlarni sinxronlashtiradi, keshni yangilaydi yoki yuklab olishni boshlaydi. Android-da data-bildirishnomalar kafolatlangan holda yetkaziladi, iOS-da — faqat faol ilovada yoki background fetch orqali.
Zamonaviy mobil operatsion tizimlar rasmlar, GIF, video va audio bilan kengaytirilgan va media bildirishnomalarini qo'llab-quvvatlaydi. iOS-da bu UNNotificationAttachment orqali, Android-da — BigPictureStyle va InboxStyle bilan tizim pardasida bildirishnomaning ko'rinishini sozlash uchun amalga oshiriladi.
Jim bildirishnomalar foydalanuvchiga ko'rsatilmaydi va fon sinxronizatsiyasi uchun ishlatiladi. iOS-da ular ilovani ochishdan oldin ma'lumotlarni yangilash kabi vazifalar uchun yuqori prioritetga ega. Android ularni minimal prioritet bilan data-bildirishnomalar sifatida qabul qiladi.
Push bildirishnomalarini sozlash infratuzilma, server qismi va mijoz kodi darajasida choralar talab qiladi. Kross-platformali mobil loyiha uchun odatiy jarayonni ko'rib chiqaylik.
Android uchun Firebase Console da loyiha yaratish, google-services.json faylini loyihaga qo'shish va FirebaseMessagingService-ni sozlash kerak. Qurilma tokeni FirebaseInstanceId yoki FirebaseMessaging.getInstance().token orqali olinadi, so'ng birinchi ishga tushirishda yoki u o'zgarganda API orqali serverga yuboriladi.
iOS uchun Apple Developer Program-ga obuna bo'lish, Developer Portal-da Push sertifikati yoki APNS kalitini yaratish va Xcode-da Capability Push Notifications-ni faollashtirish talab qilinadi. Bildirishnomalarga ro'yxatdan o'tish UIApplication.shared.registerForRemoteNotifications orqali AppDelegate-da deviceToken olish bilan amalga oshiriladi.
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()
// token ni o'z serveriga yuborish
}
}
Server tomonida Push bildirishnomalari REST API yoki Admin SDK orqali jo'natiladi. FCM uchun Firebase Admin SDK (Node.js, Java, Python, Go uchun mavjud), APNS uchun — pusher kutubxonalari (Java uchun pushy, Node.js uchun apn2) ishlatiladi. Tokenlarni oxirgi yangilanish vaqti bilan ma'lumotlar bazasida saqlash tavsiya etiladi.
Push bildirishnomalari xavfsizligi juda muhim, chunki ular orqali maxfiy ma'lumotlar uzatilishi mumkin. Ikkala platforma ham asosiy himoya mexanizmlarini ta'minlaydi, ammo dasturchi ulardan to'g'ri foydalanishi kerak.
Push bildirishnomasining payload-i foydalanuvchilarning shaxsiy ma'lumotlarini o'z ichiga olishi mumkin: ismlar, tranzaksiya summalari, xabarlarga havolalar. FCM/APNS va qurilma o'rtasidagi aloqa kanali shifrlangan bo'lsa ham, ma'lumotlar uchinchi tomon dasturi tomonidan bildirishnoma ushlanishida ilova darajasida tutib olinishi mumkin. Nozik payload-ni serverda AES-256 algoritmi bilan shifrlash va qurilmada Keychain (iOS) yoki EncryptedSharedPreferences (Android) da saqlanadigan kalit bilan deshifrlash tavsiya etiladi.
Qurilma tokeni — qurilma buzilganda yoki trafik ushlanganda kompromat bo'lishi mumkin bo'lgan sessiya identifikatoridir. Ilova serveri jo'natishdan oldin tokenlarni tekshirishi kerak: ularni ma'lumotlar bazasi bilan solishtirish, faol bo'lmagan tokenlarni kuzatish va takroriy InvalidToken xatolarida ularni o'chirish. FCM va APNS noto'g'ri tokenlar uchun InvalidRegistration statusini qaytaradi — buni e'tiborsiz qoldirmang.
Chastotani nazorat qilmasdan, Push bildirishnomalari foydalanuvchilarni bezovta qiladigan va saqlanish darajasini pasaytiradigan spam vositasiga aylanishi mumkin. Serverda cheklovlar o'rnating: bir foydalanuvchiga soatiga 5 tadan ko'p bildirishnoma va 3 tadan ko'p bir xil xabar yubormaslik. Tranzaksiya bildirishnomalari (buyurtmani tasdiqlash, parolni o'zgartirish) uchun cheklovlar yuqoriroq bo'lishi mumkin — soatiga 10 tagacha, chunki ular muhim ma'lumotlarni olib yuradi. Jo'natish API si darajasida rate limiting dan foydalaning, shunda tajovuzkor sizning serveringiz orqali ommaviy jo'natishni amalga oshira olmasin.
Tez-tez so'raladigan savollar
Ha, APNS ga to'g'ridan-to'g'ri ulanish Android-da qo'llab-quvvatlanmaydi — Google Play Services bo'lmagan qurilmalar uchun Huawei Mobile Services (HMS) va o'z WebSocket ulanishlari kabi alternativalar ishlatiladi. Biroq, FCM bepul va ishonchliligi tufayli ko'pchilik ilovalar uchun standart bo'lib qolmoqda.
FCM va APNS oxirgi bildirishnomani o'z serverlarida saqlaydi va aloqa tiklanganda uni yetkazadi. Har bir qurilmada har bir ilovadan faqat oxirgi bildirishnoma saqlanadi, shuning uchun uzoq vaqt tarmoq bo'lmaganda oraliq xabarlar yo'qoladi.
Eng ko'p uchraydigan sabablar — muddati o'tgan Push sertifikati APNS (1 yil amal qiladi), noto'g'ri qurilma tokeni, sozlamalarda bildirishnomalar o'chirilgan yoki energiya tejash rejimi yoqilgan. Apple Developer Console da sertifikatni tekshiring va ilova UNUserNotificationCenter orqali ruxsat so'rayotganiga ishonch hosil qiling.
Android-da NotificationCompat.Builder da PendingIntent dan foydalaning, ochilishni Intent orqali kuzating. iOS-da — UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:) metodi. FCM har bir jo'natilgan bildirishnoma uchun yetkazish va ochilish hisobotlarini taqdim etadi.
Oz darajada — Push bildirishnomalari doimiy aloqani saqlamaydi; OT barcha ilovalar uchun yagona tizim kanalidan foydalanadi, bu esa umumiy energiya sarfini minimallashtiradi. Tez-tez jo'natish (har 5 daqiqada) qurilmani uyg'otish va uyqu rejimidan chiqarish uchun ko'proq energiya sarflaydi. iOS-da jim bildirishnomalar olingan ma'lumotlarni qayta ishlash uchun ilovaning fonda faollashishi sababli ko'proq energiya sarflaydi.
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.