Progressive Web App
Artikel ini sedang dalam perbaikan. Untuk menghindari konflik penyuntingan, mohon jangan melakukan penyuntingan selama pesan ini ditampilkan. Halaman ini terakhir disunting oleh Syariful Msth (Kontrib • Log) 710 hari 946 menit lalu. |
Progressive Web App (disingkat PWA) adalah sebuah aplikasi web yang dirancang atau dibangun dengan melakukan optimasi pada sebuah website. Tiga pilar utama Progressive Web App yaitu capable, reliable, installable.[1] Aplikasi Progressive Web App merupakan website yang dibangun dengan menggunakan service worker, manifest, dan beberapa fitur pembentuk Progressive Web App lainnya.[2] Tujuan hadirnya Progressive Web App yaitu memungkinkan para pengembang web (web developer) mengubah website yang sudah ada agar bisa berperilaku layaknya aplikasi native.[3] Sebuah aplikasi Progressive Web App memiliki beberapa keunggulan apabila dibandingkan dengan sebuah website biasa, di antaranya yaitu dapat dipasang pada perangkat (installable), aman (secure), progresif, responsif, dan lain sebagainya.[4]
Sejarah
Tiga pilar Progressive Web App
Capable
Saat ini website sudah mampu untuk melakukan suatu tugas tertentu yang dapat dilakukannya. Misalnya yaitu membuat sebuah aplikasi video hyper-local (cepat dan efisien) dengan menggunakan WebRTC, geolokasi, dan teknologi push notification. Aplikasi yang dikembangkan tersebut bahkan dapat dipasang (install) pada perangkat dan bisa digunakan untuk melakukan percakapan secara virtual dengan memanfaaatkan WebGL dan WebVR. Selain itu, dengan diperkenalkannya WebAssembly, para pengembang aplikasi (developer) dapat memanfaatkan ekosistem lain seperti C, C++, ataupun Rust, dengan keuntungan kinerja aplikasi yang lebih baik. Misalnya yaitu Squoosh.app yang menerapkannya untuk kompresi gambar tingkat lanjut.[5]
Sampai saat ini, hanya aplikasi platform tertentu yang benar-benar dapat menerapkan hal ini. Meskipun masih ada beberapa kemampuan (capabilities) yang belum dapat diterapkan atau berada di luar jangkauan teknologi website, tetapi dengan hadirnya API baru dan yang akan datang kemungkinan dapat mengubahnya dan memperluas kemampuan (capabilites) yang dapat dilakukan sebuah website. Misalnya yaitu adanya fitur akses file sistem, kontrol media, app badging,[6] ataupun full clipboard. Semua kemampuan tersebut dibangun dengan menerapkan konsep keamanan web (web secure) dan model data yang berpusat pada pengguna (user-centric permission model) guna memastikan bahwa website yang digunakan aman bagi pengguna.
Di antara API modern yang ada, termasuk WebAssembly dan API baru yang akan hadir, dapat memungkinkan sebuah aplikasi website memiliki kemampuan (capabilities) yang lebih baik dari sebelumnya dan dapat terus berkembang lagi.[1]
Reliable
Progressive Web App memiliki kinerja yang lebih cepat dan dapat diandalkan dibandingkan dengan website biasa. Bahkan dengan menerapkan Progressive Web App pengguna dapat mengakses website dalam keadaan tanpa akses internet (offline).[1] Hal tersebut dapat terjadi karena Progressive Web App menerapkan teknologi service worker. Service worker adalah sebuah berkas JavaScript yang diproses oleh browser di latar belakang.[3] Berkas tersebut dieksekusi secara terpisah tak seperti berkas JavaScript biasa yang membentuk sebuah website. Service worker pada dasarnya bertindak sebagai server proxy yang berada di antara aplikasi web, browser, dan internet (apabila tersedia). Service worker dapat memungkinkan webuah aplikasi web dapat diakses tanpa akses internet, mencegat permintaan (request) jaringan internet dan mengambil tindakan yang sesuai berdasarkan ketersediaan jaringan internet. [7]
Service worker memungkinkan menyimpan application shell (kerangka aplikasi) dan assets (CSS maupun JavaScript) dari sebuah website yang pernah diakses, lalu menyimpannya di cache storage.[8] Sehingga ketika pengguna mengakses kembali website tersebut pengguna tidak perlu melakukan request kembali ke server, namun browser akan menampilkan data yang sudah disimpan di cache storage berdasarkan request yang telah dilakukan sebelumnya. Dengan demikian pengguna dapat mengakses website PWA dalam keadaan tanpa akses internet (offline).[9]
Kecepatan merupakan salah satu faktor yang sangat penting bagi kenyamanan pengguna ketika mengakses sebuah website. Berdasarkan data yang ada, kecepatan atau waktu proses memuat sebuah website (page load times) sangat berpengaruh terhadap pengguna, apabila page load times berkisar antara 1-10 detik maka kemungkinan terpentalnya (bouncing) pengunjung situs seluler meningkat sebesar 123%.[10] Terpentalnya pengunjung merujuk pada para pengguna yang masuk ke sebuah website dan kemudian keluar dikarenakan berbagai faktor, salah satunya yaitu page load times. Dengan adanya Progressive Web App, maka masalah tersebut dapat diatasi, sehingga pengguna dapat mengakses aplikasi PWA yang merespon setiap interaksi dan selalu dapat diandalkan.[1]
Installabe
Salah satu keunggulan dari Progressive Web App yaitu dapat dipasang (install) pada perangkat, baik pada perangkat desktop ataupun mobile. Sehingga aplikasi PWA dapat berjalan di jendela mandiri, bukan di tab browser.[1]
Komponen-komponen PWA
Perbedaan
Berikut adalah beberapa perbedaan Progressive Web App dengan aplikasi native, di antaranya yaitu :
- Biaya pengembangan Progressive Web App lebih murah.[11]
- Aplikasi native lebih sulit diindeks oleh mesin pencari dan hanya dapat ditemukan melalui App/Play store. Sedangkan Progressive Web App bekerja layaknya website, sehingga dapat diindeks oleh mesin pencari. Hal tersebut membuat Progressive Web App mudah ditemukan (discoverability).
Penerapan di industri
Progressive Web App termasuk dalam teknologi baru, meskipun demikian sudah banyak website kelas dunia yang sudah menerapkan Progressive Web App. Berikut daftar website yang menerapkan sifat Progressive Web App, di antaranya yaitu :
Lihat pula
Daftar pustaka
- ^ a b c d e "What are Progressive Web Apps?". web.dev (dalam bahasa Inggris). Diakses tanggal 2022-11-29.
- ^ "Progressive web apps (PWAs) | MDN". developer.mozilla.org (dalam bahasa Inggris). Diakses tanggal 2022-11-29.
- ^ a b Indonesia, Dicoding. "Developer Academy: Menjadi Front-End Web Developer Expert". Dicoding (dalam bahasa Inggris). Diakses tanggal 2022-11-30.
- ^ "Progressive web apps (PWAs) | MDN". developer.mozilla.org (dalam bahasa Inggris). Diakses tanggal 2022-11-29.
- ^ "WebAssembly Concepts - WebAssembly | MDN". developer.mozilla.org (dalam bahasa Inggris). Diakses tanggal 2022-11-30.
- ^ "Badging for app icons". Chrome Developers (dalam bahasa Inggris). Diakses tanggal 2022-11-30.
- ^ "Service Worker API - Web APIs | MDN". developer.mozilla.org (dalam bahasa Inggris). Diakses tanggal 2022-11-30.
- ^ "Introduction to Progressive Web Apps (PWAs): Service Worker & Manifest | DigitalOcean". www.digitalocean.com (dalam bahasa Inggris). Diakses tanggal 2022-11-30.
- ^ "Service worker overview". Chrome Developers (dalam bahasa Inggris). Diakses tanggal 2022-11-30.
- ^ "Page load time statistics". Think with Google (dalam bahasa Inggris). Diakses tanggal 2022-11-30.
- ^ "What is a PWA? Progressive Web Apps for Beginners". freeCodeCamp.org (dalam bahasa Inggris). 2021-04-06. Diakses tanggal 2022-11-30.