SlideShare a Scribd company logo
Modern Tools for
Building Progressive
Web Apps
John M. Wargo
https://johnwargo.com
@johnwargo
About Me
• Software developer, writer, presenter, father, husband, and geek
• Specializes in mobile development
• Principal Program Manager @ Microsoft
• App + Cloud Experiences team
• Responsible for Visual Studio App Center Push
and Azure Notification Hubs
• Author of 7 (+1)* books
• Former contributor to the Apache Cordova project
• Live in Charlotte, NC
• Previously @ AT&T, BlackBerry, BoxTone, Forrester Research,
Hewlett Packard Enterprise (HPE), others
www.johnwargobooks.com
Learning Progressive
Web Apps
• Available in early 2020
• https://learningpwa.com/
Modern Tools for
Building Progressive
Web Apps
Progressive
Web Apps
Google: Progressive Web Apps are
user experiences that have the
reach of the web, and are:
• Reliable - Load instantly and
never show the downasaur*,
even in uncertain network
conditions.
• Fast - Respond quickly to user
interactions with silky smooth
animations and no janky
scrolling.
• Engaging - Feel like a natural
app on the device, with an
immersive user experience.
Jeremy Keith: Progressive Web
Apps consist of:
• HTTPS
• A service worker
• A Web App Manifest
* When using Google Chrome and your internet connectivity dies, you'll see a little Tyrannosaurus. This is called the 'downasaur'
https://developers.google.com/web/progressive-web-apps https://adactio.com/journal/13098
With service workers and
manifest files, PWAs:
• Are installable
• Are available (run while)
offline
• Can perform background sync
operations
Anatomy of a PWA
index.html
app.webmanifest
index.html*
*or loaded from an external file
sw.js
PWAs Now Automatic
Through Many
Common Frameworks
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
PWA Tooling
Assessing the PWA-ness of a Web App with Lighthouse
• Multiple entry points
• Chrome extension
• Developer Tools
• Command-line
https://developers.google.com/web/tools/lighthouse
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
PWA Automation (Part 1)
PWABuilder
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
Modern Tools for Building Progressive Web Apps
PWA Automation (Part 2)
Workbox
Modern Tools for Building Progressive Web Apps
Workbox
• JavaScript library for adding offline operation to a web app
• Locally cached resources
• Two approaches:
• Precache all app resources
• Custom caching strategies
• Command-line driven
Workbox Caching Strategies
• CacheFirst: Return the cached version of a resource, retrieving the resource from the network (and adding it to the cache) if it’s
not already in the cache.
• CacheOnly: Return the resource from the cache. If the resource is not in the cache, the fetch will fail.
Note: Your service worker must populate the cache during service worker installation to enable this option.
• NetworkFirst: Return the network version of the resource, retrieving the resource from the cache if the network is not
available. The fetch fails when the network version is not available, and the resource is not in the cache.
• NetworkOnly: Return the network version of the resource, failing if it’s not available.
• StaleWhileRevalidate: Return the cached version of a resource, then update the cached version from the network so it’s
there the next time the app requests the resource. This gets resources to an app quickly, but it may not always be the most recent
version.
Modern Tools for Building Progressive Web Apps
Implementing a Caching Strategy
Custom Routes
Questions?

More Related Content

PDF
Designing and Debugging Mobile Apps with an Embedded, Scriptable Web Server
PDF
Developer Productivity Engineering with Gradle
PDF
Netflix Architecture and Open Source
PPTX
Serverless
PDF
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
PDF
Flux is incubating + the road ahead
PDF
Embracing Observability in CI/CD with OpenTelemetry
PPTX
How to contribute to an open source project and don’t die during the Code Rev...
Designing and Debugging Mobile Apps with an Embedded, Scriptable Web Server
Developer Productivity Engineering with Gradle
Netflix Architecture and Open Source
Serverless
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
Flux is incubating + the road ahead
Embracing Observability in CI/CD with OpenTelemetry
How to contribute to an open source project and don’t die during the Code Rev...

What's hot (19)

PPTX
Build your android app with gradle
PDF
Automated Testing in DevOps
PPTX
Continuous integration
PPTX
EMC World 2016 12 Factor Apps FTW
PDF
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
PPTX
Devops CI-CD pipeline with Containers
PPTX
12 Factor App Methodology
PDF
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
PPTX
Testing Without a GUI Using TestComplete
PDF
The 12 Factor App
PDF
Microservices Testing at Scale
PDF
Gitlab ci-cd
PDF
12 factor apps
PPTX
Cleaner Code Through Test-Driven Development
PDF
Who needs containers in a serverless world
PDF
Alexey Kupriyanenko "Release Early, Often, Stable"
PDF
Your own kubernetes castle
PDF
Building static libraries for iOS with CocoaPods
PPTX
Porting Projects to .NET 5
Build your android app with gradle
Automated Testing in DevOps
Continuous integration
EMC World 2016 12 Factor Apps FTW
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Devops CI-CD pipeline with Containers
12 Factor App Methodology
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Testing Without a GUI Using TestComplete
The 12 Factor App
Microservices Testing at Scale
Gitlab ci-cd
12 factor apps
Cleaner Code Through Test-Driven Development
Who needs containers in a serverless world
Alexey Kupriyanenko "Release Early, Often, Stable"
Your own kubernetes castle
Building static libraries for iOS with CocoaPods
Porting Projects to .NET 5
Ad

Similar to Modern Tools for Building Progressive Web Apps (20)

PDF
Progressive Web Apps
PDF
Checklist for progressive web app development
PPTX
Progressive Web Apps
PPTX
PWA Talk - Smau Milano 2018
PPTX
Progressive Web Apps 101
PPTX
Jws masterclass progressive web apps
PPTX
Centric - PWA WebCast
PPTX
Progressive Web Apps
PPTX
PWA basics for developers
PPTX
Why progressive apps for WordPress - WordSesh 2020
PPTX
Why Progressive Web Apps For WordPress - WordCamp Finland
PDF
pwa-170717082930.pdf
PPTX
Pwa.pptx
PDF
Progressive Web App (feat. React, Django)
PPTX
Progressive web app testing
PPTX
Progressive Web-App (PWA)
PPT
Progressive Web Apps - Up & Running
PPTX
Progressive Web App
PDF
New trends on web platform
Progressive Web Apps
Checklist for progressive web app development
Progressive Web Apps
PWA Talk - Smau Milano 2018
Progressive Web Apps 101
Jws masterclass progressive web apps
Centric - PWA WebCast
Progressive Web Apps
PWA basics for developers
Why progressive apps for WordPress - WordSesh 2020
Why Progressive Web Apps For WordPress - WordCamp Finland
pwa-170717082930.pdf
Pwa.pptx
Progressive Web App (feat. React, Django)
Progressive web app testing
Progressive Web-App (PWA)
Progressive Web Apps - Up & Running
Progressive Web App
New trends on web platform
Ad

More from All Things Open (20)

PDF
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
PPTX
Big Data on a Small Budget: Scalable Data Visualization for the Rest of Us - ...
PDF
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
PDF
Let's Create a GitHub Copilot Extension! - Nick Taylor, Pomerium
PDF
Leveraging Pre-Trained Transformer Models for Protein Function Prediction - T...
PDF
Gen AI: AI Agents - Making LLMs work together in an organized way - Brent Las...
PDF
You Don't Need an AI Strategy, But You Do Need to Be Strategic About AI - Jes...
PPTX
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
PDF
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
PDF
Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
PPTX
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
PDF
Don't just talk to AI, do more with AI: how to improve productivity with AI a...
PPTX
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
PDF
The Death of the Browser - Rachel-Lee Nabors, AgentQL
PDF
Making Operating System updates fast, easy, and safe
PDF
Reshaping the landscape of belonging to transform community
PDF
The Unseen, Underappreciated Security Work Your Maintainers May (or may not) ...
PDF
Integrating Diversity, Equity, and Inclusion into Product Design
PDF
The Open Source Ecosystem for eBPF in Kubernetes
PDF
Open Source Privacy-Preserving Metrics - Sarah Gran & Brandon Pitman
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Big Data on a Small Budget: Scalable Data Visualization for the Rest of Us - ...
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
Let's Create a GitHub Copilot Extension! - Nick Taylor, Pomerium
Leveraging Pre-Trained Transformer Models for Protein Function Prediction - T...
Gen AI: AI Agents - Making LLMs work together in an organized way - Brent Las...
You Don't Need an AI Strategy, But You Do Need to Be Strategic About AI - Jes...
DON’T PANIC: AI IS COMING – The Hitchhiker’s Guide to AI - Mark Hinkle, Perip...
Fine-Tuning Large Language Models with Declarative ML Orchestration - Shivay ...
Leveraging Knowledge Graphs for RAG: A Smarter Approach to Contextual AI Appl...
Artificial Intelligence Needs Community Intelligence - Sriram Raghavan, IBM R...
Don't just talk to AI, do more with AI: how to improve productivity with AI a...
Open-Source GenAI vs. Enterprise GenAI: Navigating the Future of AI Innovatio...
The Death of the Browser - Rachel-Lee Nabors, AgentQL
Making Operating System updates fast, easy, and safe
Reshaping the landscape of belonging to transform community
The Unseen, Underappreciated Security Work Your Maintainers May (or may not) ...
Integrating Diversity, Equity, and Inclusion into Product Design
The Open Source Ecosystem for eBPF in Kubernetes
Open Source Privacy-Preserving Metrics - Sarah Gran & Brandon Pitman

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Big Data Technologies - Introduction.pptx
PDF
KodekX | Application Modernization Development
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
MYSQL Presentation for SQL database connectivity
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Per capita expenditure prediction using model stacking based on satellite ima...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Empathic Computing: Creating Shared Understanding
Big Data Technologies - Introduction.pptx
KodekX | Application Modernization Development
sap open course for s4hana steps from ECC to s4
MYSQL Presentation for SQL database connectivity
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Diabetes mellitus diagnosis method based random forest with bat algorithm
Programs and apps: productivity, graphics, security and other tools
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Unlocking AI with Model Context Protocol (MCP)
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

Modern Tools for Building Progressive Web Apps

  • 1. Modern Tools for Building Progressive Web Apps John M. Wargo https://johnwargo.com @johnwargo
  • 2. About Me • Software developer, writer, presenter, father, husband, and geek • Specializes in mobile development • Principal Program Manager @ Microsoft • App + Cloud Experiences team • Responsible for Visual Studio App Center Push and Azure Notification Hubs • Author of 7 (+1)* books • Former contributor to the Apache Cordova project • Live in Charlotte, NC • Previously @ AT&T, BlackBerry, BoxTone, Forrester Research, Hewlett Packard Enterprise (HPE), others
  • 4. Learning Progressive Web Apps • Available in early 2020 • https://learningpwa.com/
  • 5. Modern Tools for Building Progressive Web Apps
  • 6. Progressive Web Apps Google: Progressive Web Apps are user experiences that have the reach of the web, and are: • Reliable - Load instantly and never show the downasaur*, even in uncertain network conditions. • Fast - Respond quickly to user interactions with silky smooth animations and no janky scrolling. • Engaging - Feel like a natural app on the device, with an immersive user experience. Jeremy Keith: Progressive Web Apps consist of: • HTTPS • A service worker • A Web App Manifest * When using Google Chrome and your internet connectivity dies, you'll see a little Tyrannosaurus. This is called the 'downasaur' https://developers.google.com/web/progressive-web-apps https://adactio.com/journal/13098 With service workers and manifest files, PWAs: • Are installable • Are available (run while) offline • Can perform background sync operations
  • 10. index.html* *or loaded from an external file
  • 11. sw.js
  • 12. PWAs Now Automatic Through Many Common Frameworks
  • 16. Assessing the PWA-ness of a Web App with Lighthouse • Multiple entry points • Chrome extension • Developer Tools • Command-line https://developers.google.com/web/tools/lighthouse
  • 22. PWA Automation (Part 1) PWABuilder
  • 28. PWA Automation (Part 2) Workbox
  • 30. Workbox • JavaScript library for adding offline operation to a web app • Locally cached resources • Two approaches: • Precache all app resources • Custom caching strategies • Command-line driven
  • 31. Workbox Caching Strategies • CacheFirst: Return the cached version of a resource, retrieving the resource from the network (and adding it to the cache) if it’s not already in the cache. • CacheOnly: Return the resource from the cache. If the resource is not in the cache, the fetch will fail. Note: Your service worker must populate the cache during service worker installation to enable this option. • NetworkFirst: Return the network version of the resource, retrieving the resource from the cache if the network is not available. The fetch fails when the network version is not available, and the resource is not in the cache. • NetworkOnly: Return the network version of the resource, failing if it’s not available. • StaleWhileRevalidate: Return the cached version of a resource, then update the cached version from the network so it’s there the next time the app requests the resource. This gets resources to an app quickly, but it may not always be the most recent version.