HENDRA SANTOSO
CV. LOKOMEDIA
Membangun Aplikasi Mobile dengan Progressive
Web App (PWA)
Perpustakaan Nasional : Katalog Dalam Terbitan (KDT)
Penulis : Hendra Santoso
Membangun Aplikasi Mobile dengan Progressive Web App (PWA)
- Cet. I. - Yogyakarta : Penerbit Lokomedia, 2019
200 halaman; 14 x 21 cm
ISBN : 978-602-62312-0-8
Penerbit Lokomedia,
Cetakan Pertama : Maret 2019
email : redaksi@bukulokomedia.com
website : www.bukulokomedia.com
ii
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Sanghyang Adi Buddha Tuhan Yang
Maha Esa berkat pancaran sinar cinta kasih dan kasih sayang-Nya penulis dapat
menyelesaikan buku tentang “Membangun Aplikasi Mobile dengan Progressive
Web App (PWA)” ini dengan baik.
Pada kesempatan ini, penulis menghanturkan terima kasih yang tak terhingga
kepada almarhum dan almarhumah kedua orang tua yang telah membesarkanku,
kepada rekan-rekan sekerja dan semua pihak yang telah membantu selama proses
pembuatan buku ini.
Buku ini ditujukan bagi Anda yang ingin mengenal tentang teknologi web
progresif dan membangun aplikasi web layaknya aplikasi native mobile dengan
metodologi Progressive Web App (PWA).
Anda cukup mengetahui dasar pemrograman web seperti HTML, CSS dan
JavaScript. Sementara aplikasi mobile native butuh pengetahuan program java
android atau objective-c/swift untuk IOS. Dengan PWA, kita dapat membangun
satu aplikasi mobile yang dapat berjalan di berbagai platform mobile, baik
Android, IOS dan Windows Mobile.
Buku ini mencangkup pengenalan PWA, kelebihan dan kekurangan PWA,
perbedaan aplikasi mobile web dengan aplikasi mobile native, fitur dalam PWA
seperti Web App Manifest, Service Workers, Add to Home Screen (A2HS), Push
Notification dan Background Sync serta beberapa contoh kasus membuat aplikasi
mobile web berbasis PWA.
Penulis menyadari keterbatasan kemampuan dalam penyusunan buku ini,
sehingga sangat membutuhkan kritik dan saran yang bersifat membangun demi
kesempurnaan buku yang akan datang.
Dengan adanya buku ini, diharapkan dapat menjadi referensi dalam membangun
aplikasi mobile web dengan Progressive Web App (PWA). Akhirnya penulis
berharap semoga buku ini dapat bermanfaat bagi kita semua.
iii
Buku ini kudedikasikan kepada pendamping hidupku,
dan kedua malaikat kecilku…
iv
DAFTAR ISI
v
3.3. Pembenahan Data IndexedDB...................................................................59
3.4. Menggunakan API IndexedDB Promised..................................................60
3.5. Beberapa Library IndexedDB yang Populer..............................................69
vi
7.2. Menggunakan Lightbox............................................................................135
7.3. Menggunakan Workbook.........................................................................136
7.4. Debug Aplikasi PWA................................................................................140
vii
10.2.9. Permission...................................................................................216
10.2.10. Offline Mode.............................................................................219
10.2.11. Background Sync......................................................................220
10.2.12. Payment.....................................................................................221
10.2.13. Credentials.................................................................................225
10.2.14. Web Bluetooth...........................................................................229
10.2.15. Web USB...................................................................................230
10.2.16. Offline Storage..........................................................................232
10.2.17. File Access................................................................................234
10.2.18. Storage Quota............................................................................237
10.2.19. Geolocation...............................................................................237
10.2.20. Device Position.........................................................................239
10.2.21. Device Motion..........................................................................242
10.2.22. Network Type & Speed............................................................245
10.2.23. Online State...............................................................................246
10.2.24. Vibration....................................................................................246
10.2.25. Battery Status............................................................................247
10.2.26. Device Memory........................................................................249
10.2.27. Touch Gesture...........................................................................250
10.2.28. Speech Recognation.................................................................252
10.2.29. Clipboard Copy & Paste...........................................................253
10.2.30. Fullscreen..................................................................................256
10.2.31. Screen Orientation & Lock.......................................................258
10.2.32. Presentation Features................................................................262
10.3. Fitur Pengembangan PWA......................................................................262
Daftar Pustaka................................................................................................264
viii
BAB I
Pengenalan
Progressive Web App
BAB 1
Pengenalan Progressive Web App
Kelebihan PWA:
Respon seperti Mobile App
Pada PWA, semuanya di-cache didalam “App Shells” sehingga tampak seperti
aplikasi Mobile App. Application shell akan dibahas lebih lanjut pada bab
berikutnya. Dengan App Shell, Anda memiliki pilihan untuk meniru tampilan
dan nuansa aplikasi mobile reguler, lengkap dengan elemen UI, animasi seperti
yang Anda alami di aplikasi mobile yang populer. Google memastikan bahwa UI
PWA dapat dibuat benar-benar user-friendly.
Layout Responsif
PWA menggunakan responsive layout, walaupun ini bukan kelebihan utamanya.
User melakukan browsing website melalui browser yang support Service Worker
akan mengambil keuntungan dari layout PWA ini. Lihat gambar 1.2.
Push Notification
Setelah Anda membuka PWA di web browser Anda, maka Anda akan diminta
untuk mengijinkan pemberitahuan “Allow Push Notification” yang akan
memungkinkan Anda untuk mendapatkan pesan dan peringatan cepat dari
situs web. Ini biasanya digunakan untuk memasarkan situs web Anda dan juga
menawarkan akses cepat ke pengguna. Lihat gambar 1.5.
Keterbatasan PWA:
Perlu HTTPS.
Untuk menjalankan push notification dan “in prompt build”, aplikasi web
membutuhkan koneksi jaringan yang aman (secured TL connection/SSL).
Web browser modern yang popular saat ini sudah banyak mendukung fitur-fitur
pada aplikasi web progresif, sehingga PWA dapat berlaku seperti aplikasi mobile
native. Seperti yang dideskripsikan oleh Developer Google ada 4 fitur utama
pengalaman pengguna (UX/User Experience) pada (PWA), yaitu:
Fast. Memberikan respon yang cepat pada interaksi user dengan animasi yang
halus tanpa scrolling yang tidak perlu.
Integrated. User tidak perlu mengakses browser, PWA memanfaatkan
Service Worker
Aplikasi mobile native memberikan pengalaman yang kaya dan kinerja tinggi,
namun membutuhkan ruang penyimpanan (ROM), kurangnya real-time update,
dan visibilitas mesin pencari yang rendah. Sementara aplikasi web tradisional
tidak membutuhkan native compiled executable (seperti .exe di Windows, .apk di
Android atau .ips di IOS), namun sangat tergantung pada koneksi jaringan yang
tidak dapat diandalkan dan berpotensi lambat. Disinilah service worker berperan
untuk memberikan aplikasi web progresif yang terbaik. Pembahasan lebih lanjut
tentang service worker akan dijelaskan pada bab selanjutnya.
Tabel 1.1 Perbandingan Fitur PWA, Hybrid App dan Native App