Three pillars of PWA
- Service Worker — a JavaScript file that intercepts network requests and enables resource caching for offline use
- Web App Manifest — a JSON file with the app name, icons, and display settings: fullscreen mode, theme colour
- HTTPS — mandatory; otherwise the Service Worker will not register
Limitations
iOS Safari has limited Service Worker support. Access to hardware features (Bluetooth, NFC) requires native apps. A PWA is not published in the App Store directly (though an iOS PWA wrapper via the App Store is possible).