SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
Introduction to Progressive web
app (PWA)
Zhentian Wan
What is PWA
Progressive Web Apps are experiences that combine the best of the web and the best of apps. They are useful to users
from the very first visit in a browser tab, no install required. As the user progressively builds a relationship with the App over
time, it becomes more and more powerful. It loads quickly, even on flaky networks, sends relevant push notifications, has
an icon on the home screen and loads as a top-level, full screen experience.
● Fast loading
● Native mobile feeling (Home screen, Push notification)
● Offline experience
Study Case
https://developers.google.com/web/showcase/2016/flipkart
PWA
● Web App
● Progressive enhancement
○ Means even some browser doesn’t support PWA, you website should still work as normal
PWA
● Web App
● Progressive enhancement
(https://jakearchibald.github.io/isserviceworkerready/)
What is PWA
● Service Worker (Offline Experience)
● App Shell (Fast Loading)
● Manifest.json (Home Screen)
APP Shell
The min HTML, CSS, JS that required to power up user interface.
Design Idea: What need to be displayed on screen immediately?
APP Shell
The min HTML, CSS, JS that required to power up user interface.
Design Idea: What need to be displayed on screen immediately?
Manifest.json
Splash Screen
Add to Home Screen
Service Worker
HTTPS
HTTPS Firebase
Firebase Hosting
1. Create a app on Firebase
2. Install firebase-toolbox
3. firebase login
4. firebase init
5. firebase deploy
Firebase Hosting
1. Create a app on Firebase
2. Install firebase-toolbox
3. firebase login
4. firebase init
5. firebase deploy (After first time)
Without SW
Online first solution
Online first solution
Browser
Server
1. Send Requests
Online first solution
Browser
Server
1. Send Requests
2. Get data
Online first solution
Browser
Server
1. Send Requests
2. Get data
3. Response
Online first solution
Browser
Server
1. Send Requests
2. Get data
3. Response
Depend on
network
connection!
Switch to Offline first solution
Offline first solution
Browser
ServerService
worker
1. Send
Requests
Offline first solution
Browser
ServerService
worker
1. Send
Requests
Cache
Offline first solution
Browser
ServerService
worker
2. Check from
cache if any
Cache
Offline first solution
Browser
ServerService
worker
3. Return cache
results
Cache
Offline first solution
Browser
ServerService
worker
4. Send request to
server
Cache
Offline first solution
Browser
ServerService
worker
5. Get data
Cache
Offline first solution
Browser
ServerService
worker
6. Return the data
Cache
Offline first solution
Browser
ServerService
worker
7. Update cache
Cache
Offline first solution
Browser
ServerService
worker
Cache
8. Send copy response back,
Update the interface
Offline first solution
Browser
ServerService
worker
Cache
LOCAL NETWORK
Requests
Fetch from
cache
Response No longer
depend on
network
connection
Offline first solution
Browser
ServerService
worker
Cache
LOCAL NETWORK
Requests
Fetch from
cache
Response
Offline
OFFLINE APP DEMO
Caching Strategies
SW-TOOLBOX
Network first, cache fallback
Cache first, network fallback
Cache only
Network only
Service worker life cycle
Service worker life cycle
PUSH NOTIFICATION APP DEMO
https://www.youtube.com/watch?v=Zq-tRtBN3ws
Firebase Hosting DEMO
Resources
Code Lab: https://codelabs.developers.google.com/pwa-dev-summit
Udacity:
● Offline web app
● Progressive web app
SW-PRECACHE
https://github.com/GoogleChrome/sw-precache
Angular CLI
https://github.com/angular/angular-cli
Webpack Offline Plugin
https://github.com/NekR/offline-plugin
Questions?
THANKS!
Offline first solution
Browser
ServerService
worker
1. Send
Requests
Cache IndexDB
2. Check from
cache /DB if any
3. Return cache
results
4. Send request to
server
5. Get data
6. Return the data

Mais conteúdo relacionado

Mais procurados

Building a Progressive Web App
Building a  Progressive Web AppBuilding a  Progressive Web App
Building a Progressive Web AppIdo Green
 
Pwa demystified
Pwa demystifiedPwa demystified
Pwa demystifiededynamic
 
Progressive Web Applications
Progressive Web ApplicationsProgressive Web Applications
Progressive Web ApplicationsBartek Igielski
 
Progressive Web Apps / GDG DevFest - Season 2016
Progressive Web Apps / GDG DevFest - Season 2016Progressive Web Apps / GDG DevFest - Season 2016
Progressive Web Apps / GDG DevFest - Season 2016Abdelrahman Omran
 
PWA - Progressive Web App
PWA - Progressive Web AppPWA - Progressive Web App
PWA - Progressive Web AppRobert Robinson
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web appsAkshay Sharma
 
Introduction to Progressive Web Apps (PWA)
Introduction to Progressive Web Apps (PWA)Introduction to Progressive Web Apps (PWA)
Introduction to Progressive Web Apps (PWA)Sandip Nirmal
 
Introduction of Progressive Web App
Introduction of Progressive Web AppIntroduction of Progressive Web App
Introduction of Progressive Web AppSankalp Khandelwal
 
Why Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandWhy Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandImran Sayed
 
Build progressive web apps with Angular
Build progressive web apps with AngularBuild progressive web apps with Angular
Build progressive web apps with AngularSimona Cotin
 
Progressive Web APP ( PWA )
Progressive Web APP ( PWA ) Progressive Web APP ( PWA )
Progressive Web APP ( PWA ) Bijaya Oli
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application TestingSWAAM Tech
 
Power apps presentation
Power apps presentationPower apps presentation
Power apps presentationInnoTech
 
Internship presentation
Internship presentationInternship presentation
Internship presentationWasim Shemna
 

Mais procurados (20)

Building a Progressive Web App
Building a  Progressive Web AppBuilding a  Progressive Web App
Building a Progressive Web App
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Pwa demystified
Pwa demystifiedPwa demystified
Pwa demystified
 
Progressive Web Applications
Progressive Web ApplicationsProgressive Web Applications
Progressive Web Applications
 
Progressive Web Apps / GDG DevFest - Season 2016
Progressive Web Apps / GDG DevFest - Season 2016Progressive Web Apps / GDG DevFest - Season 2016
Progressive Web Apps / GDG DevFest - Season 2016
 
Progressive Web App
Progressive Web AppProgressive Web App
Progressive Web App
 
PWA - Progressive Web App
PWA - Progressive Web AppPWA - Progressive Web App
PWA - Progressive Web App
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Introduction to Progressive Web Apps (PWA)
Introduction to Progressive Web Apps (PWA)Introduction to Progressive Web Apps (PWA)
Introduction to Progressive Web Apps (PWA)
 
Introduction of Progressive Web App
Introduction of Progressive Web AppIntroduction of Progressive Web App
Introduction of Progressive Web App
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Why Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandWhy Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp Finland
 
Angular PWA
Angular PWAAngular PWA
Angular PWA
 
PWA
PWAPWA
PWA
 
Build progressive web apps with Angular
Build progressive web apps with AngularBuild progressive web apps with Angular
Build progressive web apps with Angular
 
Progressive Web APP ( PWA )
Progressive Web APP ( PWA ) Progressive Web APP ( PWA )
Progressive Web APP ( PWA )
 
Progressive Web Apps are here!
Progressive Web Apps are here!Progressive Web Apps are here!
Progressive Web Apps are here!
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Power apps presentation
Power apps presentationPower apps presentation
Power apps presentation
 
Internship presentation
Internship presentationInternship presentation
Internship presentation
 

Destaque

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
 
Anatomy of a Progressive Web App
Anatomy of a Progressive Web AppAnatomy of a Progressive Web App
Anatomy of a Progressive Web AppMike North
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web appsFastly
 
Progressive Web Apps [pt_BR]
Progressive Web Apps [pt_BR]Progressive Web Apps [pt_BR]
Progressive Web Apps [pt_BR]Evandro Santos
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWAIdo Green
 
PWA 101
PWA 101PWA 101
PWA 101m_catt
 
PWA e Hybrid App VS Native
PWA e Hybrid App VS NativePWA e Hybrid App VS Native
PWA e Hybrid App VS NativeAlberto Abruzzo
 
Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)Abhinav Rastogi
 
Getting Started with Progressive Web Apps
Getting Started with Progressive Web AppsGetting Started with Progressive Web Apps
Getting Started with Progressive Web AppsBill Stavroulakis
 
Progressive web apps
Progressive web apps Progressive web apps
Progressive web apps Biko
 
Startups Best Practices
Startups Best PracticesStartups Best Practices
Startups Best PracticesIdo Green
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheLeslie Samuel
 
You Are Born To Blossom by Dr. APJ Abdul Kalam Book Review
You Are Born To Blossom by Dr. APJ Abdul Kalam Book ReviewYou Are Born To Blossom by Dr. APJ Abdul Kalam Book Review
You Are Born To Blossom by Dr. APJ Abdul Kalam Book ReviewDeepak Upadhyay
 
ADBMS (MySql) tiny project
ADBMS (MySql) tiny projectADBMS (MySql) tiny project
ADBMS (MySql) tiny projectDeepak Upadhyay
 
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
 
Service workers
Service workersService workers
Service workersjungkees
 
Phone gap android plugins
Phone gap android pluginsPhone gap android plugins
Phone gap android pluginsSimon MacDonald
 

Destaque (18)

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 ...
 
Anatomy of a Progressive Web App
Anatomy of a Progressive Web AppAnatomy of a Progressive Web App
Anatomy of a Progressive Web App
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Progressive Web Apps [pt_BR]
Progressive Web Apps [pt_BR]Progressive Web Apps [pt_BR]
Progressive Web Apps [pt_BR]
 
From AMP to PWA
From AMP to PWAFrom AMP to PWA
From AMP to PWA
 
PWA 101
PWA 101PWA 101
PWA 101
 
PWA e Hybrid App VS Native
PWA e Hybrid App VS NativePWA e Hybrid App VS Native
PWA e Hybrid App VS Native
 
Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)Real World Progressive Web Apps (Building Flipkart Lite)
Real World Progressive Web Apps (Building Flipkart Lite)
 
Getting Started with Progressive Web Apps
Getting Started with Progressive Web AppsGetting Started with Progressive Web Apps
Getting Started with Progressive Web Apps
 
Progressive web apps
Progressive web apps Progressive web apps
Progressive web apps
 
Startups Best Practices
Startups Best PracticesStartups Best Practices
Startups Best Practices
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
You Are Born To Blossom by Dr. APJ Abdul Kalam Book Review
You Are Born To Blossom by Dr. APJ Abdul Kalam Book ReviewYou Are Born To Blossom by Dr. APJ Abdul Kalam Book Review
You Are Born To Blossom by Dr. APJ Abdul Kalam Book Review
 
ADBMS (MySql) tiny project
ADBMS (MySql) tiny projectADBMS (MySql) tiny project
ADBMS (MySql) tiny project
 
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...
 
Service workers
Service workersService workers
Service workers
 
Online notice board
Online notice boardOnline notice board
Online notice board
 
Phone gap android plugins
Phone gap android pluginsPhone gap android plugins
Phone gap android plugins
 

Semelhante a Intro to PWAs - Build Fast & Engaging Websites

Progressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningProgressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningSuraj Kumar
 
Meet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practiceMeet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practiceŁukasz Romanowicz
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developersFilip Rakowski
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web AppsUnfold UI
 
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
 
PWA - Progressive WordPress Apps
PWA - Progressive WordPress AppsPWA - Progressive WordPress Apps
PWA - Progressive WordPress AppsFellyph Cintra
 
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
 
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...JSFestUA
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsAnjaliTanpure1
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesGeekNightHyderabad
 
Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020Imran Sayed
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulRobert Nyman
 
Progressive Web Apps by Millicent Convento
Progressive Web Apps by Millicent ConventoProgressive Web Apps by Millicent Convento
Progressive Web Apps by Millicent ConventoDEVCON
 
Progressive Web Application by Citytech
Progressive Web Application by CitytechProgressive Web Application by Citytech
Progressive Web Application by CitytechRitwik Das
 
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptxHow to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptxBOSC Tech Labs
 
Progressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting StartedProgressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting StartedGaurav Behere
 
Progressive web app testing
Progressive web app testingProgressive web app testing
Progressive web app testingKalhan Liyanage
 
Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016
Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016
Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016Maxime Czetwertynski
 

Semelhante a Intro to PWAs - Build Fast & Engaging Websites (20)

Progressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningProgressive Web Apps - Up & Running
Progressive Web Apps - Up & Running
 
Meet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practiceMeet.js Summit 2019 - PWA in practice
Meet.js Summit 2019 - PWA in practice
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
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...
 
PWA - Progressive WordPress Apps
PWA - Progressive WordPress AppsPWA - Progressive WordPress Apps
PWA - Progressive WordPress Apps
 
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...
 
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
JS Fest 2018. Тимофей Лавренюк. Делаем веб приложение лучше с помощью совреме...
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web Technologies
 
Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020
 
The web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - IstanbulThe web - What it has, what it lacks and where it must go - Istanbul
The web - What it has, what it lacks and where it must go - Istanbul
 
The PRPL Pattern
The PRPL PatternThe PRPL Pattern
The PRPL Pattern
 
Progressive Web Apps by Millicent Convento
Progressive Web Apps by Millicent ConventoProgressive Web Apps by Millicent Convento
Progressive Web Apps by Millicent Convento
 
Progressive Web Application by Citytech
Progressive Web Application by CitytechProgressive Web Application by Citytech
Progressive Web Application by Citytech
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptxHow to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
 
Progressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting StartedProgressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting Started
 
Progressive web app testing
Progressive web app testingProgressive web app testing
Progressive web app testing
 
Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016
Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016
Progressive Web App - Jeff Burtoft at microsoft zaventem 03-10-2016
 

Intro to PWAs - Build Fast & Engaging Websites