Notifikasi push adalah salah satu cara paling efektif untuk berinteraksi dengan pengguna setelah instalasi aplikasi. Notifikasi ini memungkinkan untuk memberi tahu tentang pesan baru, diskon, pembaruan konten, atau mengingatkan tentang keranjang yang ditinggalkan. Notifikasi push (push notifications) bekerja melalui layanan cloud: Firebase Cloud Messaging (FCM) di Android dan Apple Push Notification Service (APNS) di iOS. Dalam artikel ini kita akan membahas arsitektur notifikasi, jenisnya, dan proses pengaturan untuk kedua platform. Informasi lebih lanjut — di dokumentasi resmi FCM.
Poin Penting
Notifikasi push adalah pesan yang dikirim server ke perangkat seluler tanpa permintaan dari aplikasi. Pesan melewati layanan cloud (FCM atau APNS) yang mengirimkannya ke perangkat bahkan jika aplikasi ditutup. Notifikasi dibagi menjadi dua jenis: notifikasi tampilan (ditampilkan kepada pengguna) dan notifikasi data (mengirimkan data untuk pemrosesan latar belakang).
Arsitektur notifikasi push mencakup tiga komponen: (1) server aplikasi — mengirim permintaan ke FCM/APNS; (2) layanan cloud — merutekan notifikasi; (3) aplikasi klien — menerima dan memproses notifikasi. Server harus mengetahui Device Token perangkat untuk mengirim notifikasi secara khusus kepadanya. Untuk pengiriman massal digunakan Topic Subscription — langganan perangkat ke saluran tematik (berita, promosi, cuaca).
Di setiap perangkat, notifikasi diproses oleh sistem operasi: Android — melalui NotificationManager dan NotificationChannel, iOS — melalui UNUserNotificationCenter. Pengguna dapat mengonfigurasi perilaku notifikasi untuk setiap saluran: mengizinkan suara, spanduk, tampilan di Layar Kunci, atau menonaktifkan sepenuhnya. Konfigurasi saluran yang tepat meningkatkan keterlibatan dan mengurangi tingkat berhenti berlangganan.
Di IT Sectr, kami merancang sistem notifikasi push dengan mempertimbangkan fitur spesifik platform sejak awal. Keputusan utama: pilihan antara FCM dan APNS langsung, format payload, frekuensi pengiriman, dan mekanisme langganan. Ini membantu menghindari situasi di mana notifikasi tidak sampai atau diblokir oleh sistem.
Firebase Cloud Messaging (FCM) adalah layanan lintas platform Google untuk mengirimkan notifikasi. FCM mendukung Android, iOS, Web, dan Flutter. Di iOS, FCM bekerja melalui APNS: FCM mengirim permintaan ke APNS, yang mengirimkan notifikasi ke perangkat. Keuntungan FCM: API tunggal untuk kedua platform, analitik bawaan, pengujian A/B, topik, dan segmen audiens.
Apple Push Notification Service (APNS) adalah layanan asli Apple. Hanya bekerja di perangkat Apple (iOS, macOS, watchOS, tvOS). Memerlukan otorisasi langsung melalui sertifikat TLS atau token (JWT). APNS menyediakan latensi pengiriman minimal dan integrasi langsung dengan fitur iOS: PushKit, Notification Service Extension, dan Peringatan Kritis.
Pilihan antara FCM dan APNS tergantung pada arsitektur proyek. Jika aplikasi hanya untuk iOS — APNS memberikan kontrol lebih. Jika lintas platform — FCM lebih nyaman dengan API tunggal. Banyak proyek menggunakan FCM sebagai layanan utama dan mengonfigurasi PushKit tambahan untuk VoIP di iOS. Pendekatan hibrida memungkinkan mendapatkan yang terbaik dari kedua sistem.
| Karakteristik | FCM | APNS |
|---|---|---|
| Platform | Android, iOS, Web, Flutter | iOS, macOS, watchOS, tvOS |
| Otorisasi | Kunci Server (Firebase Console) | Sertifikat TLS atau token JWT |
| Payload maksimum | 4 KB (data), 2 KB (notification) | 4 KB |
| Topik | Bawaan (Topic Messaging) | Tidak (diimplementasikan di sisi server) |
| Silent Push | Didukung | Didukung (content-available) |
| PushKit | Tidak | Ya (VoIP, aktivitas langsung) |
| Analitik | Firebase Analytics | Tidak ada bawaan |
| Pengiriman ke perangkat mati | Terbatas (tergantung pabrikan) | Ya, melalui PushKit |
Rich Notification adalah notifikasi yang berisi tidak hanya teks tetapi juga konten media: gambar, video, audio, dan tombol tindakan. Di Android diimplementasikan melalui gaya NotificationCompat: BigPictureStyle (gambar besar), BigTextStyle (teks diciutkan/diperluas), InboxStyle (daftar pesan), MediaStyle (kontrol pemutaran). Di iOS digunakan Notification Content Extension — target terpisah dengan UI khusus untuk notifikasi yang diperluas.
Silent Push (content-available di iOS) adalah notifikasi yang dikirimkan tanpa ditampilkan kepada pengguna. Ini ditujukan untuk pembaruan data latar belakang: sinkronisasi konten, pramuat, pembaruan widget. Di iOS, Silent Push memerlukan mengaktifkan Background Modes → Remote notifications. Di Android untuk menangani notifikasi latar belakang digunakan FirebaseMessagingService dengan onMessageReceived. Penting: di iOS, Silent Push memiliki batasan frekuensi dan tidak menjamin pengiriman jika aplikasi tidak berada di latar depan.
Interactive Notification memungkinkan pengguna melakukan tindakan tanpa membuka aplikasi. Di Android ini adalah tombol (Action) dalam notifikasi: "Balas", "Setujui", "Tolak". Tindakan diproses melalui PendingIntent, yang meluncurkan BroadcastReceiver atau Service. Di iOS, Notification Action didaftarkan melalui UNNotificationAction dan UNNotificationCategory. Tombol bisa berupa foreground (membuka aplikasi), background (menjalankan di latar belakang), atau destructive (tindakan tidak dapat dibatalkan — hapus, blokir).
Notification Content Extension (iOS) — pengontrol tampilan khusus untuk menampilkan konten notifikasi yang diperluas saat tekan lama atau 3D Touch. Notification Service Extension (iOS) — middleware untuk memodifikasi konten notifikasi sebelum ditampilkan: mendekripsi pesan E2E, memuat gambar, mengaburkan data rahasia. Di Android tidak ada analog langsung — semua modifikasi dilakukan di FirebaseMessagingService.
Untuk Android diperlukan: (1) menambahkan Firebase SDK ke proyek (google-services.json); (2) membuat NotificationChannel (Android 8+) untuk setiap kategori notifikasi; (3) mengimplementasikan FirebaseMessagingService untuk menerima token dan pesan masuk. Notification Channel wajib — tanpanya notifikasi tidak akan ditampilkan di Android 8+. Saluran memiliki prioritas (IMPORTANCE_HIGH — suara + popup, IMPORTANCE_LOW — tanpa suara) dan dapat dikonfigurasi oleh pengguna di pengaturan sistem.
Untuk iOS diperlukan: (1) mengaktifkan kemampuan Push Notifications di Xcode; (2) mengonfigurasi kunci APNS di Apple Developer Portal; (3) meminta otorisasi melalui UNUserNotificationCenter.requestAuthorization — ini adalah dialog sistem yang ditampilkan sekali. Tanggapan pengguna sangat penting: jika izin tidak diberikan, notifikasi tidak akan dikirimkan. Disarankan untuk menjelaskan kepada pengguna mengapa notifikasi diperlukan sebelum menampilkan dialog sistem (pre-permission prompt).
Device Token (iOS) dan Registration Token (Android) adalah pengidentifikasi perangkat unik untuk notifikasi push. Token dihasilkan saat pertama kali aplikasi dijalankan dan dapat berubah: saat instalasi ulang, penghapusan data, pengaturan ulang privasi. Server harus memperbarui token secara teratur. Firebase menyediakan API yang nyaman untuk manajemen token melalui onNewToken, serta panel untuk pengiriman notifikasi uji (Firebase Console → Cloud Messaging).
Topic Subscription adalah salah satu mekanisme FCM yang paling efektif. Perangkat berlangganan ke topik (misalnya, "news", "promo_users_ios"), dan server mengirim notifikasi berdasarkan topik tanpa perlu menyimpan daftar token. Firebase Topics mendukung hingga satu juta pelanggan per topik dan pengiriman bersyarat (Condition) melalui bahasa ekspresi: "'news' in topics && ('US' in topics || 'UK' in topics)".
Notification Payload adalah struktur JSON yang dikirim melalui FCM/APNS. Untuk FCM: notification terpisah (bagian yang terlihat — judul, tubuh, gambar) dan data (bidang khusus untuk aplikasi). Untuk APNS: kamus aps dengan alert, badge, sound, category, dan content-available. Struktur payload yang benar sangat penting: jika notification + data tiba bersamaan, aplikasi di latar belakang mungkin tidak menerima data. Disarankan hanya menggunakan pesan data untuk Android dan mengirimkan bidang visual secara terpisah melalui FCM Console.
Pertanyaan yang Sering Diajukan
FCM (Firebase Cloud Messaging) adalah layanan Google untuk Android dan notifikasi lintas platform. APNS (Apple Push Notification Service) adalah layanan Apple hanya untuk iOS/macOS. FCM dapat mengirimkan notifikasi melalui APNS di iOS, bertindak sebagai server proxy.
Rich Notification adalah notifikasi yang ditingkatkan dengan konten media: gambar, video, audio, tombol tindakan. Di iOS diimplementasikan melalui Notification Content Extension; di Android melalui BigPictureStyle dan InboxStyle.
Device Token adalah pengidentifikasi perangkat unik untuk mengirim notifikasi push. Di Android ini adalah Registration Token dari FCM; di iOS adalah Device Token dari APNS. Token dapat berubah saat instalasi ulang aplikasi atau pengaturan ulang, sehingga perlu diperbarui di server.
Silent Push (notifikasi senyap) adalah notifikasi tanpa ditampilkan kepada pengguna. Digunakan untuk pembaruan data latar belakang: sinkronisasi konten, pembaruan widget, pengambilan awal. Di iOS memerlukan mengaktifkan Background Modes → Remote notifications.
PushKit adalah kerangka kerja Apple untuk mengirimkan notifikasi prioritas tinggi yang digunakan dalam aplikasi VoIP (panggilan, perpesanan). PushKit mengirimkan notifikasi bahkan jika aplikasi dimatikan dan menjamin peluncuran aplikasi untuk pemrosesan.
Ringkasan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.