Prompt templates, kesilapan biasa, dan checklist mobile testing untuk membina Progressive Web App dengan AI.
Gunakan prompt-template di bawah untuk hasilkan kod PWA dengan AI. Copy-paste prompt ke AI assistant dan ubah bahagian dalam kurungan [...] mengikut keperluan projek anda.
Koma tertinggal, petil tak tertutup, atau struktur JSON salah. Browser akan ignore manifest yang invalid.
Guna validator JSON (jsonlint.com) atau minta AI semak balik manifest. Dalam DevTools → Application → Manifest, kalau error, ia akan tunjuk.
Prompt: "Check JSON ni untuk syntax error: [paste manifest]"
Chrome memerlukan ikon sekurang-kurangnya 192x192 untuk PWA. Kalau ikon kecil atau format salah, PWA tak akan berfungsi.
Pastikan ada ikon 192x192 dan 512x512 dalam manifest. Guna PNG format. AI boleh generate placeholder SVG/PNG, atau guna tool macam pwa-asset-generator, favicon.io, atau canva.com.
Prompt: "Buat SVG icon untuk PWA dalam saiz 192px dengan tema cyan"
Service worker hanya register di HTTPS atau localhost. Kalau guna HTTP biasa, register akan fail dengan SecurityError.
Deploy ke hosting HTTPS — Cloudflare Pages, Netlify, Vercel semua bagi HTTPS percuma. Jangan deploy ke hosting HTTP biasa. Untuk development, localhost juga OK.
Semak: Buka Console di DevTools — ada error "Service Worker registration failed: The document is in an invalid state"?
Service worker path adalah relatif. Kalau sw.js diletak dalam subfolder, scope service worker terhad ke folder itu sahaja.
Letak sw.js dalam root folder (sama level dengan index.html). Atau guna parameter scope: navigator.serviceWorker.register('/folder/sw.js', { scope: '/folder/' }).
Best practice: sw.js sentiasa di root.
Service worker cache fail static. Lepas ubah HTML/CSS/JS, pelayar masih serve version lama dari cache. Pelajar fikir kod tak berubah.
Update version cache: tukar 'app-v1' ke 'app-v2' dalam sw.js. Atau guna "Update on reload" di DevTools → Application → Service Workers. Hard refresh (Ctrl+Shift+R/Cmd+Shift+R) juga boleh membantu.
Prompt: "Macam mana nak update cache service worker lepas ubah fail?"
Display mode dalam manifest adalah "browser" bukan "standalone". Jadi PWA buka dalam tab biasa dengan address bar.
Dalam manifest.json, pastikan "display": "standalone" atau "fullscreen". Jangan "browser". Untuk test, buka dari home screen — standalone hanya berfungsi bila buka dari icon PWA yang di-install, bukan dari URL biasa.
Browser tak tunjuk prompt install. Ini boleh jadi karena manifest incomplete, tiada service worker, atau PWA dah di-install.
Checklist: (1) Manifest sah dengan ikon >=192px, (2) Service worker registered dan activated, (3) HTTPS, (4) Guna Chrome (Safari limited support). Cuba buka di incognito window atau clear site data. Guna beforeinstallprompt event untuk trigger manual.
Prompt: "Kenapa Add to Home Screen prompt tak muncul dalam PWA saya?"
Service worker cache beberapa fail tapi tak semua. Contoh: CSS atau gambar tak di-cache, jadi separuh halaman rosak offline.
Pastikan semua fail yang diperlukan di-cache. Guna strategi yang sesuai — untuk static files, guna "Cache First". Untuk dynamic content (API), guna "Network First" atau "Stale While Revalidate". Test offline di DevTools: Network tab → check "Offline".
Prompt: "Service worker saya tak cache gambar. Ini kod: [paste]. Macam mana nak betulkan?"
Notification API asas hanya berfungsi semasa app dibuka. Push notification sebenar dari server perlukan setup VAPID keys dan backend.
Untuk beginner, fokus pada Notification API dulu (local notification). Push dari server adalah topik advanced — perlukan backend (Node.js, Python) dan push service. Gunakan Firebase Cloud Messaging (FCM) atau Web Push Protocol bila dah bersedia.
Prompt: "Beza antara Notification API dengan Push API dalam PWA?"
PWA nampak sempurna di Chrome DevTools (mobile emulation), tapi bila buka di phone sebenar, ada isu: font kecik, button tersentuh, layout pecah.
Sentiasa test di phone sebenar. DevTools mobile emulation adalah approximation — bukan real device. Guna remote debugging (chrome://inspect) untuk debug langsung dari komputer ke phone. Minta rakan pinjam phone mereka untuk cross-browser testing.
Tip: Test minimum 3 device berbeza (iPhone, Android kecil, Android besar).
Gunakan checklist di bawah untuk memastikan PWA anda benar-benar bersedia untuk digunakan di phone. Tandakan setiap item yang telah diuji.
Cara guna: Buka PWA di phone dan desktop. Test setiap item. Tandakan yang lulus. Jika ada yang gagal, gunakan AI prompt untuk bantu troubleshoot.
Nota iOS Safari: Safari pada iOS menyokong PWA tetapi dengan limitasi. Service worker dan manifest disokong sejak iOS 16.4+. Walau bagaimanapun, push notification masih belum disokong sepenuhnya di iOS. Test di Chrome Android untuk pengalaman PWA yang paling lengkap.