Lihat semua artikel

Studi Kasus: Dari Situs Web Menjadi Aplikasi—Perjalanan Implementasi PWA di IR Web

27 Juli 2025

Iwan Efendi

Salah satu tujuan utama IR Web adalah menjadi platform yang cepat, andal, dan dapat diakses di mana saja. Kami ingin memberikan pengalaman yang lebih dari sekadar situs web biasa. Kami ingin IR Web terasa seperti aplikasi—bisa di-install, diakses dari desktop, dan bahkan berfungsi saat koneksi internet sedang tidak stabil.

Jawabannya adalah Progressive Web App (PWA).

Ini adalah studi kasus transparan tentang bagaimana kami merencanakan dan mengeksekusi transformasi IR Web dari situs web standar menjadi PWA yang sepenuhnya fungsional.

Fase 1: Diskusi dan Perencanaan (Diskusi dulu, kode kemudian)

Sebelum menulis satu baris kode pun, kami melakukan dialog internal yang mendalam. Pertanyaan terpenting yang harus dijawab adalah: "Apakah ini aman? Apakah ini akan merusak stabilitas yang sudah kita bangun?"

Berikut adalah poin-poin kunci dari diskusi kami:

  1. Analisis Risiko: Kami mengidentifikasi bahwa risiko terbesar bukanlah kerusakan situs, melainkan potensi bug caching (menampilkan konten lama), yang mana risikonya tergolong rendah hingga sedang dan dapat dikelola. Risiko merusak fungsionalitas inti sangatlah rendah karena PWA bekerja di lapisan yang terpisah.
  2. Rencana Cadangan (Rollback): Kami memastikan bahwa jika terjadi masalah, kami dapat kembali ke kondisi semula dengan sangat mudah hanya dengan mengembalikan perubahan pada 2-3 file konfigurasi.
  3. Pemilihan Alat: Kami memutuskan untuk tidak menciptakan roda dari awal. Kami memilih untuk menggunakan pustaka next-pwa, sebuah alat bantu open-source yang terpercaya dan dirancang khusus untuk mengotomatiskan pembuatan service worker di Next.js.
  4. Biaya: Implementasi ini 100% gratis. PWA adalah standar web terbuka dan next-pwa adalah pustaka gratis.

Setelah semua pertimbangan ini matang dan kami yakin bahwa manfaatnya jauh lebih besar daripada risikonya, barulah kami menyusun rencana teknis.

Fase 2: Eksekusi dalam 4 Langkah Terencana

Kami memecah proses implementasi menjadi empat tahap yang jelas dan berurutan.

Langkah 1: Instalasi next-pwa

Langkah pertama adalah menambahkan alat bantu kita ke dalam proyek. Ini dilakukan dengan menambahkan next-pwa ke dalam file package.json. Langkah ini tidak mengubah apa pun, hanya mempersiapkan fondasi.

Langkah 2: Konfigurasi Build Next.js

Ini adalah inti dari implementasi. Kami memodifikasi file next.config.js untuk "membungkus" konfigurasi yang ada dengan next-pwa.

// Contoh di next.config.js
const withPWA = require('next-pwa')({
  dest: 'public',
  register: true,
  skipWaiting: true,
  disable: process.env.NODE_ENV === 'development',
});

// ...lalu kita bungkus ekspor kita
module.exports = withPWA(nextConfig);

Konfigurasi ini memberi tahu Next.js untuk secara otomatis membuat file service worker (sw.js) setiap kali situs di-build untuk produksi. Kami juga sengaja menonaktifkannya di lingkungan pengembangan untuk menghindari masalah cache saat coding.

Langkah 3: Pembaruan Kebijakan Keamanan

Untuk memastikan service worker dapat berjalan dengan aman, kami memperbarui Content-Security-Policy (CSP) di next.config.js. Ini adalah praktik terbaik untuk memastikan hanya skrip dari domain kita sendiri yang diizinkan untuk berjalan.

Langkah 4: Penyempurnaan Web App Manifest

Langkah terakhir adalah menyempurnakan file public/manifest.webmanifest. Kami memastikan ada ikon berukuran 512x512 (standar PWA) dan menambahkan properti id dan scope untuk memberikan identitas yang jelas pada aplikasi kami.

Fase 3: Mengapa Ikon 'Instal' Tidak Langsung Muncul?

Setelah semua langkah teknis selesai, ada satu pertanyaan umum yang muncul: "Mengapa tombol instalasi aplikasi tidak langsung muncul di browser saya?"

Ini bukanlah sebuah bug, melainkan sebuah fitur desain yang disengaja oleh browser modern seperti Google Chrome. Tujuannya adalah untuk melindungi pengalaman pengguna dan mencegah setiap situs web menampilkan permintaan instalasi yang mengganggu.

Browser menggunakan "heuristik keterlibatan pengguna" untuk menentukan kapan waktu yang tepat untuk menawarkan instalasi. Anggap saja ini sebagai asisten toko yang sopan; mereka tidak akan menawarkan kartu member begitu Anda masuk, melainkan menunggu sampai Anda menunjukkan minat.

Secara umum, browser mencari sinyal-sinyal berikut sebelum menampilkan opsi instal:

  • Interaksi Pengguna: Pengguna telah mengklik, menggulir, atau berinteraksi dengan halaman.
  • Waktu Kunjungan: Pengguna telah menghabiskan setidaknya 30 detik di situs.
  • Kunjungan Berulang: Beberapa browser mungkin lebih cenderung menawarkannya pada kunjungan kedua atau ketiga.

Selama semua daftar periksa teknis PWA terpenuhi (disajikan melalui HTTPS, memiliki manifest yang valid, dan service worker yang aktif), yang dibutuhkan hanyalah keterlibatan pengguna yang natural agar browser merasa "yakin" untuk menawarkan situs Anda sebagai aplikasi.

Hasil Akhir: Aplikasi IR Web

Dengan keempat langkah tersebut, IR Web kini telah bertransformasi. Sebuah ikon "Instal" akan muncul di bilah alamat browser saat Anda mengunjungi situs kami, memungkinkan Anda untuk menambahkan IR Web ke desktop atau layar utama seluler Anda.

Perjalanan ini adalah contoh sempurna dari filosofi pengembangan kami: rencanakan dengan matang, analisis risikonya, lalu eksekusi dengan cermat. Hasilnya adalah sebuah platform yang lebih kuat, lebih cepat, dan lebih dekat dengan pengalaman aplikasi asli, tanpa mengorbankan stabilitas yang menjadi prioritas utama kami.

IE

Ditulis Oleh

Iwan Efendi

Pengembang web yang bersemangat dalam membangun produk digital dan berbagi pengetahuan melalui tulisan.

Komentar dan Diskusi

Memuat komentar...