SlideShare a Scribd company logo
Building modern
progressive web apps
with Polymer
Image Source: giphy.com
@d_danailov
Topics Today
● What exactly are Progressive Web Apps ?
● Tools and Libraries for Progressive Web Apps
● Polymer overview
● Building modern progressive web apps with Polymer
● There’s no silver bullet
What exactly is a
Progressive Web App?
Radically improving web user experience
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
App-like - Feels like an app to the user with app-style
interactions and navigation because it's built on the app
shell model
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
App-like - Feels like an app to the user with app-style
interactions and navigation because it's built on the app
shell model
Fresh - Always up-to-date thanks to the service worker
update process
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
App-like - Feels like an app to the user with app-style
interactions and navigation because it's built on the app
shell model
Fresh - Always up-to-date thanks to the service worker
update process
Safe - Served via HTTPS to prevent snooping and to
ensure content hasn't been tampered with.
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
App-like - Feels like an app to the user with app-style
interactions and navigation because it's built on the app
shell model
Fresh - Always up-to-date thanks to the service worker
update process
Safe - Served via HTTPS to prevent snooping and to
ensure content hasn't been tampered with.
Discoverable - Is identifiable as an "application" thanks
to W3C manifest and service worker registration scope,
allowing search engines to find it
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
App-like - Feels like an app to the user with app-style
interactions and navigation because it's built on the app
shell model
Fresh - Always up-to-date thanks to the service worker
update process
Safe - Served via HTTPS to prevent snooping and to
ensure content hasn't been tampered with.
Discoverable - Is identifiable as an "application" thanks
to W3C manifest and service worker registration scope,
allowing search engines to find it
Re-engageable - Makes re-engagement easy through
features like push notifications
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
App-like - Feels like an app to the user with app-style
interactions and navigation because it's built on the app
shell model
Fresh - Always up-to-date thanks to the service worker
update process
Safe - Served via HTTPS to prevent snooping and to
ensure content hasn't been tampered with.
Discoverable - Is identifiable as an "application" thanks
to W3C manifest and service worker registration scope,
allowing search engines to find it
Re-engageable - Makes re-engagement easy through
features like push notifications
Installable - Allows users to "keep" apps they find most
useful on their home screen without the hassle of an
app store
Progressive - Works for every user, regardless of
browser choice because it's built with progressive
enhancement as a core tenet.
Responsive - Fits any form factor: desktop, mobile, tablet or
whatever is next
Connectivity independent - Enhanced with service
workers to work offline or on low-quality networks
App-like - Feels like an app to the user with app-style
interactions and navigation because it's built on the app
shell model
Fresh - Always up-to-date thanks to the service worker
update process
Safe - Served via HTTPS to prevent snooping and to
ensure content hasn't been tampered with.
Discoverable - Is identifiable as an "application" thanks
to W3C manifest and service worker registration scope,
allowing search engines to find it
Re-engageable - Makes re-engagement easy through
features like push notifications
Installable - Allows users to "keep" apps they find most
useful on their home screen without the hassle of an
app store
Linkable - Easily share via URL, does not require
complex installation
Image Source: giphy.com
Building modern Progressive Web Apps with Polymer
Building modern Progressive Web Apps with Polymer
Housing.com: User Acquisition Costs
$ 3.75
Android App Mobile Web
$ 0.07
1 vs 53
17 000+ developers across 35+ countries
Image Source: Novatv
sw-precache
Build-time precaching for static assets
github.com/GoogleChrome/sw-precache
sw-toolbox
Runtime caching strategies & expiration
github.com/GoogleChrome/sw-toolbox
Building modern Progressive Web Apps with Polymer
Building modern Progressive Web Apps with Polymer
Building modern Progressive Web Apps with Polymer
Building modern Progressive Web Apps with Polymer
Building modern Progressive Web Apps with Polymer
Routing
Runtime Handlers
Request Behaviors
Framework Layers
Framework Layers
● Routes match URLs and apply Handlers
○ RegExpRoute
○ ExpressRoute
○ … and more!
Routing
Framework Layers
● Routes match URLs and apply Handlers
○ RegExpRoute
○ ExpressRoute
○ … and more!
● Called by Route, or used in your own
code (Caching strategies)
○ StaleWhileRevalidate
○ NetworkFirst
○ … and more!
Routing
Runtime
Handlers
Framework Layers
● Routes match URLs and apply Handlers
○ RegExpRoute
○ ExpressRoute
○ … and more!
● Called by Route, or used in your own
code
○ StaleWhileRevalidate
○ NetworkFirst
○ … and more!
● Custom callbacks for network & caches
○ requestWillFetch (Custom Action)
○ fetchDidFail (Custom Action)
○ cacheDidUpdate (Custom Action)
Routing
Runtime
Handlers
Request
Behaviors
Browser
Request
Web API
Server
Traditional
Browser
Request
Web API
Server
Progressive web apps (PWA)
Service
Worker
Cache
Polymer overview
Web Components
Image Source: giphy.com
Building modern Progressive Web Apps with Polymer
2014 - Polymer 0.5 (Developer preview)
2015 - Polymer 1.0
2016 and 2017 - Polymer 2.0
500 + projects
6,000+ elements
Building modern Progressive Web Apps with Polymer
My first component
Picture-frame.html
<link rel=”import” href="https://polygit2.appspot.com/components/polymer/polymer.html">
<dom-module id=”picture-frame”>
<template>
<style>
:host { display: block; }
</style>
<h1>Hello jstalks</h1>
<!-- any children are rendered here →
<content></content>
</template>
<script>
Polymer({ ‘is’: ‘picture-frame’ })
</script>
</dom-module>
<picture-frame>
<img src=”jstalks.png” alt=”jstalks” />
</picture-frame>
Image Source: Polymer Summit 2016
Building modern
progressive web apps
with Polymer
Push components for initial route
Pre - cache components for remaining routes
Lazy - load & create next routes on-demand
Render the initial route asap
The PRPL Pattern
Building modern Progressive Web Apps with Polymer
Image Source: bryanmmathers.com
Security
Building modern Progressive Web Apps with Polymer
Building modern Progressive Web Apps with Polymer
Template Shadow dom v0
Custom
Elements v0
HTML Imports
Template
Shadow dom
v1
Custom
Elements v1
HTML Imports
How I learned to stop worrying and love the Polymer toolbox (Polymer Summit 2016)
#UseThePlatform
Resources
https://goo.gl/A4w47C
Building modern Progressive Web Apps with Polymer
MyTeletouch your phone as TV-PC wireless keyboard
Questions

More Related Content

ODP
Introduction to Progressive Web Apps (PWA)
PDF
Progressive web apps
PPTX
Why Progressive Web App is what you need for your Business
PPTX
Progressive Web App
PPTX
Progressive Web Apps(PWA)
PDF
Progressive Web Apps
PPTX
Pwa.pptx
PDF
Introduction to Progressive web app (PWA)
Introduction to Progressive Web Apps (PWA)
Progressive web apps
Why Progressive Web App is what you need for your Business
Progressive Web App
Progressive Web Apps(PWA)
Progressive Web Apps
Pwa.pptx
Introduction to Progressive web app (PWA)

What's hot (20)

PPTX
Progressive Web-App (PWA)
PPTX
Progressive Web App
PDF
Guidance on how to develop a progressive web app using react native!
PPTX
PWA - Progressive Web App
PPTX
My learnings on web performance optimization while building a Progressive Web...
PPTX
Introduction to Progressive Web App
PPTX
Pwa demystified
PDF
Progressive web apps
PDF
Progressive Web Applications
PPTX
Progressive Web Apps
PDF
Next Generation Mobile Web - PWA (Progressive Web App)
PDF
Getting Started with Progressive Web Apps
PPTX
PWA - Progressive Web Apps
PPTX
Progressive Web App
PDF
Progressive Web Apps / GDG DevFest - Season 2016
PDF
Connfa! Progressive web app
PPTX
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
PDF
Progressive web apps with Angular 2
PDF
Why your website should be a progressive web application (PWA)
PPT
Progressive Web Apps - Up & Running
Progressive Web-App (PWA)
Progressive Web App
Guidance on how to develop a progressive web app using react native!
PWA - Progressive Web App
My learnings on web performance optimization while building a Progressive Web...
Introduction to Progressive Web App
Pwa demystified
Progressive web apps
Progressive Web Applications
Progressive Web Apps
Next Generation Mobile Web - PWA (Progressive Web App)
Getting Started with Progressive Web Apps
PWA - Progressive Web Apps
Progressive Web App
Progressive Web Apps / GDG DevFest - Season 2016
Connfa! Progressive web app
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
Progressive web apps with Angular 2
Why your website should be a progressive web application (PWA)
Progressive Web Apps - Up & Running
Ad

Similar to Building modern Progressive Web Apps with Polymer (20)

PPTX
Progressive Web Apps
PPTX
Basic Understanding of Progressive Web Apps
PPTX
Progressive Web Applications - The Next Gen Web Technologies
PPTX
Progressive web application
PPTX
PWAs overview
PPTX
SEMINAR PRESENTATION.pptx
PDF
Checklist for progressive web app development
PDF
Progressive Web Apps - NPD Meet
PDF
How to deal with mobile traffic expansion
PDF
IRJET-Garbage Monitoring and Management using Internet of things
PDF
pwa-170717082930.pdf
PDF
Progressive Web Apps
PPTX
Progressive web apps
PDF
Baobab WebSuite overview - Publisher's Toolbox
PPTX
GDG Ibadan #pwa
PPTX
Progressive Web App Development: The Future of Mobile App Development
PDF
WTF R PWAs?
PDF
Progressive web apps for e commerce
PPTX
PWA demystified
PPTX
SEMINAR (pwa).pptx
Progressive Web Apps
Basic Understanding of Progressive Web Apps
Progressive Web Applications - The Next Gen Web Technologies
Progressive web application
PWAs overview
SEMINAR PRESENTATION.pptx
Checklist for progressive web app development
Progressive Web Apps - NPD Meet
How to deal with mobile traffic expansion
IRJET-Garbage Monitoring and Management using Internet of things
pwa-170717082930.pdf
Progressive Web Apps
Progressive web apps
Baobab WebSuite overview - Publisher's Toolbox
GDG Ibadan #pwa
Progressive Web App Development: The Future of Mobile App Development
WTF R PWAs?
Progressive web apps for e commerce
PWA demystified
SEMINAR (pwa).pptx
Ad

More from Dimitar Danailov (20)

PDF
Evolution - ReConnect() 2019
PDF
Data Visualization and D3Js
PDF
#Productivity - {S:01 Ep:03}
PDF
#Productivity - {S:01 Ep:02}
PDF
#Productivity s01 ep02
PDF
#Productivity s01 ep01
PDF
Cloud Conf Varna - Cloud Application with AWS Lambda functions
PDF
DEV.BG - Angular 1 and Jasmine (Unit Testing and TDD)
PDF
Typescript - MentorMate Academy
PDF
HackConf2016 - Ruby on Rails: Unexpected journey
PDF
Microservices - Code Voyagers Sofia
PDF
Mongo DB Terms - Mentormate Academy
PDF
Startup Europe Week - Cloud Conf Varna & GDG Varna
PDF
GDG Varna - Hadoop
PDF
MicroServices: Advantages ans Disadvantages
PDF
GDG Varna - EcmaScript 6
PDF
Softuni.bg - Microservices
PDF
Cloud Conf Varna: Vagrant and Amazon
PDF
HackConf2015 - Ruby on Rails: Unexpected journey
PDF
Lighting talks - Microservices
Evolution - ReConnect() 2019
Data Visualization and D3Js
#Productivity - {S:01 Ep:03}
#Productivity - {S:01 Ep:02}
#Productivity s01 ep02
#Productivity s01 ep01
Cloud Conf Varna - Cloud Application with AWS Lambda functions
DEV.BG - Angular 1 and Jasmine (Unit Testing and TDD)
Typescript - MentorMate Academy
HackConf2016 - Ruby on Rails: Unexpected journey
Microservices - Code Voyagers Sofia
Mongo DB Terms - Mentormate Academy
Startup Europe Week - Cloud Conf Varna & GDG Varna
GDG Varna - Hadoop
MicroServices: Advantages ans Disadvantages
GDG Varna - EcmaScript 6
Softuni.bg - Microservices
Cloud Conf Varna: Vagrant and Amazon
HackConf2015 - Ruby on Rails: Unexpected journey
Lighting talks - Microservices

Recently uploaded (20)

PDF
System and Network Administraation Chapter 3
PDF
medical staffing services at VALiNTRY
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Nekopoi APK 2025 free lastest update
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
top salesforce developer skills in 2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Digital Strategies for Manufacturing Companies
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Transform Your Business with a Software ERP System
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
System and Network Administraation Chapter 3
medical staffing services at VALiNTRY
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Nekopoi APK 2025 free lastest update
Design an Analysis of Algorithms I-SECS-1021-03
top salesforce developer skills in 2025.pdf
Understanding Forklifts - TECH EHS Solution
Essential Infomation Tech presentation.pptx
Operating system designcfffgfgggggggvggggggggg
Digital Strategies for Manufacturing Companies
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Wondershare Filmora 15 Crack With Activation Key [2025
Softaken Excel to vCard Converter Software.pdf
Transform Your Business with a Software ERP System
Reimagine Home Health with the Power of Agentic AI​
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
2025 Textile ERP Trends: SAP, Odoo & Oracle
Lecture 3: Operating Systems Introduction to Computer Hardware Systems

Building modern Progressive Web Apps with Polymer

  • 4. Topics Today ● What exactly are Progressive Web Apps ? ● Tools and Libraries for Progressive Web Apps ● Polymer overview ● Building modern progressive web apps with Polymer ● There’s no silver bullet
  • 5. What exactly is a Progressive Web App?
  • 6. Radically improving web user experience
  • 7. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet.
  • 8. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next
  • 9. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks
  • 10. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks App-like - Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model
  • 11. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks App-like - Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model Fresh - Always up-to-date thanks to the service worker update process
  • 12. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks App-like - Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model Fresh - Always up-to-date thanks to the service worker update process Safe - Served via HTTPS to prevent snooping and to ensure content hasn't been tampered with.
  • 13. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks App-like - Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model Fresh - Always up-to-date thanks to the service worker update process Safe - Served via HTTPS to prevent snooping and to ensure content hasn't been tampered with. Discoverable - Is identifiable as an "application" thanks to W3C manifest and service worker registration scope, allowing search engines to find it
  • 14. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks App-like - Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model Fresh - Always up-to-date thanks to the service worker update process Safe - Served via HTTPS to prevent snooping and to ensure content hasn't been tampered with. Discoverable - Is identifiable as an "application" thanks to W3C manifest and service worker registration scope, allowing search engines to find it Re-engageable - Makes re-engagement easy through features like push notifications
  • 15. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks App-like - Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model Fresh - Always up-to-date thanks to the service worker update process Safe - Served via HTTPS to prevent snooping and to ensure content hasn't been tampered with. Discoverable - Is identifiable as an "application" thanks to W3C manifest and service worker registration scope, allowing search engines to find it Re-engageable - Makes re-engagement easy through features like push notifications Installable - Allows users to "keep" apps they find most useful on their home screen without the hassle of an app store
  • 16. Progressive - Works for every user, regardless of browser choice because it's built with progressive enhancement as a core tenet. Responsive - Fits any form factor: desktop, mobile, tablet or whatever is next Connectivity independent - Enhanced with service workers to work offline or on low-quality networks App-like - Feels like an app to the user with app-style interactions and navigation because it's built on the app shell model Fresh - Always up-to-date thanks to the service worker update process Safe - Served via HTTPS to prevent snooping and to ensure content hasn't been tampered with. Discoverable - Is identifiable as an "application" thanks to W3C manifest and service worker registration scope, allowing search engines to find it Re-engageable - Makes re-engagement easy through features like push notifications Installable - Allows users to "keep" apps they find most useful on their home screen without the hassle of an app store Linkable - Easily share via URL, does not require complex installation
  • 20. Housing.com: User Acquisition Costs $ 3.75 Android App Mobile Web $ 0.07 1 vs 53
  • 21. 17 000+ developers across 35+ countries
  • 23. sw-precache Build-time precaching for static assets github.com/GoogleChrome/sw-precache
  • 24. sw-toolbox Runtime caching strategies & expiration github.com/GoogleChrome/sw-toolbox
  • 31. Framework Layers ● Routes match URLs and apply Handlers ○ RegExpRoute ○ ExpressRoute ○ … and more! Routing
  • 32. Framework Layers ● Routes match URLs and apply Handlers ○ RegExpRoute ○ ExpressRoute ○ … and more! ● Called by Route, or used in your own code (Caching strategies) ○ StaleWhileRevalidate ○ NetworkFirst ○ … and more! Routing Runtime Handlers
  • 33. Framework Layers ● Routes match URLs and apply Handlers ○ RegExpRoute ○ ExpressRoute ○ … and more! ● Called by Route, or used in your own code ○ StaleWhileRevalidate ○ NetworkFirst ○ … and more! ● Custom callbacks for network & caches ○ requestWillFetch (Custom Action) ○ fetchDidFail (Custom Action) ○ cacheDidUpdate (Custom Action) Routing Runtime Handlers Request Behaviors
  • 35. Browser Request Web API Server Progressive web apps (PWA) Service Worker Cache
  • 40. 2014 - Polymer 0.5 (Developer preview) 2015 - Polymer 1.0 2016 and 2017 - Polymer 2.0
  • 43. My first component Picture-frame.html <link rel=”import” href="https://polygit2.appspot.com/components/polymer/polymer.html"> <dom-module id=”picture-frame”> <template> <style> :host { display: block; } </style> <h1>Hello jstalks</h1> <!-- any children are rendered here → <content></content> </template> <script> Polymer({ ‘is’: ‘picture-frame’ }) </script> </dom-module> <picture-frame> <img src=”jstalks.png” alt=”jstalks” /> </picture-frame>
  • 44. Image Source: Polymer Summit 2016
  • 45. Building modern progressive web apps with Polymer
  • 46. Push components for initial route Pre - cache components for remaining routes Lazy - load & create next routes on-demand Render the initial route asap The PRPL Pattern
  • 52. Template Shadow dom v0 Custom Elements v0 HTML Imports
  • 54. How I learned to stop worrying and love the Polymer toolbox (Polymer Summit 2016)
  • 58. MyTeletouch your phone as TV-PC wireless keyboard