Menyiapkan Push Notifications di iOS
Indonesian (Bahasa Indonesia) translation by Sap (you can also view the original English article)
Pengenalan
Apple awalnya memperkenalkan push notifications untuk memungkinkan aplikasi merespons kejadian jika aplikasi tidak berjalan di latar depan. Namun, sistem operasi dan perangkat iOS telah berubah secara signifikan selama beberapa tahun terakhir dan aplikasi tidak perlu hanya mengandalkan push notifications untuk melakukan tugas di latar belakang.
Ini tidak berarti bahwa push notifications tidak lagi berguna. Push notifications sangat bagus untuk memberi tahu aplikasi tentang peristiwa penting dan untuk mencegah pengguna aplikasi Anda terlibat. Selain itu, jangan lupa aplikasi yang masih tidak diijinkan berjalan di latar belakang tanpa batasan. Dengan kata lain, tujuan asli push notification masih berlaku.
Bahkan para pengembang iOS yang paling berpengalaman menggaruk kepala mereka dari waktu ke waktu ketika mereka harus berurusan dengan provisioning aplikasi. Sayangnya, push notifications menambah kompleksitas ini. Dengan tutorial ini, saya berharap untuk menunjukkan kepada Anda bahwa menyiapkan push notifications seharusnya tidak menjadi mimpi buruk. Ikuti dan saya berjanji bahwa Anda akan mengirimkan push notifications dalam waktu singkat.
1. Prasyarat
Anda memerlukan dua hal jika Anda ingin mengikuti saya. Hal pertama yang Anda butuhkan adalah perangkat fisik untuk menerima push notifications, karena iOS Simulator tidak mendukung push notifications. Hal kedua yang Anda butuhkan adalah akun pengembang iOS berbayar. Hanya akun berbayar yang bisa menyediakan aplikasi untuk berjalan di perangkat fisik.
2. Setup Proyek
Tujuan dari tutorial ini adalah untuk membangun sebuah aplikasi yang disiapkan untuk menerima push notifications. Buka Xcode dan buat proyek baru berdasarkan template Single View Application.



Namai proyek Push, masukkan company identifier dan class prefix, dan tetapkan Perangkat ke iPhone.



3. Pendaftaran
Meskipun saya tidak akan membahas infrastruktur backend solid push notifications, penting bagi Anda untuk mengetahui dan memahami aplikasi Anda yang perlu dilakukan untuk menerima push notifications dan mengapa hal itu dilakukan.
Buka TSPAppDelegate.m dan perbarui application:didFinishLaunchingWithOptions:
seperti yang ditunjukkan di bawah ini. Kami memanggil registerForRemoteNotificationTypes:
pada objek aplication
, menyampaikan jenis pemberitahuan yang kami minati. Sistem operasi sekarang tahu bahwa aplikasi tertarik untuk menerima push notifications.
1 |
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
2 |
// Register for Remote Notifications
|
3 |
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)]; |
4 |
|
5 |
return YES; |
6 |
}
|
Sistem operasi menghubungi server Apple dan mendapatkan token perangkat untuk secara unik mengidentifikasi perangkat yang sedang dijalankan aplikasi. Token perangkat ini digunakan oleh infrastruktur server Anda untuk mengirim push notifications. Hal ini dilakukan dengan mengirimkan token perangkat beserta push notification aktual ke server Apple. Server Apple bertanggung jawab untuk mendistribusikan push notifications ke perangkat yang sesuai.
Perhatikan bahwa token perangkat berbeda untuk setiap aplikasi dan bahkan dapat berubah seiring waktu untuk aplikasi yang sama. Oleh karena itu Apple merekomendasikan untuk meminta token perangkat setiap kali aplikasi diluncurkan dan mengirim token perangkat ke backend Anda untuk memastikan token perangkat sudah terbaru.
Jika Anda menggunakan layanan seperti Parse atau Urban Airship, maka ini adalah sesuatu yang tidak perlu Anda khawatirkan. Dalam hal ini, Anda hanya perlu mengirim ke backend perangkat token iOS Anda.
Methods yang memberitahu aplikasi Anda apakah mendaftar untuk remote notifications berhasil atau tidak application:didRegisterForRemoteNotificationsWithDeviceToken
dan application:didFailToRegisterForRemoteNotificationsWithError
masing-masing. Untuk saat ini, terapkan methods ini seperti yang ditunjukkan di bawah ini.
1 |
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { |
2 |
NSLog(@"Did Register for Remote Notifications with Device Token (%@)", deviceToken); |
3 |
}
|
1 |
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { |
2 |
NSLog(@"Did Fail to Register for Remote Notifications"); |
3 |
NSLog(@"%@, %@", error, error.localizedDescription); |
4 |
|
5 |
}
|
Kedua methods tersebut dinyatakan oleh protokol UIApplicationDelegate
. Protokol ini juga menyatakan method lain, application:didReceiveRemoteNotification:
, yang dipanggil saat aplikasi menerima remote notification. Terserah Anda untuk menangani masuk push notification. application:didReceiveRemoteNotification
: method memberi Anda payload push notification sebagai objek NSDictionary
. Aplikasi Anda perlu memutuskan bagaimana seharusnya menanggapi push notification.
Jika Anda menjalankan aplikasi Anda, maka application:didFailToRegisterForRemoteNotificationsWithError
: method akan dipanggil. Ini tidak mengherankan karena kami belum selesai menyiapkan aplikasi kami untuk push notifications. Sebagai pengingat, remote notifications tidak didukung oleh Simulator iOS. Anda memerlukan perangkat fisik untuk menyelesaikan tutorial ini.
4. Sertifikat SSL
Untuk menyelesaikan langkah selanjutnya, Anda perlu masuk ke akun pengembang iOS di iOs Dev center Apple. Pilih Identifiers dari bagian iOs Apps.



Klik tombol tambah di kanan atas dan masukkan App ID Description. Ini membantu Anda mengidentifikasi ID Aplikasi nanti.



Anda dapat meninggalkan seperti App ID Prefix, namun App ID Suffix harus ditetapkan ke Explicit App ID, bukan Wildcard App ID. Jika Anda ingin aplikasi menerima remote notifications, Anda harus menggunakan Explicit App ID, seperti com.tutsplus.push, bukan com.tutsplus.*.



Di bagian App Services, aktifkan Push Notifications. Klik Continue untuk mengirimkan form dan klik Submit untuk membuat App ID.






Dari daftar ID Aplikasi, pilih yang baru Anda buat dan klik tombol Edit di bawahnya. Gulir ke bawah sampai Anda melihat bagian yang mencakup push notifications. Anda harus melihat dua tombol berlabel Create Certificate... seperti gambar di bawah ini.



Seperti yang saya sebutkan sebelumnya, backend Anda berkomunikasi dengan server Apple untuk mengirim remote notifications ke aplikasi Anda. Backend Anda mengirim remote notifications ke aplikasi Anda melalui server Apple. Untuk alasan ini, Apple perlu mengetahui bahwa hanya server Anda yang bisa terhubung dengan server mereka. Anda tidak ingin orang lain mengirim remote notifications ke aplikasi Anda.
Oleh karena itu, Apple mengharuskan Anda membuat sertifikat SSL. Banyak developers merasa ngeri dengan kata-kata "certificates" dan "provisioning", tapi sebenarnya tidak sesulit itu. Ikuti bersama dan Anda akan siap dalam waktu kurang dari dua menit.
Buka Keychain Access pada mesin development Anda dan pilih Certificate Assistant > Request a Certificate From a Certificate Authority ... dari menu Keychain Access. Periksa kembali apakah tidak ada tombol yang dipilih di Keychain Access saat Anda memilih opsi ini.
Masukkan alamat email dan nama umum untuk mengidentifikasi certificate nanti. Biarkan bidang CA Email kosong dan pilih Saved to disk. Klik Lanjutkan dan simpan permintaan certificate signing ke hard drive Anda.



Anda telah menciptakan beberapa hal dengan menyelesaikan langkah ini. Anda telah membuat permintaan certificate signing serta public key dan private key. Tombolnya harus terlihat di Keychain Access seperti gambar di bawah ini.



Kembali ke iOS Dev Center dan klik tombol Create Certificate... yang telah kita lihat sebelumnya. Apple memberi tahu Anda langkah mana yang perlu Anda lakukan untuk membuat permintaan certificate signing, namun kami telah menyelesaikannya. Klik Continue, upload permintaan penandatanganan sertifikat dengan mengklik tombol Choose File ..., dan tekan Generate untuk menghasilkan SSL certificate.



Seperti yang diinstruksikan Apple, unduh certificate dan klik dua kali untuk memasangnya di Keychain Access. Periksa kembali apakah certificate ditambahkan ke Keychain Access dan ditautkan ke private key yang benar.



Langkah selanjutnya, penyediaan aplikasi, adalah sesuatu yang bisa menghost banyak developer. Biarkan aku memandu Anda melewatinya.
5. Application Provisioning
Sebelum kami dapat menguji penyiapan push notification kami, kami perlu membuat profil provisioning untuk aplikasi kami. Di iOS Dev Center, pilih bagian Development di Bagian Provisioning Profiles. Klik tombol tambah di kanan atas dan pilih iOS App Development di bagian Development.



Klik Continue dan pilih App ID Anda dari daftar. Pilih certificates yang ingin Anda sertakan di profil provisioning dan klik Continue. Karena kami membuat profil provisioning untuk development, kami juga perlu menentukan perangkat mana yang perlu disertakan dalam profil provisioning. Pastikan perangkat uji disertakan. Berikan profil provisioning nama yang masuk akal dan klik Generate.



Download profil provisioning dan seret ke Xcode untuk menambahkannya. Perbarui setelan pembuatan target Anda di Xcode untuk menggunakan profil provisioning yang baru. Bangun dan jalankan aplikasi Anda untuk memastikan semuanya berjalan seperti yang diharapkan.
Jika Anda mengalami masalah, periksa kembali apakah pengenal bundle aplikasi Anda sesuai dengan ID Aplikasi. Perhatikan bahwa pengenal bundle bersifat case sensitive.
Jika Anda telah mengikuti langkah-langkah yang diuraikan dalam tutorial ini, aplikasi Anda akan menanyakan pesan berikut kepada Anda.



Jika Anda menekan OK, aplikasi Anda akan menanyakan sistem operasi untuk token perangkat. Jika ini berhasil, application: didRegisterForRemoteNotificationsWithDeviceToken
: method protokol UIApplicationDelegate
dipanggil, menyerahkan token perangkat Anda. Karena kami menambahkan pernyataan log ke metode ini, token perangkat juga harus masuk ke konsol di Xcode.
1 |
Push[2182:60b] Did Register for Remote Notifications with Device Token (<131cec1a 64cf8f4c 80009196 6157311d c774df92 056c74c2 e5538e52 db4848f1>) |
6. Mengirim Push Notifications
Untuk menguji apakah ada push notifications yang Anda kirim tiba, Anda harus memiliki backend agar aplikasi Anda dapat mengirim token perangkat. Backend tersebut kemudian dapat terhubung dengan server Apple untuk mengirim push notifications.
Saya tidak akan membahas aspek push notifications ini dalam tutorial ini, namun ini adalah bagian mudah dari push notifications, terutama jika Anda menggunakan layanan seperti Parse atau Urban Airship.
Anda juga bisa menggunakan Houston, Ruby gem yang dikembangkan oleh Mattt Thompson, yang membuat pengiriman push notifications sangat mudah.
Kesimpulan
Saya harap tutorial ini menunjukkan kepada Anda bahwa push notifications tidak sulit disiapkan karena kebanyakan developers berpikir. Memang benar dibutuhkan sedikit pengeditan dengan keys dan certificates, tapi begitu Anda memahami bagian yang bergerak, maka tidak sulit untuk dimengerti dan disiapkan.
Yang benar bagian yang sulit adalah menciptakan keys dan certificates. Menangani push notifications dalam aplikasi iOS Anda sangat mudah dan mudah.