Panduan lengkap untuk pengajar mengendalikan sesi membina Progressive Web Apps — aplikasi mobile yang boleh di-install ke home screen, berfungsi offline, dibina tanpa React Native atau Flutter.
Sesi ini adalah fasa paling advanced dan paling power dalam kursus Vibe Coding. Pelajar akan belajar cara mengubah web app biasa menjadi Progressive Web App (PWA) — aplikasi yang boleh di-install di phone macam app native, berfungsi offline, dan boleh hantar push notification.
Yang bestnya: semua ini dibuat dengan HTML, CSS, JavaScript biasa — dan AI. Tak perlu belajar React Native, Flutter, atau Swift.
Terangkan apa itu PWA dengan analogi mudah:
Analogi: Web app biasa macam brosur digital — kena buka pelayar web, taip URL, dan kena ada internet. PWA macam app yang di-install dari App Store — ada icon di home screen, buka terus tanpa pelayar, boleh guna offline. Bezanya: PWA tak perlu melalui App Store/Google Play.
Tip Motivasi: Tunjukkan contoh PWA popular — Twitter (X), Pinterest, Starbucks, Spotify. Semua ni adalah PWA! Pelajar akan terkejut dan lebih bermotivasi.
Ini adalah money shot sesi. Tunjukkan transformasi web app biasa menjadi PWA yang boleh di-install.
Guna AI prompt untuk generate manifest.json. Tunjukkan cara copy-paste prompt ke AI dan dapatkan output terus.
Guna AI prompt untuk generate service worker yang cache semua fail static dan allow offline access.
Pelajar mengikuti langkah dalam Modul Pelajar untuk:
Tunjukkan cara install PWA ke home screen dan test offline capability.
Peringatan Teknikal: Service worker hanya berfungsi di HTTPS. Jika demo menggunakan localhost, ia juga OK (localhost dikecualikan). Untuk test di phone, kena deploy dulu ke hosting yang guna HTTPS.
Terangkan dan tunjukkan cara tambah feature tambahan menggunakan AI:
getUserMedia() untuk akses kameranavigator.geolocation untuk dapatkan lokasiPelajar deploy PWA mereka ke Cloudflare Pages (HTTPS auto) dan install di phone masing-masing. Minta mereka share screenshot PWA di home screen dalam group chat.
Demo ini menggunakan projek dashboard dari Fasa 7 atau mana-mana web app HTML yang sedia ada. Pastikan projek sudah deploy ke HTTPS hosting.
Point penting: Tunjukkan bahawa tanpa PWA, web app ni tak boleh di-install ke phone. Kena buka browser, taip URL, guna internet. Selepas tambah PWA, semuanya berubah.
Tip Pengajar: Jika AI bagi output yang kompleks, minta AI explain setiap bahagian. Ini peluang untuk pelajar belajar membaca kod JavaScript debug. Guna AI sebagai "mentor" yang sentiasa ada.
Jika install prompt tak muncul: Pastikan (1) HTTPS, (2) manifest.json sah, (3) service worker registered, (4) ada icon sekurang-kurangnya 192x192. Chrome juga mungkin tak tunjuk prompt jika PWA sudah di-install.
Demo ini memerlukan PWA yang sudah di-deploy ke HTTPS hosting. Gunakan phone pelajar atau phone sendiri.
Moment "Wow": Bila pelajar nampak PWA berfungsi offline, mereka akan teruja. Inilah saat mereka sedar kuasa PWA. Ambil screenshot atau video untuk disimpan sebagai portfolio.
Masalah: Pelajar tak nampak "Add to Home Screen" prompt. Banyak sebab: service worker tak register, manifest tak sah, atau PWA dah di-install.
Penyelesaian: Buka DevTools → Application tab. Semak status service worker (mesti "activated"). Semak manifest — mesti tiada error. Guna Lighthouse audit untuk diagnosis automatik.
Masalah: Service worker fail to register. Biasanya due to: path salah, HTTPS tak wujud, atau JavaScript error dalam sw.js.
Penyelesaian: Pastikan path ke sw.js betul (relatif ke root). Pastikan hosting guna HTTPS. Buka Console di DevTools — tengok error message. Guna AI untuk debug: "Kenapa service worker saya tak register? Ini error: ..."
Masalah: App tak jalan offline. Service worker tak cache dengan betul, atau cache strategy salah.
Penyelesaian: Test di DevTools → Network tab → check "Offline". Tengok apa yang gagal dimuat. Pastikan service worker guna strategi "Cache First" dan semua fail yang diperlukan di-cache. Update cache version bila ubah fail.
Masalah: Ikon yang disediakan tak cukup besar (minimum 192x192) atau format tak sesuai.
Penyelesaian: Guna AI prompt: "Buat SVG ikon untuk PWA dalam saiz 192x192 dan 512x512 dengan tema [warna]". Atau guna tool dalam talian macam favicon.io atau pwa-asset-generator. Jangan guna gambar JPEG — guna PNG atau SVG.
Masalah: Display mode dalam manifest tak betul atau tak di-set.
Penyelesaian: Dalam manifest.json, pastikan "display": "standalone" atau "fullscreen". Jangan guna "browser" (itu akan buka dalam tab biasa). Juga pastikan start_url menunjuk ke halaman yang betul.
Masalah: Push notification memerlukan VAPID keys dan backend server. Untuk beginner, ini mungkin terlalu kompleks.
Penyelesaian: Untuk sesi beginner, tunjuk cara setup notification dalam PWA yang sedang aktif (guna Notification API). Push notification dari server adalah topik advanced. Fokus pada yang boleh capai dulu.
Projek Lanjutan: Selepas sesi PWA, pelajar boleh bina projek akhir: Aplikasi Mobile sebenar menggunakan PWA — contoh: apps to-do list, note taking, habit tracker, atau inventory sistem. Dengan kuasa PWA + AI, mereka boleh hasilkan app yang nampak professional tanpa belajar React Native.