Progressive Web Apps
GDG DevFest / Season 2016
1
omranic.com
Abdelrahman Omran
Rinvex Co-founder | Google Developer Expert | Software Architect
2
Work hard until you no longer have to
introduce yourself.“
”
omranic.com
Rinvex
Industry Specific Enterprise Solutions
3
Value, Reach, Impact
rinvex.com
omranic.com
We’re about to start an exciting tour together, so get your
mind clear and ready for the journey.
Our Goals
We will understand, and build together a progressive web app, now!
4
Build / 2 steps
Follow the step-by-step codelab,
use the provided materials,
and build your first PWA
Get Ready
Awesome things coming your way, you’ll learn new
things, and get new skills, let’s have fun together!
Awesomeness Inside
Launch / 1 step
Deploy your first PWA online
using Firebase cloud hosting
and share it with others
Understand / 2 steps
What’s Progressive Web Apps,
Why it’s important now, and
How to use it effectively
omranic.com
Our Agenda
You should be excited about what’s coming!
5
PWA
Introduction
Service Worker
Introduction
Setup
Environment
Quick
Deployment
Codelab
Step-by-step
omranic.com
Your tweet, facebook, or G+ post must contain the following
hashtags #ProgressiveWebApps #DevFest16
Activity Announcement
Twitter/FB/G+ livestream what’s happening, you may win a special SWAG!
6
1
2
3
4
You must mention GDG chapter’s twitter account, Facebook
page, or Google plus page
Write something new you’ve learned, a new or exciting
feature, add emoji and post photos
Mention the speaker, re-share and re-tweet others, and keep
posting all day!
omranic.com
Follow the instructor step-by-step from start to end, and
implement all features explained
Activity Announcement #2
Follow the codelab, and deploy online during the session & win a special SWAG!
7
1
2
3
4
Be honest & follow the steps, don’t jump to conclusion, the
main goal here is to learn while having fun
Deploy your demo online using Firebase cloud hosting, and
try to access it through your mobile
Finally, show your working online demo to the instructor, it
must be fully functional with offline support ✨
PWA Introduction
What’s Progressive Web Apps and why it’s important?
omranic.com
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.
What’s Progressive Web Apps 9
PWA in a nutshell
Google's Progressive Web Apps are blurring
the lines between apps and the mobile web.“
”― Business Insider
omranic.com
PWA Characteristics
Key features of PWA
10
Progressive
enhancement
used throughout
Progressive
Easily discovered
by search engines
Discoverable
It’s the web,
linkable by
definition
Linkable
UI fits device’s
form factor and
screen size
Responsive
Looks & interacts
like a native app
App-like
omranic.com
PWA Characteristics
Key features of PWA
11
Offline-first & cache
support via service
workers
Connectivity
Independent
Engage users through
push notifications
Re-engageable
Install to device’s
home screen, run
in fullscreen
Installable
Always get newest
data from server
Fresh
Always served
over HTTPS
Secure
omranic.com
PWA Characteristics
Key features of PWA
12
Zero steps barrier,
Just Use It!
Low Friction
Uses web technologies,
HTML, JavaScript,
and CSS
Just Web
Smooth navigations
keep the experience
silky smooth
Fast
With service workers
at the heart
Instant Loading
Many PWA features
still in labs, yet to
come
Shiny Future
omranic.com
Some Facts
Industry Analysis
13
A study has shown that, on average, an app loses 20% of its users
for every step between the user’s first contact with the app and the
user starting to use the app.
Usage Friction
Roughly 80 percent of smartphone app time is spent with users’ top
three apps, notwithstanding the fact that people typically engage
with 25 apps per month, while 100+ sites navigated to.
Usage Frequency
Web apps will generally be easier to deploy and maintain (there’s
always one source of truth), compared to the massive version
fragmentation of native apps on platforms like Android.
Version Fragmentation
Service Worker Introduction
At the core of Progressive Web Apps comes Service Workers
omranic.com
A service worker is a script that your browser runs in the background, separate from a web page,
opening the door to features that don't need a web page or user interaction. Today, they already
include features like push notifications and background sync. In the future service workers will
support other things like periodic sync or geofencing. The core features discussed here is the ability
to intercept and handle network requests, including programmatically managing a cache of
responses.
What’s a Service Worker 15
SW in a nutshell
In short, a service worker is an asynchronous
background thread that takes control of all
network requests in a page, acting as a proxy.
“
”― Booking Blog
omranic.com
Service Worker Lifecycle
Events: Install, Activate, Fetch
16
omranic.com
Service Worker Lifecycle
Service Worker Install Event
17
omranic.com
Service Worker Lifecycle
Service Worker Install Event
18
omranic.com
Service Worker as a Proxy
Service Worker Request Interception
19
omranic.com
Service Worker Fetch Modes
Cache Only
20
omranic.com
Service Worker Fetch Modes
Network Only
21
omranic.com
Service Worker Fetch Modes
Cache, Falling Back To Network
22
omranic.com
Service Worker Fetch Modes
Network, Falling Back To Cache
23
omranic.com
Service Worker Fetch Modes
Stale While Revalidate
24
omranic.com
Service Worker Fetch Modes
Cache Then Network
25
omranic.com
Service Worker Fetch Modes
Cache & Network Race
26
omranic.com
Service Worker Fetch Modes
Generic Fallback
27
omranic.com
Service Worker Push Message
SW Push Notification Flow
28
omranic.com
Service Worker Notes
Important point you must know
29
Works on HTTPS only, or localhost1
2
3
4
Has controlled scopes
Should be on same origin
Not supported in Firefox, private mode
Only One SW activated at a time5
6
7
8
Shipped in Chrome, Firefox, and Opera
In Development in Microsoft Edge
Under Consideration in Safari, iOS
Should be progressive9
10
11
12
Doesn’t control origin page on first load
Run on background, in a separate thread
Doesn’t have access to page DOM
Open tabs must be closed for old service workers
to die, and new workers take effect13
14
15
16
Use self.skipWaiting() with self.clients.claim()
to skip waiting, and enforce the new SW
Unregistering a SW doesn’t clear SW cache
...
Questions?
Do you’ve any question
30
31
Abdelrahman Omran
THANK
YOU
Twitter: Omranic
Mobile: +201228160181
Email: me@omranic.com
Website: https://omranic.com
Setup Environment
Get ready for the journey, prepare your environment
omranic.com
Alongside NodeJs, npm is
required for the deployment
step as well
This codelab is focused on Progressive Web Apps.
Non-relevant concepts and code blocks are glossed over and are provided for you to simply copy and paste.
Prerequisites
What you'll need
34
Power on your laptop, and
login to your account
Laptop
Download code samples
from the provided Github
repository
Code Samples
Latest version of Google
Chrome browser is
recommended
Chrome 52+
Any text editor will be
sufficient, don’t use word
processors
Text Editor
Recommended but your
own web server of choice
will be OK
Web Server For Chrome
Basic Knowledge
Notes
Basic knowledge of HTML,
CSS, JavaScript, and Chrome
DevTools
You’ll need a Google
account to create a new
Firebase Project
Google Account
Internet Connection
Appropriate internet
connection required for
testing & deployment
NodeJs is required for the
deployment step, where
you’ll install firebase cli tools
NodeJS
npm
omranic.com
Weather Web App
Using PWA techniques
35
- Progressive - App-like - Fresh
- Responsive - Linkable - Safe
- Connectivity independent - Discoverable and installable
Features
What you'll learn
- How to design and construct an app using the "app shell" method
- How to make your app work offline
- How to store data for use offline later
Basic Knowledge
HTML, CSS, JavaScript, and Chrome DevTools
This codelab is focused on Progressive Web Apps. Non-relevant concepts and
code blocks are glossed over and are provided for you to simply copy and paste.
omranic.com
Codelab
Based on Google’s Codelab
36
goo.gl/AVsL6p
omranic.com
Setup
1. Download Source Code
37
goo.gl/kTLicS
omranic.com
Setup
2. Install web server
38
goo.gl/Jd8IAC
omranic.com
Setup
3. Run web server
39
1
2
3
4
5
omranic.com
Setup
4. Test the ready environment
40
Browse to your new PWA using Chrome Web Server via your localhost link
http://127.0.0.1:8887
Visit your app localy
You can access your app on the local network
You can browse your new PWA using Chrome Web Server over the local
network via this link
http://192.168.1.2:8887
Ready to go
This is a minimal PWA placeholder ready for development!
omranic.com
Architect your App Shell
What is the app shell?
41
omranic.com
Architect your App Shell
Design the App Shell
42
Ask yourself
- What needs to be on screen
immediately?
- What other UI components are
key to our app?
- What supporting resources are
needed for the app shell? For
example images, JavaScript,
styles, etc.
Our Weather App Components
- Header with a title, and
add/refresh buttons
- Container for forecast cards
- A forecast card template
- A dialog box for adding new cities
- A loading indicator
Quick Project Code Review
Let’s review the basic PWA we’ll work on
Codelab: 1. Start with a fast first load
goo.gl/JSwvvn
Codelab: 2. Pre-cache the App Shell
goo.gl/2CizGK
Codelab: 3. Cache the forecast data
goo.gl/uly6OD
Codelab: 4. Native integration & Deployment
goo.gl/u9u6xM
48
Abdelrahman Omran
THANK
YOU
Twitter: Omranic
Mobile: +201228160181
Email: me@omranic.com
Website: https://omranic.com
omranic.com
Credits 50
Microsoft® and PowerPoint® are trademarks
or registered trademarks of Microsoft
Corporation.
© 2016 Google Inc, used with permission.
Google and the Google logo are registered
trademarks of Google Inc.
Google Drive® is a registered trademark of
Google Inc.
Photos in this template were downloaded from
pixabay.com and freepik.com. Attribution is
located in each slide notes and the Credits
slide.
The Template provides a theme with four basic
colors:
The backgrounds were created by Free Google
Slides Templates.
Vectorial Shapes in this Template were created
by Free Google Slides Templates and
downloaded from pexels.com and
unsplash.com.
Icons in this Template are part of Google®
Material Icons and 1001freedownloads.com.
Shapes & Icons Backgrounds Images
Fonts Color Palette Trademarks
The fonts used in this template are taken from
Google fonts. ( Dosis,Open Sans )
You can download the fonts from the following
url: https://www.google.com/fonts/
#93c47dff #0097a7ff
#78909cff #eeeeeeff
#f7b600ff #00ce00e3
#de445eff #000000ff
51

More Related Content

PPTX
PWA - Progressive Web App
PDF
Progressive Web Applications
PPTX
Progressive web app
PPTX
Pwa demystified
PDF
Introduction to Progressive web app (PWA)
PPTX
Introduction to Progressive Web App
PPTX
Progressive Web-App (PWA)
PDF
Building a Progressive Web App
PWA - Progressive Web App
Progressive Web Applications
Progressive web app
Pwa demystified
Introduction to Progressive web app (PWA)
Introduction to Progressive Web App
Progressive Web-App (PWA)
Building a Progressive Web App

What's hot (20)

PPTX
Pwa.pptx
PDF
Progressive web apps
PDF
Progressive Web Apps
PPTX
Why Progressive Web App is what you need for your Business
PPTX
Progressive Web App
PDF
Progressive web apps
PPTX
Progressive Web Apps(PWA)
PPTX
Build progressive web apps with Angular
ODP
Introduction to Progressive Web Apps (PWA)
PPTX
Introduction of Progressive Web App
PPTX
Progressive Web App
PPTX
Progressive Web Apps and React
PPTX
Progressive Web Apps
PPTX
Angular PWA
PDF
Progressive Web Apps (PWAs): Why you want one & how to optimize them #Applaus...
PPTX
Progressive Web APP ( PWA )
PDF
Angular 16 – the rise of Signals
PPTX
Introduction Node.js
PDF
Angular Material Design.pdf
Pwa.pptx
Progressive web apps
Progressive Web Apps
Why Progressive Web App is what you need for your Business
Progressive Web App
Progressive web apps
Progressive Web Apps(PWA)
Build progressive web apps with Angular
Introduction to Progressive Web Apps (PWA)
Introduction of Progressive Web App
Progressive Web App
Progressive Web Apps and React
Progressive Web Apps
Angular PWA
Progressive Web Apps (PWAs): Why you want one & how to optimize them #Applaus...
Progressive Web APP ( PWA )
Angular 16 – the rise of Signals
Introduction Node.js
Angular Material Design.pdf
Ad

Viewers also liked (10)

PDF
What's New in JHipsterLand - Devoxx Poland 2017
PPTX
Swift -Helyzetjelentés az iOS programozás új nyelvéről
PDF
10 tips to become an awesome Technical Lead v2 (Devoxx PL)
PDF
Linux Kernel – Hogyan csapjunk bele?
PDF
Devoxx US 2017 "The Seven (More) Deadly Sins of Microservices"
PPTX
DATA DRIVEN DESIGN - avagy hogy fér össze a kreativitás a tényekkel
PDF
Big Data Science - hype?
ODP
DevAssistant, Docker and You
PDF
CDI 2.0 is upon us Devoxx
PDF
Devoxx : being productive with JHipster
What's New in JHipsterLand - Devoxx Poland 2017
Swift -Helyzetjelentés az iOS programozás új nyelvéről
10 tips to become an awesome Technical Lead v2 (Devoxx PL)
Linux Kernel – Hogyan csapjunk bele?
Devoxx US 2017 "The Seven (More) Deadly Sins of Microservices"
DATA DRIVEN DESIGN - avagy hogy fér össze a kreativitás a tényekkel
Big Data Science - hype?
DevAssistant, Docker and You
CDI 2.0 is upon us Devoxx
Devoxx : being productive with JHipster
Ad

Similar to Progressive Web Apps / GDG DevFest - Season 2016 (20)

PDF
pwa-170717082930.pdf
PPTX
Progressive Web Apps
PPTX
Progressive web app testing
PDF
Progressive Web Apps - NPD Meet
PPTX
PWA basics for developers
PPTX
PWAs overview
PPTX
Basic Understanding of Progressive Web Apps
PDF
Progressive Web Apps with LitHTML (BucharestJS Meetup)
PPTX
Progressive Web Applications - The Next Gen Web Technologies
PDF
Progressive Web Apps
PDF
PERFORMANCE ENHANCEMENT OF WEBPAGE USING PROGRESSIVE WEB APP FEATURES
PDF
Progressive Web Apps 1. keynote
PDF
Checklist for progressive web app development
PPTX
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
PPTX
Progressive web application
PPTX
How Progressive Web Apps Are Shaping the Future of Mobile Experiences
PPTX
PWA Talk - Smau Milano 2018
PPTX
Progressive Web App
PPTX
Progressive Web Apps - Quick Guide to Explore
PDF
pwaintroductionfordeveloper-170703105509.pdf
pwa-170717082930.pdf
Progressive Web Apps
Progressive web app testing
Progressive Web Apps - NPD Meet
PWA basics for developers
PWAs overview
Basic Understanding of Progressive Web Apps
Progressive Web Apps with LitHTML (BucharestJS Meetup)
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Apps
PERFORMANCE ENHANCEMENT OF WEBPAGE USING PROGRESSIVE WEB APP FEATURES
Progressive Web Apps 1. keynote
Checklist for progressive web app development
PWA ( Progressive Web Apps ) - Sai Kiran Kasireddy
Progressive web application
How Progressive Web Apps Are Shaping the Future of Mobile Experiences
PWA Talk - Smau Milano 2018
Progressive Web App
Progressive Web Apps - Quick Guide to Explore
pwaintroductionfordeveloper-170703105509.pdf

More from Abdelrahman Omran (10)

PDF
State of the WEB ‘18
PDF
Building Conversational Experiences for Google Assistant '18
PDF
Using Dialogflow to build actions for Google Assistant ‘18
PDF
Make the most out of a conference - MENAIO Summit '18
PDF
All for one & one for all - MENAIO Summit '18
PDF
The Web Platform - State of the Union '17
PDF
Building for google assistant
PDF
How can you get started with machine learning?
PDF
Laravel & google cloud platform do mix​!
PDF
Google Green
State of the WEB ‘18
Building Conversational Experiences for Google Assistant '18
Using Dialogflow to build actions for Google Assistant ‘18
Make the most out of a conference - MENAIO Summit '18
All for one & one for all - MENAIO Summit '18
The Web Platform - State of the Union '17
Building for google assistant
How can you get started with machine learning?
Laravel & google cloud platform do mix​!
Google Green

Recently uploaded (20)

PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PDF
Five Habits of High-Impact Board Members
PDF
Architecture types and enterprise applications.pdf
PDF
OpenACC and Open Hackathons Monthly Highlights July 2025
DOCX
search engine optimization ppt fir known well about this
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PPT
Geologic Time for studying geology for geologist
PPT
What is a Computer? Input Devices /output devices
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
The various Industrial Revolutions .pptx
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Convolutional neural network based encoder-decoder for efficient real-time ob...
NewMind AI Weekly Chronicles – August ’25 Week III
Improvisation in detection of pomegranate leaf disease using transfer learni...
Five Habits of High-Impact Board Members
Architecture types and enterprise applications.pdf
OpenACC and Open Hackathons Monthly Highlights July 2025
search engine optimization ppt fir known well about this
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Geologic Time for studying geology for geologist
What is a Computer? Input Devices /output devices
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
The various Industrial Revolutions .pptx
The influence of sentiment analysis in enhancing early warning system model f...
Credit Without Borders: AI and Financial Inclusion in Bangladesh
sustainability-14-14877-v2.pddhzftheheeeee
Taming the Chaos: How to Turn Unstructured Data into Decisions
Comparative analysis of machine learning models for fake news detection in so...
Developing a website for English-speaking practice to English as a foreign la...
A proposed approach for plagiarism detection in Myanmar Unicode text
How ambidextrous entrepreneurial leaders react to the artificial intelligence...

Progressive Web Apps / GDG DevFest - Season 2016

  • 1. Progressive Web Apps GDG DevFest / Season 2016 1
  • 2. omranic.com Abdelrahman Omran Rinvex Co-founder | Google Developer Expert | Software Architect 2 Work hard until you no longer have to introduce yourself.“ ”
  • 3. omranic.com Rinvex Industry Specific Enterprise Solutions 3 Value, Reach, Impact rinvex.com
  • 4. omranic.com We’re about to start an exciting tour together, so get your mind clear and ready for the journey. Our Goals We will understand, and build together a progressive web app, now! 4 Build / 2 steps Follow the step-by-step codelab, use the provided materials, and build your first PWA Get Ready Awesome things coming your way, you’ll learn new things, and get new skills, let’s have fun together! Awesomeness Inside Launch / 1 step Deploy your first PWA online using Firebase cloud hosting and share it with others Understand / 2 steps What’s Progressive Web Apps, Why it’s important now, and How to use it effectively
  • 5. omranic.com Our Agenda You should be excited about what’s coming! 5 PWA Introduction Service Worker Introduction Setup Environment Quick Deployment Codelab Step-by-step
  • 6. omranic.com Your tweet, facebook, or G+ post must contain the following hashtags #ProgressiveWebApps #DevFest16 Activity Announcement Twitter/FB/G+ livestream what’s happening, you may win a special SWAG! 6 1 2 3 4 You must mention GDG chapter’s twitter account, Facebook page, or Google plus page Write something new you’ve learned, a new or exciting feature, add emoji and post photos Mention the speaker, re-share and re-tweet others, and keep posting all day!
  • 7. omranic.com Follow the instructor step-by-step from start to end, and implement all features explained Activity Announcement #2 Follow the codelab, and deploy online during the session & win a special SWAG! 7 1 2 3 4 Be honest & follow the steps, don’t jump to conclusion, the main goal here is to learn while having fun Deploy your demo online using Firebase cloud hosting, and try to access it through your mobile Finally, show your working online demo to the instructor, it must be fully functional with offline support ✨
  • 8. PWA Introduction What’s Progressive Web Apps and why it’s important?
  • 9. omranic.com 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. What’s Progressive Web Apps 9 PWA in a nutshell Google's Progressive Web Apps are blurring the lines between apps and the mobile web.“ ”― Business Insider
  • 10. omranic.com PWA Characteristics Key features of PWA 10 Progressive enhancement used throughout Progressive Easily discovered by search engines Discoverable It’s the web, linkable by definition Linkable UI fits device’s form factor and screen size Responsive Looks & interacts like a native app App-like
  • 11. omranic.com PWA Characteristics Key features of PWA 11 Offline-first & cache support via service workers Connectivity Independent Engage users through push notifications Re-engageable Install to device’s home screen, run in fullscreen Installable Always get newest data from server Fresh Always served over HTTPS Secure
  • 12. omranic.com PWA Characteristics Key features of PWA 12 Zero steps barrier, Just Use It! Low Friction Uses web technologies, HTML, JavaScript, and CSS Just Web Smooth navigations keep the experience silky smooth Fast With service workers at the heart Instant Loading Many PWA features still in labs, yet to come Shiny Future
  • 13. omranic.com Some Facts Industry Analysis 13 A study has shown that, on average, an app loses 20% of its users for every step between the user’s first contact with the app and the user starting to use the app. Usage Friction Roughly 80 percent of smartphone app time is spent with users’ top three apps, notwithstanding the fact that people typically engage with 25 apps per month, while 100+ sites navigated to. Usage Frequency Web apps will generally be easier to deploy and maintain (there’s always one source of truth), compared to the massive version fragmentation of native apps on platforms like Android. Version Fragmentation
  • 14. Service Worker Introduction At the core of Progressive Web Apps comes Service Workers
  • 15. omranic.com A service worker is a script that your browser runs in the background, separate from a web page, opening the door to features that don't need a web page or user interaction. Today, they already include features like push notifications and background sync. In the future service workers will support other things like periodic sync or geofencing. The core features discussed here is the ability to intercept and handle network requests, including programmatically managing a cache of responses. What’s a Service Worker 15 SW in a nutshell In short, a service worker is an asynchronous background thread that takes control of all network requests in a page, acting as a proxy. “ ”― Booking Blog
  • 16. omranic.com Service Worker Lifecycle Events: Install, Activate, Fetch 16
  • 19. omranic.com Service Worker as a Proxy Service Worker Request Interception 19
  • 20. omranic.com Service Worker Fetch Modes Cache Only 20
  • 21. omranic.com Service Worker Fetch Modes Network Only 21
  • 22. omranic.com Service Worker Fetch Modes Cache, Falling Back To Network 22
  • 23. omranic.com Service Worker Fetch Modes Network, Falling Back To Cache 23
  • 24. omranic.com Service Worker Fetch Modes Stale While Revalidate 24
  • 25. omranic.com Service Worker Fetch Modes Cache Then Network 25
  • 26. omranic.com Service Worker Fetch Modes Cache & Network Race 26
  • 27. omranic.com Service Worker Fetch Modes Generic Fallback 27
  • 28. omranic.com Service Worker Push Message SW Push Notification Flow 28
  • 29. omranic.com Service Worker Notes Important point you must know 29 Works on HTTPS only, or localhost1 2 3 4 Has controlled scopes Should be on same origin Not supported in Firefox, private mode Only One SW activated at a time5 6 7 8 Shipped in Chrome, Firefox, and Opera In Development in Microsoft Edge Under Consideration in Safari, iOS Should be progressive9 10 11 12 Doesn’t control origin page on first load Run on background, in a separate thread Doesn’t have access to page DOM Open tabs must be closed for old service workers to die, and new workers take effect13 14 15 16 Use self.skipWaiting() with self.clients.claim() to skip waiting, and enforce the new SW Unregistering a SW doesn’t clear SW cache ...
  • 32. Twitter: Omranic Mobile: +201228160181 Email: [email protected] Website: https://omranic.com
  • 33. Setup Environment Get ready for the journey, prepare your environment
  • 34. omranic.com Alongside NodeJs, npm is required for the deployment step as well This codelab is focused on Progressive Web Apps. Non-relevant concepts and code blocks are glossed over and are provided for you to simply copy and paste. Prerequisites What you'll need 34 Power on your laptop, and login to your account Laptop Download code samples from the provided Github repository Code Samples Latest version of Google Chrome browser is recommended Chrome 52+ Any text editor will be sufficient, don’t use word processors Text Editor Recommended but your own web server of choice will be OK Web Server For Chrome Basic Knowledge Notes Basic knowledge of HTML, CSS, JavaScript, and Chrome DevTools You’ll need a Google account to create a new Firebase Project Google Account Internet Connection Appropriate internet connection required for testing & deployment NodeJs is required for the deployment step, where you’ll install firebase cli tools NodeJS npm
  • 35. omranic.com Weather Web App Using PWA techniques 35 - Progressive - App-like - Fresh - Responsive - Linkable - Safe - Connectivity independent - Discoverable and installable Features What you'll learn - How to design and construct an app using the "app shell" method - How to make your app work offline - How to store data for use offline later Basic Knowledge HTML, CSS, JavaScript, and Chrome DevTools This codelab is focused on Progressive Web Apps. Non-relevant concepts and code blocks are glossed over and are provided for you to simply copy and paste.
  • 36. omranic.com Codelab Based on Google’s Codelab 36 goo.gl/AVsL6p
  • 37. omranic.com Setup 1. Download Source Code 37 goo.gl/kTLicS
  • 38. omranic.com Setup 2. Install web server 38 goo.gl/Jd8IAC
  • 39. omranic.com Setup 3. Run web server 39 1 2 3 4 5
  • 40. omranic.com Setup 4. Test the ready environment 40 Browse to your new PWA using Chrome Web Server via your localhost link http://127.0.0.1:8887 Visit your app localy You can access your app on the local network You can browse your new PWA using Chrome Web Server over the local network via this link http://192.168.1.2:8887 Ready to go This is a minimal PWA placeholder ready for development!
  • 41. omranic.com Architect your App Shell What is the app shell? 41
  • 42. omranic.com Architect your App Shell Design the App Shell 42 Ask yourself - What needs to be on screen immediately? - What other UI components are key to our app? - What supporting resources are needed for the app shell? For example images, JavaScript, styles, etc. Our Weather App Components - Header with a title, and add/refresh buttons - Container for forecast cards - A forecast card template - A dialog box for adding new cities - A loading indicator
  • 43. Quick Project Code Review Let’s review the basic PWA we’ll work on
  • 44. Codelab: 1. Start with a fast first load goo.gl/JSwvvn
  • 45. Codelab: 2. Pre-cache the App Shell goo.gl/2CizGK
  • 46. Codelab: 3. Cache the forecast data goo.gl/uly6OD
  • 47. Codelab: 4. Native integration & Deployment goo.gl/u9u6xM
  • 49. Twitter: Omranic Mobile: +201228160181 Email: [email protected] Website: https://omranic.com
  • 50. omranic.com Credits 50 Microsoft® and PowerPoint® are trademarks or registered trademarks of Microsoft Corporation. © 2016 Google Inc, used with permission. Google and the Google logo are registered trademarks of Google Inc. Google Drive® is a registered trademark of Google Inc. Photos in this template were downloaded from pixabay.com and freepik.com. Attribution is located in each slide notes and the Credits slide. The Template provides a theme with four basic colors: The backgrounds were created by Free Google Slides Templates. Vectorial Shapes in this Template were created by Free Google Slides Templates and downloaded from pexels.com and unsplash.com. Icons in this Template are part of Google® Material Icons and 1001freedownloads.com. Shapes & Icons Backgrounds Images Fonts Color Palette Trademarks The fonts used in this template are taken from Google fonts. ( Dosis,Open Sans ) You can download the fonts from the following url: https://www.google.com/fonts/ #93c47dff #0097a7ff #78909cff #eeeeeeff #f7b600ff #00ce00e3 #de445eff #000000ff
  • 51. 51