SlideShare a Scribd company logo
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
in practice
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
linkedin.com/in/luke-romanowicz
@luke_romanowicz
Contact
Interests
Full Stack Team Leader at Divante and a core
member of Vue Storefront. Working in IT for over
8 years.
Łukasz Romanowicz
• Automation
• Testing
• DevOps
• IoT
• U.S. Motocraft
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Who knows what PWA is?
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Progressive Web Applications
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
• Website you can install on mobile phone
and use just like native
• Web Application you can use offline
• Apps that use push notifications
• Single Page Application
• Web Application written on top of
modern framework with serverside
rendering
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
The truth behind PWA
Progressive web apps use modern web APIs
along with traditional progressive enhancement
strategy to create cross-platform web applications.
These apps work everywhere and provide several
features that give them the same user experience
advantages as native apps.
- MDN web docs
"
"
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
How to make your app progressive?
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Progressive enhancement
• Emphasize core webpage content first
• Ensure all the core features work on
all target platforms
• Ensure all the core features are
performant enough on older devices
with lower bandwith
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
● Load the visible content first
● Make high priority content as
lightweight as possible
● Fetch less important chunks later
Content prioritizing
credits: ux.shopify.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Keep in mind target platforms APIs.
Most of the missing features can
be replaced with alternatives.
Fallbacks
source: caniuse.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
How to get them?
● Babel
● Polyfill.io
● Npm/Yarn/GitHub
Polyfills
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
● Use Chrome Coverage to get rid of
dead code
● Fetch unused code later (e.g. with
dynamic import)
Improving performance:
Code splitting & lazy loading
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
● Assets minification and compression
● Optimal formats (e.g. use SVGs raster
images whenever it’s possible)
● Use lightest libs to achieve your goal
(bundlephobia.com may help you!)
Improving performance:
minimize content
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
● Utilize browser storage
● Set correct cache headers for your assets
● Serve cached responses whenever possible
Improving performance:
Proper caching
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Once upon a time,
there was a visionary…
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
source: youtube.com/watch?v=y1B2c3ZD9fk
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
2012
-W
ork
starts
on
Service
W
orkers
2013
-m
anifest.json
2015
(June)-PW
A
term
coined
2015
(A
pril)-Introduced
in
Chrom
e
42
2015
-FirstPW
A:airhorner.com
2015
(O
ct)-Flipcart.com
launched
2017
-W
ebAPK
&
D
esktop
PW
A
2007
(June)–
Steve
Jobs
talking
aboutthe
future
ofm
obile
apps
Short history of
native alike web apps
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
● Create manifest.json
● Link it on html page
● That’s it!
Installing app on desktop:
The Web App Manifest
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
But can I use it?
source: caniuse.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Possible fallbacks
● Safari native meta attributes
(apple-mobile-web-app-capable, apple-touch-icon)
● Hybrid Apps (native wrappers for web
apps) – e.g. React Native, Xamarin,
Ionic 
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Offline browsing:
Service Workers
Service workers essentially act as proxy servers
that sit between web applications, the browser, and
the network (when available).
- MDN web docs
"
"
Installing service worker:
source: developers.google.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Offline browsing:
Service Workers
Precache chosen dependencies:
Consume cache with cache-first strategy:
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Service Workers:
Basic cache strategies
source: developers.google.com
Network-first Cache-first
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Service Workers:
Read more
developers.google.com/we
b/fundamentals/instant-and-
offline/offline-cookbook
developer.mozilla.org/en-U
S/docs/Web/API/Service_
Worker_API
serviceworke.rs
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Service Workers:
Other use cases
● Automatically update offline-ready applications
● Additional layer for interacting with users (e.g.
using push notifications)
● Browser-side load balancer
● Offline analytics
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Accelerate creating
Service Workers
● Workbox
● 3rd party Webpack plugins
● pwabuilder.com/serviceworker
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
All’s cool, but can I use it?
source: caniuse.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Possible fallback
There are no fallbacks for Service Workers
source: exacthire.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Service Workers:
Pitfalls and caveats
● Basic access authentication can’t prompt from Service Workers
● You need SSL/TLS to make it work outside your local environment
● Redirects need special care
● Service Worker updating/versioning might be tricky, especially when SW is
failing
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Push Notifications
Service workers essentially act as proxy servers
that sit between web applications, the browser, and
the network (when available).
- MDN web docs
"
"
source: Alexander Zlatkov @ Medium source: eventus.io
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Just let me know if I can use it …
source: caniuse.com
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Possible fallbacks
● Email Newsletter
● SMS
● Social platforms direct messages
(e.g. through Messenger)
● Customer service calls
● Analog letters
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Other platform-specific features:
● Geolocalization
● Gyro/accelerometer data
● Sending SMS
● Vibration
● WebGL
● Proximity sensor
● Front/Rear camera
● Direct calls
● Google Pay/Apple
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Proper UI is the key
source: Vuetify source: MaterialUI source: towergame.app
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Polytics & Restrictions
● What if, for whatever reason, your native app gets blocked from native store?
● What if one of the most popular device manufacturers gets banned from native store?
● What if you don’t want to pay fees for monetizing your mobile app?
With PWA you are not dependent on
any third parties anymore!
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
SUMMARY
PWA CAN BE DONE WITHOUT ANY
ADDITIONAL JAVASCRIPT
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Progressive Web Apps
- At best a fully functional application, at worst a responsive website
- Prioritize core content
- Don’t forget about performance
- Webpack + Babel provide backwards compatibility
- Older browsers will lack features such as Service Workers
- Always think about Graceful Degradation
- Caniuse(.com) can tell you what features a clients browser offers
@sandermangelsander@vuestofront.io
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Great sources of
PWA knowledge
● Progressive Web Apps section @ developers.google.com
● Progressive Web Apps section @ developer.mozilla.org
● Maximiliano Firtman @ medium - medium.com/@firt
● Chrome Dev Team @ twitter – twitter.com/@ChromiumDev
Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
Thank you for your time Łukasz Romanowicz
Team Leader & Vue Storefront Maintainer
lromanowicz@divante.com
@luke_romanowicz
@lukeromanowicz
divante.com
vuestorefront.io

More Related Content

What's hot

The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...
Robert Nyman
 
Amp Overview #YGLF 2016
Amp Overview #YGLF 2016Amp Overview #YGLF 2016
Amp Overview #YGLF 2016
Ido Green
 
Anatomy of a Progressive Web App
Anatomy of a Progressive Web AppAnatomy of a Progressive Web App
Anatomy of a Progressive Web App
Mike North
 
Getting Started with Progressive Web Apps
Getting Started with Progressive Web AppsGetting Started with Progressive Web Apps
Getting Started with Progressive Web Apps
Bill Stavroulakis
 
PWA - Progressive Web App
PWA - Progressive Web AppPWA - Progressive Web App
PWA - Progressive Web App
Robert Robinson
 
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
Robert Nyman
 
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
Robert Nyman
 
Predictability for the Web
Predictability for the WebPredictability for the Web
Predictability for the Web
Robert Nyman
 
Offline-First Progressive Web Apps
Offline-First Progressive Web AppsOffline-First Progressive Web Apps
Offline-First Progressive Web Apps
Aditya Punjani
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWA
Ido Green
 
Progressive Web Applications
Progressive Web ApplicationsProgressive Web Applications
Progressive Web Applications
Bartek Igielski
 
AMP - Accelerated Mobile Pages
AMP - Accelerated Mobile PagesAMP - Accelerated Mobile Pages
AMP - Accelerated Mobile Pages
Ido Green
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
R. Caner Yıldırım
 
My learnings on web performance optimization while building a Progressive Web...
My learnings on web performance optimization while building a Progressive Web...My learnings on web performance optimization while building a Progressive Web...
My learnings on web performance optimization while building a Progressive Web...
Narendra Shetty
 
AMPed SEO with Mike Arnesen & SEMpdx
AMPed SEO with Mike Arnesen & SEMpdxAMPed SEO with Mike Arnesen & SEMpdx
AMPed SEO with Mike Arnesen & SEMpdx
Mike Arnesen
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
Subodh Garg
 
AMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & AnalyticsAMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & Analytics
Vincent Koc
 
Next Generation Mobile Web - PWA (Progressive Web App)
Next Generation Mobile Web  - PWA (Progressive Web App)Next Generation Mobile Web  - PWA (Progressive Web App)
Next Generation Mobile Web - PWA (Progressive Web App)
Nuri Cahyono
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
Jason Grigsby
 
Bruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of AppsBruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of Apps
brucelawson
 

What's hot (20)

The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...
 
Amp Overview #YGLF 2016
Amp Overview #YGLF 2016Amp Overview #YGLF 2016
Amp Overview #YGLF 2016
 
Anatomy of a Progressive Web App
Anatomy of a Progressive Web AppAnatomy of a Progressive Web App
Anatomy of a Progressive Web App
 
Getting Started with Progressive Web Apps
Getting Started with Progressive Web AppsGetting Started with Progressive Web Apps
Getting Started with Progressive Web Apps
 
PWA - Progressive Web App
PWA - Progressive Web AppPWA - Progressive Web App
PWA - Progressive Web App
 
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...
 
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...
 
Predictability for the Web
Predictability for the WebPredictability for the Web
Predictability for the Web
 
Offline-First Progressive Web Apps
Offline-First Progressive Web AppsOffline-First Progressive Web Apps
Offline-First Progressive Web Apps
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWA
 
Progressive Web Applications
Progressive Web ApplicationsProgressive Web Applications
Progressive Web Applications
 
AMP - Accelerated Mobile Pages
AMP - Accelerated Mobile PagesAMP - Accelerated Mobile Pages
AMP - Accelerated Mobile Pages
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
My learnings on web performance optimization while building a Progressive Web...
My learnings on web performance optimization while building a Progressive Web...My learnings on web performance optimization while building a Progressive Web...
My learnings on web performance optimization while building a Progressive Web...
 
AMPed SEO with Mike Arnesen & SEMpdx
AMPed SEO with Mike Arnesen & SEMpdxAMPed SEO with Mike Arnesen & SEMpdx
AMPed SEO with Mike Arnesen & SEMpdx
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
 
AMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & AnalyticsAMP Accelerated Mobile Pages - Getting Started & Analytics
AMP Accelerated Mobile Pages - Getting Started & Analytics
 
Next Generation Mobile Web - PWA (Progressive Web App)
Next Generation Mobile Web  - PWA (Progressive Web App)Next Generation Mobile Web  - PWA (Progressive Web App)
Next Generation Mobile Web - PWA (Progressive Web App)
 
Progressive Web App Challenges
Progressive Web App ChallengesProgressive Web App Challenges
Progressive Web App Challenges
 
Bruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of AppsBruce Lawson: Progressive Web Apps: the future of Apps
Bruce Lawson: Progressive Web Apps: the future of Apps
 

Similar to Meet.js Summit 2019 - PWA in practice

Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
AnjaliTanpure1
 
Web application development full & detailed guide for 2022
Web application development  full & detailed guide for 2022Web application development  full & detailed guide for 2022
Web application development full & detailed guide for 2022
Metricoid Technology
 
PWA - Progressive WordPress Apps
PWA - Progressive WordPress AppsPWA - Progressive WordPress Apps
PWA - Progressive WordPress Apps
Fellyph Cintra
 
The PRPL Pattern
The PRPL PatternThe PRPL Pattern
The PRPL Pattern
Red Pill Now
 
Progressive web application
Progressive web applicationProgressive web application
Progressive web application
RavikantGautam8
 
20181023 progressive web_apps_are_here_sfcampua
20181023 progressive web_apps_are_here_sfcampua20181023 progressive web_apps_are_here_sfcampua
20181023 progressive web_apps_are_here_sfcampua
Юлия Коваленко
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
Jason Grigsby
 
Creating No Code Web Apps with FME Server
Creating No Code Web Apps with FME ServerCreating No Code Web Apps with FME Server
Creating No Code Web Apps with FME Server
Safe Software
 
[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA Studio[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA Studio
CedCommerce
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
Saleh Rahimzadeh
 
Introduction of Progressive Web App
Introduction of Progressive Web AppIntroduction of Progressive Web App
Introduction of Progressive Web App
Sankalp Khandelwal
 
Progressive web apps for e commerce
Progressive web apps for e commerceProgressive web apps for e commerce
Progressive web apps for e commerce
ShantanuApurva1
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
Divante
 
Turku <3 Frontend - Progressive Web Apps, Web and Apps
Turku <3 Frontend - Progressive Web Apps, Web and AppsTurku <3 Frontend - Progressive Web Apps, Web and Apps
Turku <3 Frontend - Progressive Web Apps, Web and Apps
Joni Juup
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Saikiran Sheshagiri
 
How to deal with mobile traffic expansion
How to deal with mobile traffic expansionHow to deal with mobile traffic expansion
How to deal with mobile traffic expansion
Mevlana M. Gürbulak
 
Core Web Vitals SEO Workshop - improve your performance [pdf]
Core Web Vitals SEO Workshop - improve your performance [pdf]Core Web Vitals SEO Workshop - improve your performance [pdf]
Core Web Vitals SEO Workshop - improve your performance [pdf]
Peter Mead
 
Progressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningProgressive Web Apps - Up & Running
Progressive Web Apps - Up & Running
Suraj Kumar
 
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
PWA ( Progressive Web Apps ) - Sai Kiran KasireddyPWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
Sai Kiran Kasireddy
 
Checklist for progressive web app development
Checklist for progressive web app developmentChecklist for progressive web app development
Checklist for progressive web app development
WebGuru Infosystems Pvt. Ltd.
 

Similar to Meet.js Summit 2019 - PWA in practice (20)

Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
 
Web application development full & detailed guide for 2022
Web application development  full & detailed guide for 2022Web application development  full & detailed guide for 2022
Web application development full & detailed guide for 2022
 
PWA - Progressive WordPress Apps
PWA - Progressive WordPress AppsPWA - Progressive WordPress Apps
PWA - Progressive WordPress Apps
 
The PRPL Pattern
The PRPL PatternThe PRPL Pattern
The PRPL Pattern
 
Progressive web application
Progressive web applicationProgressive web application
Progressive web application
 
20181023 progressive web_apps_are_here_sfcampua
20181023 progressive web_apps_are_here_sfcampua20181023 progressive web_apps_are_here_sfcampua
20181023 progressive web_apps_are_here_sfcampua
 
Planning Your Progressive Web App
Planning Your Progressive Web AppPlanning Your Progressive Web App
Planning Your Progressive Web App
 
Creating No Code Web Apps with FME Server
Creating No Code Web Apps with FME ServerCreating No Code Web Apps with FME Server
Creating No Code Web Apps with FME Server
 
[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA Studio[Webinar] Expanding future mobile commerce with Magento PWA Studio
[Webinar] Expanding future mobile commerce with Magento PWA Studio
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
 
Introduction of Progressive Web App
Introduction of Progressive Web AppIntroduction of Progressive Web App
Introduction of Progressive Web App
 
Progressive web apps for e commerce
Progressive web apps for e commerceProgressive web apps for e commerce
Progressive web apps for e commerce
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
 
Turku <3 Frontend - Progressive Web Apps, Web and Apps
Turku <3 Frontend - Progressive Web Apps, Web and AppsTurku <3 Frontend - Progressive Web Apps, Web and Apps
Turku <3 Frontend - Progressive Web Apps, Web and Apps
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
How to deal with mobile traffic expansion
How to deal with mobile traffic expansionHow to deal with mobile traffic expansion
How to deal with mobile traffic expansion
 
Core Web Vitals SEO Workshop - improve your performance [pdf]
Core Web Vitals SEO Workshop - improve your performance [pdf]Core Web Vitals SEO Workshop - improve your performance [pdf]
Core Web Vitals SEO Workshop - improve your performance [pdf]
 
Progressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningProgressive Web Apps - Up & Running
Progressive Web Apps - Up & Running
 
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
PWA ( Progressive Web Apps ) - Sai Kiran KasireddyPWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
 
Checklist for progressive web app development
Checklist for progressive web app developmentChecklist for progressive web app development
Checklist for progressive web app development
 

Recently uploaded

How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
AnkitaPandya11
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 

Recently uploaded (20)

How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 

Meet.js Summit 2019 - PWA in practice

  • 1. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com in practice
  • 2. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com linkedin.com/in/luke-romanowicz @luke_romanowicz Contact Interests Full Stack Team Leader at Divante and a core member of Vue Storefront. Working in IT for over 8 years. Łukasz Romanowicz • Automation • Testing • DevOps • IoT • U.S. Motocraft
  • 3. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Who knows what PWA is?
  • 4. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Progressive Web Applications
  • 5. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com • Website you can install on mobile phone and use just like native • Web Application you can use offline • Apps that use push notifications • Single Page Application • Web Application written on top of modern framework with serverside rendering
  • 6. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com The truth behind PWA Progressive web apps use modern web APIs along with traditional progressive enhancement strategy to create cross-platform web applications. These apps work everywhere and provide several features that give them the same user experience advantages as native apps. - MDN web docs " "
  • 7. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com How to make your app progressive?
  • 8. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Progressive enhancement • Emphasize core webpage content first • Ensure all the core features work on all target platforms • Ensure all the core features are performant enough on older devices with lower bandwith
  • 9. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com ● Load the visible content first ● Make high priority content as lightweight as possible ● Fetch less important chunks later Content prioritizing credits: ux.shopify.com
  • 10. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Keep in mind target platforms APIs. Most of the missing features can be replaced with alternatives. Fallbacks source: caniuse.com
  • 11. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com How to get them? ● Babel ● Polyfill.io ● Npm/Yarn/GitHub Polyfills
  • 12. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com ● Use Chrome Coverage to get rid of dead code ● Fetch unused code later (e.g. with dynamic import) Improving performance: Code splitting & lazy loading
  • 13. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com ● Assets minification and compression ● Optimal formats (e.g. use SVGs raster images whenever it’s possible) ● Use lightest libs to achieve your goal (bundlephobia.com may help you!) Improving performance: minimize content
  • 14. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com ● Utilize browser storage ● Set correct cache headers for your assets ● Serve cached responses whenever possible Improving performance: Proper caching
  • 15. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com
  • 16. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Once upon a time, there was a visionary…
  • 17. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com source: youtube.com/watch?v=y1B2c3ZD9fk
  • 18. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com 2012 -W ork starts on Service W orkers 2013 -m anifest.json 2015 (June)-PW A term coined 2015 (A pril)-Introduced in Chrom e 42 2015 -FirstPW A:airhorner.com 2015 (O ct)-Flipcart.com launched 2017 -W ebAPK & D esktop PW A 2007 (June)– Steve Jobs talking aboutthe future ofm obile apps Short history of native alike web apps
  • 19. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com ● Create manifest.json ● Link it on html page ● That’s it! Installing app on desktop: The Web App Manifest
  • 20. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com But can I use it? source: caniuse.com
  • 21. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Possible fallbacks ● Safari native meta attributes (apple-mobile-web-app-capable, apple-touch-icon) ● Hybrid Apps (native wrappers for web apps) – e.g. React Native, Xamarin, Ionic 
  • 22. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Offline browsing: Service Workers Service workers essentially act as proxy servers that sit between web applications, the browser, and the network (when available). - MDN web docs " " Installing service worker: source: developers.google.com
  • 23. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Offline browsing: Service Workers Precache chosen dependencies: Consume cache with cache-first strategy:
  • 24. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Service Workers: Basic cache strategies source: developers.google.com Network-first Cache-first
  • 25. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Service Workers: Read more developers.google.com/we b/fundamentals/instant-and- offline/offline-cookbook developer.mozilla.org/en-U S/docs/Web/API/Service_ Worker_API serviceworke.rs
  • 26. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Service Workers: Other use cases ● Automatically update offline-ready applications ● Additional layer for interacting with users (e.g. using push notifications) ● Browser-side load balancer ● Offline analytics
  • 27. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Accelerate creating Service Workers ● Workbox ● 3rd party Webpack plugins ● pwabuilder.com/serviceworker
  • 28. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com All’s cool, but can I use it? source: caniuse.com
  • 29. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Possible fallback There are no fallbacks for Service Workers source: exacthire.com
  • 30. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Service Workers: Pitfalls and caveats ● Basic access authentication can’t prompt from Service Workers ● You need SSL/TLS to make it work outside your local environment ● Redirects need special care ● Service Worker updating/versioning might be tricky, especially when SW is failing
  • 31. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Push Notifications Service workers essentially act as proxy servers that sit between web applications, the browser, and the network (when available). - MDN web docs " " source: Alexander Zlatkov @ Medium source: eventus.io
  • 32. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Just let me know if I can use it … source: caniuse.com
  • 33. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Possible fallbacks ● Email Newsletter ● SMS ● Social platforms direct messages (e.g. through Messenger) ● Customer service calls ● Analog letters
  • 34. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Other platform-specific features: ● Geolocalization ● Gyro/accelerometer data ● Sending SMS ● Vibration ● WebGL ● Proximity sensor ● Front/Rear camera ● Direct calls ● Google Pay/Apple
  • 35. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Proper UI is the key source: Vuetify source: MaterialUI source: towergame.app
  • 36. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Polytics & Restrictions ● What if, for whatever reason, your native app gets blocked from native store? ● What if one of the most popular device manufacturers gets banned from native store? ● What if you don’t want to pay fees for monetizing your mobile app? With PWA you are not dependent on any third parties anymore!
  • 37. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com SUMMARY PWA CAN BE DONE WITHOUT ANY ADDITIONAL JAVASCRIPT
  • 38. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Progressive Web Apps - At best a fully functional application, at worst a responsive website - Prioritize core content - Don’t forget about performance - Webpack + Babel provide backwards compatibility - Older browsers will lack features such as Service Workers - Always think about Graceful Degradation - Caniuse(.com) can tell you what features a clients browser offers @sandermangelsander@vuestofront.io
  • 39. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Great sources of PWA knowledge ● Progressive Web Apps section @ developers.google.com ● Progressive Web Apps section @ developer.mozilla.org ● Maximiliano Firtman @ medium - medium.com/@firt ● Chrome Dev Team @ twitter – twitter.com/@ChromiumDev
  • 40. Progressive Web Apps in practice @luke_romanowiczlromanowicz@divante.com Thank you for your time Łukasz Romanowicz Team Leader & Vue Storefront Maintainer lromanowicz@divante.com @luke_romanowicz @lukeromanowicz divante.com vuestorefront.io