Ang mga push notification ay isa sa mga pinakamabisang paraan upang makipag-ugnayan sa user pagkatapos mag-install ng app. Pinapayagan nitong magpaalam tungkol sa bagong mensahe, diskwento, pag-update ng nilalaman o magpaalala tungkol sa nakalimutang cart. Push notification (push notifications) gumagana sa pamamagitan ng mga cloud service: Firebase Cloud Messaging (FCM) sa Android at Apple Push Notification Service (APNS) sa iOS. Sa artikulong ito, susuriin natin ang arkitektura ng notification, mga uri nito at proseso ng pag-set up para sa parehong platform. Higit pang impormasyon — sa opisyal na dokumentasyon ng FCM.
Mga Pangunahing Punto
Ang push notification ay isang mensahe na ipinapadala ng server sa isang mobile device nang walang kahilingan mula sa app. Ang mensahe ay dumadaan sa isang cloud service (FCM o APNS) na naghahatid nito sa device kahit na sarado ang app. Ang mga notification ay nahahati sa dalawang uri: display notification (ipinapakita sa user) at data notification (nagpapadala ng data para sa background processing).
Ang arkitektura ng push notification ay may tatlong bahagi: (1) app server — nagpapadala ng kahilingan sa FCM/APNS; (2) cloud service — nagruruta ng notification; (3) client app — tumatanggap at nagpoproseso ng notification. Dapat alam ng server ang Device Token ng device upang magpadala ng notification partikular dito. Para sa mass sending, ginagamit ang Topic Subscription — pag-subscribe ng mga device sa mga tematikong channel (balita, promo, panahon).
Sa bawat device, ang mga notification ay pinoproseso ng operating system: Android — sa pamamagitan ng NotificationManager at NotificationChannel, iOS — sa pamamagitan ng UNUserNotificationCenter. Maaaring i-configure ng user ang gawi ng notification para sa bawat channel: payagan ang tunog, banner, pagpapakita sa Lock Screen, o ganap na huwag paganahin. Ang tamang configuration ng channel ay nagpapataas ng engagement at nagpapababa ng rate ng pag-unsubscribe.
Sa IT Sectr, dinisenyo namin ang push notification system na isinasaalang-alang ang mga platform-specific na feature mula pa sa simula. Mga pangunahing desisyon: pagpili sa pagitan ng FCM at direktang APNS, format ng payload, dalas ng pagpapadala, at mekanika ng subscription. Ito ay nakakatulong upang maiwasan ang mga sitwasyon kung saan hindi dumarating ang mga notification o hinarang ng system.
Ang Firebase Cloud Messaging (FCM) ay cross-platform na serbisyo ng Google para sa paghahatid ng notification. Sinusuportahan ng FCM ang Android, iOS, Web at Flutter. Sa iOS, gumagana ang FCM sa pamamagitan ng APNS: nagpapadala ang FCM ng kahilingan sa APNS, na naghahatid ng notification sa device. Mga bentahe ng FCM: nag-iisang API para sa parehong platform, built-in analytics, A/B testing, mga paksa at segment ng audience.
Ang Apple Push Notification Service (APNS) ay native na serbisyo ng Apple. Gumagana lamang sa mga Apple device (iOS, macOS, watchOS, tvOS). Nangangailangan ng direktang awtorisasyon sa pamamagitan ng TLS certificate o token (JWT). Ang APNS ay nagbibigay ng minimal na delivery latency at direktang integration sa mga iOS feature: PushKit, Notification Service Extension at Critical Alerts.
Ang pagpili sa pagitan ng FCM at APNS ay depende sa arkitektura ng proyekto. Kung ang app ay para sa iOS lamang — ang APNS ay nagbibigay ng higit na kontrol. Kung cross-platform — ang FCM ay mas maginhawa sa nag-iisang API. Maraming proyekto ang gumagamit ng FCM bilang pangunahing serbisyo at nagko-configure ng karagdagang PushKit para sa VoIP sa iOS. Ang hybrid approach ay nagbibigay-daan upang makuha ang pinakamahusay mula sa parehong sistema.
| Katangian | FCM | APNS |
|---|---|---|
| Platform | Android, iOS, Web, Flutter | iOS, macOS, watchOS, tvOS |
| Awtorisasyon | Server Key (Firebase Console) | TLS certificate o JWT token |
| Max payload | 4 KB (data), 2 KB (notification) | 4 KB |
| Mga paksa | Built-in (Topic Messaging) | Wala (implement sa server-side) |
| Silent Push | Sinusuportahan | Sinusuportahan (content-available) |
| PushKit | Wala | Oo (VoIP, live activities) |
| Analytics | Firebase Analytics | Walang built-in |
| Delivery sa patay na device | Limitado (depende sa manufacturer) | Oo, sa pamamagitan ng PushKit |
Ang Rich Notification ay isang notification na naglalaman hindi lamang ng text kundi pati na rin ng media content: mga larawan, video, audio at action button. Sa Android ito ay implementado sa pamamagitan ng NotificationCompat styles: BigPictureStyle (malaking larawan), BigTextStyle (naka-collapse/expanded na text), InboxStyle (listahan ng mensahe), MediaStyle (kontrol sa playback). Sa iOS ginagamit ang Notification Content Extension — isang hiwalay na target na may custom UI para sa expanded notification.
Ang Silent Push (content-available sa iOS) ay isang notification na inihahatid nang hindi ipinapakita sa user. Ito ay para sa background data update: content synchronization, preloading, widget updates. Sa iOS, ang Silent Push ay nangangailangan ng pag-enable ng Background Modes → Remote notifications. Sa Android para sa paghawak ng background notification ay ginagamit ang FirebaseMessagingService na may onMessageReceived. Mahalaga: sa iOS, ang Silent Push ay may mga limitasyon sa dalas at hindi ginagarantiyahan ang paghahatid kung ang app ay hindi nasa foreground.
Ang Interactive Notification ay nagpapahintulot sa user na magsagawa ng aksyon nang hindi binubuksan ang app. Sa Android ito ay mga button (Action) sa notification: "Tumugon", "Aprubahan", "Tanggihan". Ang mga aksyon ay pinoproseso sa pamamagitan ng PendingIntent, na naglulunsad ng BroadcastReceiver o Service. Sa iOS, ang Notification Action ay nirerehistro sa pamamagitan ng UNNotificationAction at UNNotificationCategory. Ang mga button ay maaaring foreground (magbukas ng app), background (magsagawa sa background) o destructive (hindi na mababawi na aksyon — tanggalin, harangan).
Notification Content Extension (iOS) — isang custom view controller para sa pagpapakita ng extended na nilalaman ng notification sa matagal na pagpindot o 3D Touch. Notification Service Extension (iOS) — middleware para sa pagbabago ng nilalaman ng notification bago ipakita: pag-decrypt ng E2E message, pag-load ng larawan, pag-obfuscate ng kumpidensyal na data. Sa Android walang direktang analog — lahat ng pagbabago ay ginagawa sa FirebaseMessagingService.
Para sa Android kinakailangan: (1) magdagdag ng Firebase SDK sa proyekto (google-services.json); (2) lumikha ng NotificationChannel (Android 8+) para sa bawat kategorya ng notification; (3) i-implement ang FirebaseMessagingService para sa pagtanggap ng token at papasok na mensahe. Notification Channel ay sapilitan — kung wala ito, hindi ipapakita ang mga notification sa Android 8+. Ang mga channel ay may priyoridad (IMPORTANCE_HIGH — tunog + popup, IMPORTANCE_LOW — walang tunog) at maaaring i-configure ng user sa mga setting ng system.
Para sa iOS kinakailangan: (1) i-enable ang Push Notifications capability sa Xcode; (2) i-configure ang APNS key sa Apple Developer Portal; (3) humiling ng awtorisasyon sa pamamagitan ng UNUserNotificationCenter.requestAuthorization — ito ay isang system dialog na ipinapakita nang isang beses. Ang tugon ng user ay kritikal: kung hindi ibinigay ang pahintulot, hindi maihahatid ang mga notification. Inirerekomenda na ipaliwanag sa user kung bakit kailangan ang mga notification bago ipakita ang system dialog (pre-permission prompt).
Device Token (iOS) at Registration Token (Android) ay mga natatanging identifier ng device para sa push notification. Ang token ay nabuo sa unang paglunsad ng app at maaaring magbago: sa muling pag-install, pag-clear ng data, pag-reset ng mga setting ng privacy. Dapat regular na i-update ng server ang mga token. Ang Firebase ay nagbibigay ng maginhawang API para sa pamamahala ng token sa pamamagitan ng onNewToken, pati na rin ng panel para sa test notification sending (Firebase Console → Cloud Messaging).
Ang Topic Subscription ay isa sa mga pinakaepektibong mekanismo ng FCM. Ang isang device ay nag-subscribe sa isang paksa (halimbawa, "news", "promo_users_ios"), at ang server ay nagpapadala ng mga notification ayon sa paksa nang hindi kinakailangang mag-imbak ng listahan ng mga token. Firebase Topics ay sumusuporta ng hanggang isang milyong subscriber bawat paksa at kondisyonal na pagpapadala (Condition) sa pamamagitan ng wika ng expression: "'news' in topics && ('US' in topics || 'UK' in topics)".
Ang Notification Payload ay ang JSON structure na ipinapadala sa pamamagitan ng FCM/APNS. Para sa FCM: hiwalay na notification (nakikitang bahagi — pamagat, body, larawan) at data (custom field para sa app). Para sa APNS: aps dictionary na may alert, badge, sound, category at content-available. Ang tamang istraktura ng payload ay kritikal: kung ang notification + data ay dumating nang sabay, ang app sa background ay maaaring hindi makatanggap ng data. Inirerekomenda na gumamit lamang ng data message para sa Android at ipasa ang mga visual field nang hiwalay sa pamamagitan ng FCM Console.
Mga Madalas Itanong
Ang FCM (Firebase Cloud Messaging) ay serbisyo ng Google para sa Android at cross-platform notification. Ang APNS (Apple Push Notification Service) ay serbisyo ng Apple para lamang sa iOS/macOS. Ang FCM ay maaaring maghatid ng notification sa pamamagitan ng APNS sa iOS, na kumikilos bilang proxy server.
Ang Rich Notification ay isang pinahusay na notification na may media content: mga larawan, video, audio, action button. Sa iOS ito ay implementado sa pamamagitan ng Notification Content Extension; sa Android sa pamamagitan ng BigPictureStyle at InboxStyle.
Ang Device Token ay isang natatanging identifier ng device para sa pagpapadala ng push notification. Sa Android ito ay ang Registration Token mula sa FCM; sa iOS ito ay ang Device Token mula sa APNS. Ang token ay maaaring magbago sa muling pag-install ng app o pag-reset ng mga setting, kaya kailangan itong i-update sa server.
Ang Silent Push (tahimik na notification) ay isang notification na hindi ipinapakita sa user. Ito ay ginagamit para sa background data updates: content synchronization, widget updates, prefetching. Sa iOS ay nangangailangan ng pag-enable ng Background Modes → Remote notifications.
Ang PushKit ay isang Apple framework para sa paghahatid ng mataas na priyoridad na notification na ginagamit sa VoIP apps (mga tawag, messenger). Ang PushKit ay naghahatid ng notification kahit na ang app ay pinatay at ginagarantiyahan ang paglunsad ng app para sa pagproseso.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.