SlideShare a Scribd company logo
Getting Real with Progressive
Web Apps in 2018
Max GJ Panas - Principal Software Engineer @ Camelot Global
@mgjp_
2018
is the year of the
@mgjp_
Rise of the PWAs@mgjp_
Progressively
Better
Experiences
@mgjp_
90%
smaller than
Android App
60%increase in
core-engagements
44%increase in
user-generated ad
revenue
104%
improvement in
conversions
74%more time
spent per session
Stats from https://www.pwastats.com/@mgjp_
Web Tech in 2018
Service Workers
Fetch
Payments API
Add To Homescreen
ES Modules
Auth API
Web Components
Web Assembly
Web Workers
Notifications API
@mgjp_
ALL major
browsers support
the Core PWA
Technologies
@mgjp_
Browser Compatibility Table from https://www.youtube.com/watch?v=NITk4kXMQDw&t=381s
Progressive
@mgjp_
Progressive Web
Apps: Escaping Tabs
Without Losing Our
Soul
By Alex Russell,
Frances Berriman
June 2015
@mgjp_
ESCAPING THE TAB:
PROGRESSIVE, NOT HYBRID
● Responsive
● Connectivity independent
● App-like-interactions
● Fresh
● Safe
● Discoverable
● Re-engageable
● Installable
● Linkable
@mgjp_
Service Worker is
the backbone of
PWA technology
@mgjp_
Ok, so How?
@mgjp_
1. Address existing pain points
@mgjp_
All Form Factors@mgjp_
Accessibility
& Semantic Markup
@mgjp_
Performance
@mgjp_
Progressive
Enhancement
@mgjp_
1. Address Existing Pain Points
Use the existing tools and best practices
- Responsive Web Design
- Web Performance
(First Meaningful Paint, Time to Interactive, Eliminating Jank, PRPL)
- Accessibility & Semantic Markup
- Progressive Enhancement
@mgjp_
2. If not on HTTPS, get on it now!
@mgjp_
3. Setup a Service Worker
@mgjp_
A Service Worker is your JS code, running in the browser separately from your site
@mgjp_
Since your site talks to the Service Worker, it doesn’t need to know about the network
@mgjp_
Since the Service Worker can run in the background it doesn’t need your site
@mgjp_
3.0 An example
my-first-pwa/
index.html
main.css
main.js
@mgjp_
Control Scope defaults to being relative to the
path of the service worker script file.
You can override this by passing in the scope
attribute to the serviceWorker.register
method.
3.1 Where to put it
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.2 Get it
Registered
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.2 Slightly Better
Registration
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.3 Get it to
handle requests
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.3 Open the
Cache
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.3 Try to get from
the Cache
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.3 Use Cache
version if it exists
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.3 Else fetch it
from the Network
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.3 Save it to the
Cache
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
Our Request Handling Strategy
@mgjp_
3.4 (Optional) Early
Cache Population
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
3.5 (Optional)
Claim the client
my-first-pwa/
index.html
main.css
main.js
sw.js
@mgjp_
4. Create the Web App Manifest
@mgjp_
4.1
Link it in the Head
my-first-pwa/
index.html
main.css
main.js
manifest.json
sw.js
@mgjp_
4.2 Give it a Name
my-first-pwa/
index.html
main.css
main.js
manifest.json
sw.js
@mgjp_
4.3 Give it style
my-first-pwa/
index.html
main.css
main.js
manifest.json
sw.js
@mgjp_
4.4 Fullscreen
or Standalone
my-first-pwa/
index.html
main.css
main.js
manifest.json
sw.js
@mgjp_
4.5 Where to begin
my-first-pwa/
index.html
main.css
main.js
manifest.json
sw.js
@mgjp_
4.6 and more...
my-first-pwa/
index.html
main.css
main.js
manifest.json
sw.js
@mgjp_
5. Add to Homescreen
@mgjp_
It Already Works!
But…
It’s about to change, slightly.
Animated gif of add to home screen banner in Chrome from Google Developers.@mgjp_
5.1 Control the
Install Prompt
my-first-pwa/
index.html
main.css
main.js
manifest.json
sw.js
@mgjp_
6. The rest is up to you!
● Push Notifications
● Web Auth / Credentials Management API
● Web Payments API
● And more...
@mgjp_
THIS IS TOO HARD!
Or, is it?
@mgjp_
Mature Tooling, Libraries, Guides and Tuts
● Let’s Encrypt - SSL Certificate Authority - for HTTPS
● Microsoft’s PWA Builder - Wizard -
for Web App Manifest & Service Workers
● Google’s Workbox - Library - for Service Workers
● And more… (eg: Google’s Lighthouse) @mgjp_
Desktop
@mgjp_
PWA
vs
Electron
@mgjp_
PWA vs Native
@mgjp_
THANK YOU
@mgjp_

More Related Content

TXT
Job
DOCX
SasikumarManickam_9 Yrs Exp
PDF
Apidays Paris 2023 - Not Your Grandma’s Rate Limiting, Meenakshi Dhanani, Pos...
PDF
Not Your Grandma’s Rate Limiting (slides)
PDF
Progressive Web Apps by Millicent Convento
PDF
Modernizing Integrations
PDF
Shuvam dutta
PDF
Shuvam dutta | Performance tester
Job
SasikumarManickam_9 Yrs Exp
Apidays Paris 2023 - Not Your Grandma’s Rate Limiting, Meenakshi Dhanani, Pos...
Not Your Grandma’s Rate Limiting (slides)
Progressive Web Apps by Millicent Convento
Modernizing Integrations
Shuvam dutta
Shuvam dutta | Performance tester

Similar to Voxxed Athens 2018 - Getting real with progressive web apps in 2018 (16)

PDF
Query Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
PDF
Mli 2017 technical first steps to building secure Magento extensions
PDF
Amazon SageMaker workshop
PDF
Engage 2013 - Flexible Data Access with APIs
PDF
Bringing the JAMstack to the Enterprise
PDF
IRJET- Custom CMS using Smarty Template Engine for Mobile Portal
PDF
Amazon SageMaker 紹介 & ハンズオン(2018/07/03 実施)
PDF
Implementing Google Analytics in WordPress
PPTX
An Introduction to Amazon SageMaker (October 2018)
PDF
Compliance as Code Everywhere
PPTX
Using AWS to Achieve Both Autonomy and Governance at 3M
PPTX
Quickly and easily build, train, and deploy machine learning models at any scale
PDF
Shuvam dutta | Performance testing and engineering
PDF
Eradicate Flaky Tests
PDF
Amp your site an intro to accelerated mobile pages
PPTX
Hackazon realistic e-commerce Hack platform
Query Optimization with MySQL 8.0 and MariaDB 10.3: The Basics
Mli 2017 technical first steps to building secure Magento extensions
Amazon SageMaker workshop
Engage 2013 - Flexible Data Access with APIs
Bringing the JAMstack to the Enterprise
IRJET- Custom CMS using Smarty Template Engine for Mobile Portal
Amazon SageMaker 紹介 & ハンズオン(2018/07/03 実施)
Implementing Google Analytics in WordPress
An Introduction to Amazon SageMaker (October 2018)
Compliance as Code Everywhere
Using AWS to Achieve Both Autonomy and Governance at 3M
Quickly and easily build, train, and deploy machine learning models at any scale
Shuvam dutta | Performance testing and engineering
Eradicate Flaky Tests
Amp your site an intro to accelerated mobile pages
Hackazon realistic e-commerce Hack platform
Ad

More from Voxxed Athens (18)

PPTX
Voxxed Athens 2018 - Eventing, Serverless, and the Extensible Enterprise
PDF
Voxxed Athens 2018 - Let’s Get Chatty with Conversational Interface with Java...
PPTX
Voxxed Athens 2018 - IBM Watson Machine Learning – Build and train AI models ...
PDF
Voxxed Athens 2018 - We're going to talk about no sql, you can't join
PDF
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
PDF
Voxxed Athens 2018 - The secret for high quality software: Listen to your people
PDF
Voxxed Athens 2018 - A scalable maritime platform providing services through...
PDF
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
PDF
Voxxed Athens 2018 - Your Local Meet-up: Your Path to Crafts(wo)manship
PDF
Voxxed Athens 2018 - The quantum computers are coming
PDF
Voxxed Athens 2018 - Serverless by Design
PDF
Voxxed Athens 2018 - Why Kotlin?
PDF
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
PDF
Voxxed Athens 2018 - How WebAssembly is changing the Web and what it means to...
PDF
Voxxed Athens 2018 - Going agile with kanban
PDF
Voxxed Athens 2018 - Elasticsearch (R)Evolution — You Know, for Search...
PDF
Voxxed Athens 2018 - Clean Code with Java9+
PDF
Voxxed Athens 2018 - Graph databases & data integration
Voxxed Athens 2018 - Eventing, Serverless, and the Extensible Enterprise
Voxxed Athens 2018 - Let’s Get Chatty with Conversational Interface with Java...
Voxxed Athens 2018 - IBM Watson Machine Learning – Build and train AI models ...
Voxxed Athens 2018 - We're going to talk about no sql, you can't join
Voxxed Athens 2018 - Methods and Practices for Guaranteed Failure in Big Data
Voxxed Athens 2018 - The secret for high quality software: Listen to your people
Voxxed Athens 2018 - A scalable maritime platform providing services through...
Voxxed Athens 2018 - UX design and back-ends: When the back-end meets the user
Voxxed Athens 2018 - Your Local Meet-up: Your Path to Crafts(wo)manship
Voxxed Athens 2018 - The quantum computers are coming
Voxxed Athens 2018 - Serverless by Design
Voxxed Athens 2018 - Why Kotlin?
Voxxed Athens 2018 - Java EE is dead Long live jakarta EE!
Voxxed Athens 2018 - How WebAssembly is changing the Web and what it means to...
Voxxed Athens 2018 - Going agile with kanban
Voxxed Athens 2018 - Elasticsearch (R)Evolution — You Know, for Search...
Voxxed Athens 2018 - Clean Code with Java9+
Voxxed Athens 2018 - Graph databases & data integration
Ad

Recently uploaded (20)

PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Spectroscopy.pptx food analysis technology
PDF
Approach and Philosophy of On baking technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectroscopy.pptx food analysis technology
Approach and Philosophy of On baking technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
The AUB Centre for AI in Media Proposal.docx
Unlocking AI with Model Context Protocol (MCP)
Mobile App Security Testing_ A Comprehensive Guide.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Programs and apps: productivity, graphics, security and other tools
Per capita expenditure prediction using model stacking based on satellite ima...
MIND Revenue Release Quarter 2 2025 Press Release

Voxxed Athens 2018 - Getting real with progressive web apps in 2018