Notifikasi Push adalah pesan yang dikirim oleh server ke perangkat seluler bahkan saat aplikasi ditutup. Menurut data Google Firebase, 2024, notifikasi Push diproses melalui layanan khusus — FCM di Android dan APNS di iOS, yang mendukung pengiriman waktu nyata ke jutaan perangkat secara bersamaan. Notifikasi ini telah menjadi bagian tak terpisahkan dari pengalaman pengguna di aplikasi seluler modern.
Poin Utama
Notifikasi Push adalah pesan singkat yang dikirim server aplikasi ke perangkat pengguna tanpa permintaan eksplisit. Notifikasi ini ditampilkan dalam bentuk spanduk, lencana pada ikon, atau sinyal suara, menarik perhatian pengguna ke aplikasi dan memberi informasi tentang peristiwa penting.
Notifikasi Push terdiri dari judul, isi pesan, dan data opsional (payload). Tidak seperti SMS, notifikasi Push gratis bagi pengguna dan dikirimkan melalui infrastruktur layanan cloud — FCM untuk Android dan APNS untuk iOS. Tujuan utama notifikasi Push: meningkatkan keterlibatan, memberi informasi tentang peristiwa, dan mengembalikan pengguna ke aplikasi.
Statistik penggunaan menunjukkan bahwa notifikasi Push yang dikonfigurasi dengan benar meningkatkan retensi aplikasi sebesar 30-60%. Namun, frekuensi notifikasi yang berlebihan menyebabkan pembatalan langganan — lebih dari 60% pengguna menonaktifkan notifikasi jika dikirim lebih dari tiga kali sehari.
Sistem Push terdiri dari tiga komponen: server aplikasi (app server), layanan platform (FCM/APNS), dan aplikasi klien di perangkat. Server mengirimkan permintaan ke layanan platform, yang mengirimkan notifikasi ke perangkat target melalui koneksi permanen dengan sistem operasi.
Mekanisme pengiriman notifikasi Push didasarkan pada koneksi permanen antara perangkat dan layanan platform. Sistem operasi mempertahankan saluran komunikasi terenkripsi yang dilalui semua pesan Push.
Saat pertama kali dijalankan, aplikasi meminta izin untuk mengirim notifikasi dan menerima token perangkat unik dari FCM atau APNS. Token ini adalah string sepanjang hingga 4 KB yang secara unik mengidentifikasi instance aplikasi. Token berubah saat instalasi ulang aplikasi atau pemulihan perangkat dari cadangan.
class FirebaseMessagingService :
FirebaseMessagingService() {
override fun onNewToken(token: String) {
sendTokenToServer(token)
}
override fun onMessageReceived(
message: RemoteMessage
) {
showNotification(message.notification)
}
}
Server aplikasi mengirimkan permintaan HTTP ke FCM API atau APNS API, dengan menentukan token target, judul, isi, dan data tambahan. Layanan platform merespons dengan status pengiriman: success, invalid token (perangkat telah menghapus aplikasi), atau rate-limited (frekuensi pengiriman berlebihan).
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: "kirim token ke server Anda sendiri",
body: "Anda memiliki notifikasi baru!"
}
})
})
Pilihan antara FCM dan APNS tergantung pada platform target. FCM mendukung Android dan iOS, APNS — hanya ekosistem Apple. Mari kita lihat perbedaan utama yang penting untuk pengembangan aplikasi seluler lintas platform.
FCM adalah layanan Google yang berjalan di atas Google Play Services. Mendukung dua skema pengiriman: notifikasi dengan tampilan otomatis (display notifications) dan notifikasi data yang diproses sendiri oleh aplikasi. FCM gratis dan tidak memiliki batasan jumlah pesan yang dikirim.
APNS adalah layanan Apple dengan dukungan untuk lampiran multimedia (gambar, video, audio) hingga 10 MB. Untuk mengirim melalui APNS diperlukan sertifikat TLS atau kunci autentikasi. APNS membatasi frekuensi pengiriman ke satu perangkat — tidak lebih dari 150 notifikasi per menit, setelah itu rate limiting diaktifkan.
| Karakteristik | FCM | APNS |
|---|---|---|
| Platform | Android, iOS, Web | iOS, macOS, watchOS |
| Persyaratan | Google Play Services | Apple Developer Program |
| Media | hingga 4 KB (data) | hingga 10 MB (lampiran) |
| Prioritas | normal/high | immediate/power-saving |
| Biaya | gratis | gratis (akun diperlukan) |
Notifikasi Push diklasifikasikan berdasarkan cara tampilan dan tujuannya. Memahami jenis-jenisnya membantu memilih strategi yang tepat untuk setiap skenario interaksi dengan pengguna.
Jenis yang paling umum — notifikasi yang ditampilkan dengan judul dan isi. Sistem operasi secara otomatis menampilkannya di panel notifikasi, layar kunci, dan dalam bentuk spanduk. Pengembang dapat mengatur suara, getaran, lencana ikon, dan tombol aksi untuk tindakan langsung (membalas, membuka, menolak).
Notifikasi data hanya berisi payload tanpa tampilan visual. Aplikasi memprosesnya di latar belakang: menyinkronkan data, memperbarui cache, atau memulai unduhan. Di Android, notifikasi data dikirimkan secara terjamin, di iOS — hanya saat aplikasi aktif atau melalui background fetch.
Sistem operasi seluler modern mendukung notifikasi lanjutan dan media dengan gambar, GIF, video, dan audio. Di iOS diimplementasikan melalui UNNotificationAttachment, di Android — melalui BigPictureStyle dan InboxStyle untuk menyesuaikan tampilan notifikasi di panel sistem.
Notifikasi diam tidak ditampilkan kepada pengguna dan digunakan untuk sinkronisasi latar belakang. Di iOS memiliki prioritas tinggi untuk tugas seperti memperbarui data sebelum membuka aplikasi. Android memperlakukannya sebagai notifikasi data dengan prioritas minimal.
Konfigurasi notifikasi Push memerlukan tindakan di tingkat infrastruktur, sisi server, dan kode klien. Mari kita lihat proses tipikal untuk proyek seluler lintas platform.
Untuk Android, perlu membuat proyek di Firebase Console, menambahkan google-services.json ke proyek, dan mengonfigurasi FirebaseMessagingService. Token perangkat diperoleh melalui FirebaseInstanceId atau FirebaseMessaging.getInstance().token, kemudian dikirim ke server melalui API saat pertama kali dijalankan atau saat berubah.
Untuk iOS diperlukan langganan Apple Developer Program, pembuatan sertifikat Push atau kunci APNS di Developer Portal, dan mengaktifkan Capability Push Notifications di Xcode. Pendaftaran untuk notifikasi dilakukan melalui UIApplication.shared.registerForRemoteNotifications dengan penerimaan deviceToken di AppDelegate.
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()
// kirim token ke server Anda
}
}
Di sisi server, notifikasi Push dikirim melalui REST API atau Admin SDK. Untuk FCM digunakan Firebase Admin SDK (tersedia untuk Node.js, Java, Python, Go), untuk APNS — library pusher (pushy untuk Java, apn2 untuk Node.js). Disarankan menyimpan token di database dengan stempel waktu pembaruan terakhir.
Keamanan notifikasi Push sangat penting karena data rahasia dapat dikirim melaluinya. Kedua platform menyediakan mekanisme perlindungan dasar, tetapi pengembang harus menggunakannya dengan benar.
Payload notifikasi Push dapat berisi data pribadi pengguna: nama, jumlah transaksi, tautan ke pesan. Bahkan jika saluran komunikasi antara FCM/APNS dan perangkat dienkripsi, data dapat disadap di tingkat aplikasi saat notifikasi dicegat oleh perangkat lunak pihak ketiga. Disarankan untuk mengenkripsi payload sensitif di server dengan algoritma AES-256 dan mendekripsinya di perangkat menggunakan kunci yang disimpan di Keychain (iOS) atau EncryptedSharedPreferences (Android).
Token perangkat adalah pengidentifikasi sesi yang dapat dikompromikan saat perangkat diretas atau lalu lintas disadap. Server aplikasi harus memeriksa token sebelum mengirim: mencocokkannya dengan database, melacak token tidak aktif, dan menghapusnya saat kesalahan InvalidToken berulang. FCM dan APNS mengembalikan status InvalidRegistration untuk token yang tidak valid — jangan abaikan.
Tanpa kontrol frekuensi, notifikasi Push dapat menjadi alat spam yang mengganggu pengguna dan menurunkan retensi. Tetapkan batasan di server: tidak lebih dari 5 notifikasi per jam untuk satu pengguna dan tidak lebih dari 3 pesan identik. Untuk notifikasi transaksional (konfirmasi pesanan, perubahan kata sandi) batasannya bisa lebih tinggi — hingga 10 per jam, karena membawa informasi yang sangat penting. Gunakan rate limiting di tingkat API pengiriman agar penyerang tidak dapat memicu pengiriman massal melalui server Anda.
Pertanyaan yang Sering Diajukan
Ya, koneksi langsung ke APNS tidak didukung di Android — untuk perangkat tanpa Google Play Services digunakan alternatif seperti Huawei Mobile Services (HMS) dan koneksi WebSocket sendiri. Namun, FCM tetap menjadi standar untuk sebagian besar aplikasi karena gratis dan andal.
FCM dan APNS menyimpan notifikasi terakhir di server mereka dan mengirimkannya saat koneksi dipulihkan. Di setiap perangkat hanya disimpan notifikasi terakhir dari setiap aplikasi, sehingga saat tidak ada jaringan dalam waktu lama, pesan perantara akan hilang.
Penyebab paling umum adalah sertifikat Push kedaluwarsa APNS (berlaku 1 tahun), token perangkat tidak valid, notifikasi dinonaktifkan di pengaturan, atau mode hemat energi aktif. Periksa sertifikat di Apple Developer Console dan pastikan aplikasi meminta izin melalui UNUserNotificationCenter.
Di Android gunakan PendingIntent di NotificationCompat.Builder dengan pelacakan pembukaan melalui Intent. Di iOS — metode UNUserNotificationCenterDelegate.userNotificationCenter(_:didReceive:withCompletionHandler:). FCM menyediakan laporan pengiriman dan pembukaan untuk setiap notifikasi yang dikirim.
Tidak signifikan — notifikasi Push tidak mempertahankan koneksi permanen; sistem operasi menggunakan saluran sistem tunggal untuk semua aplikasi, yang meminimalkan konsumsi energi total. Pengiriman yang sering (setiap 5 menit) menghabiskan lebih banyak energi untuk membangunkan perangkat dan keluar dari mode tidur. Notifikasi diam di iOS menghabiskan lebih banyak energi karena aktivasi aplikasi di latar belakang untuk memproses data yang diterima.
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.
Baca juga