Slide used in the Centric WebCast - Progressive Web Apps.
In this I explain what a Progressive Web App is. I demonstrate how to analyze a website with Lighthouse and how to build one using PWA Builder for creating the manifest and service worker.
Timmy KokkeLead Developer ⚙ Software Architect ⚙ Full Stack Developer ⚙ VR / WebXR 🐱👤 Microsoft MVP 🐱👤 at ONVZ
2. STEVE
JOBS
“You’ve got everything you
need if you know how to
write apps using the most
modern web standards to
write amazing apps for the
iPhone today”
2007
3. STEVE
JOBS
“You’ve got everything you
need if you know how to
write apps using the most
modern web standards to
write amazing apps for the
iPhone today”
2007
4. STEVE
JOBS
“You’ve got everything you
need if you know how to
write apps using the most
modern web standards to
write amazing apps for the
iPhone today”
2007
8. WHAT THEY ARE
Progressive
Works on any device and enhance
functionality progressively.
Discoverable
Better discovery and integration
with search.
Linkable
Ability to retain or reload its state
and be shareable from a link.
Responsive
Fit any device’s form factor and
screen size.
Current
Application and content is up to date
when connected to the Internet.
Re-engageable
Promotes re-engagement through
features such as push notifications.
Performant
Works as fast or faster than a native app.
Connected to users
Direct feedback to you through
ratings and reviews
App-like
Looks like a native app and uses the
application shell model with minimal
page refreshes.
Connectivity-agnostic
Works with low connectivity or offline.
Installable
Install on the device’s desktop,
start menu, or task bar making it
readily available.
35. LIGHTHOUSE
Chrome Extension
Dev Tools Audit
CLI
Lighthouse analyzes web apps and web
pages, collecting modern performance
metrics and insights on developer best
practices.
36. WEBHINT
webhint is a linting tool that will help you with your site's accessibility, speed,
security and more, by checking your code for best practices and common
error
Online scanner
CLI
Visual Studio Code integration
45. NOT SHOWN
Push notifications
Notifications API + Push API
Build on top of the Service Worker API
Background Sync
Defer actions until stable connection
52. TESTING
F12 tools
Connect phone with USB
Chrome://inspect
Android debugger needs to be running
“adb.exe start-server”
Custom domain with SSL
DNS directs to local IP, ie
192.168.1.13
53. TESTING
• Test on real devices
• Throttling is not enough
• Offline checkbox doesn’t affect websockets
Bit of history:
Steve Jobs – 2007 release iPhone
Alex Russell, Chrome – 2015
World wide developer conference
Since IOS 11.3 also on IOS!
Other frameworks promise code share, but only take it to a certain level. The web is the same everywhere.
Uber & Google maps Go
Windows Hello
Windows Hello
https://preview.startbucks.com
https://mobile.twitter.com
https://pinterest.com
https://Instagram.com
Build demosite with bootstrap studio and deploy with FTP.
LightHouse
PWA Builder
Create Icon
Add manifest
Add Service worker with offline page
Was SonarWhal
Started my MS Edge team, wanted open source and community driven
Build demosite with bootstrap studio and deploy with FTP.
Show notifications
Requires User permission.
Push API can even handle push when the app is not running!
For example sending data
- Progressive enhancement, not all browsers support
Static index.html
Maxime Salnikov
Building an Angular PWA: Angular Service Worker or Workbox?