SlideShare a Scribd company logo
1 of 92
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
Simona Cotin
Dev Advocate @
Microsoft
@simona_cotin
@simona_cotin
Intro to PWA
Dive into main concepts
Angular <3 Pwa
PWA vs Native
Gotchas
Tools
@simona_cotin
What?
@simona_cotin
–Wikipedia
“Progressive web apps
(PWAs) are web
applications that are
regular web pages or
websites, but can appear
to the user like traditional
applications or native
mobile applications.”
@simona_cotin
–Alex Russell
“..they’re just websites
that took all the right
vitamins”
@simona_cotin
@simona_cotin
@simona_cotin
Connectivity
Independent
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
Discoverable
@simona_cotin
Re-engageable
@simona_cotin
@simona_cotin
@simona_cotin
How?
@simona_cotin
Baseline “Appyness”
@simona_cotin
Baseline “Appyness”
•Service workers
•Web manifest
•Delivered over HTTPS
@simona_cotin
–Netlify
“Service workers are proxies
that sit between the web page
and the network, providing
cached versions of the site
when no network connectivity
is available.”
Service Workers 🏋🏋♀️
@simona_cotin
–Dean Alan Hume, https://www.amazon.com/Progressive-Apps-Dean-Alan-
Hume/dp/1617294586
“Think of your web requests as
planes taking off. Service
Worker is the air traffic
controller that routes the
requests. It can load from the
network or even off the cache”
Service Workers 🏋🏋♀️
@simona_cotin
https://jakearchibald.github.io/isserviceworkerready/
@simona_cotin
Web Page
Service worker
Cache
Backend
@simona_cotin
Web Page
Service worker
Cache
Backend
🏋🏋🏋♀️ 🏋
@simona_cotin
Web Page
Service worker
Cache
Backend
🏋🏋🏋♀️ 🏋
@simona_cotin
Scope Lifecycle
@simona_cotin
Scope
Default ./
xyz.sw/work/sw.js xyz.sw/work
@simona_cotin
Lifecycle
Installing
Activated Error
Idle
Terminated Fetch
No SW
@simona_cotin
Register 🏋🏋♀️
@simona_cotin
service-worker.js
@simona_cotin
Testing
@simona_cotin
Debugging
@simona_cotin
Uninstalling
@simona_cotin
✓Connectivity independent
✓Fresh
✓Discoverable
@simona_cotin
@simona_cotin
–Mozilla
“The web app manifest provides
information about an application (such
as name, author, icon, and description)
in a JSON text file. The purpose of the
manifest is to install web
applications to the homescreen
of a device, providing users with
quicker access and a richer experience.
”
@simona_cotin
@simona_cotin
✓Connectivity independent
✓Fresh
✓Discoverable
✓Installable
@simona_cotin
Service workers need
to be served over
HTTPS
@simona_cotin
✓Connectivity independent
✓Fresh
✓Discoverable
✓Installable
✓Safe
@simona_cotin
@simona_cotin
Create service workers
using the angular cli
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
🏋
@simona_cotin
@simona_cotin
PWA vs Native
@simona_cotin
State of the Web
@simona_cotin
State of the Web
@simona_cotin
Hardware
✓Geolocation
✓Camera and microphone
✓Bluetooth
@simona_cotin
Hardware
✓NFC
✓Ambient light sensor
✓Proximity
@simona_cotin
Software
✓Push notification
✓Save to home screen
✓Fullscreen
✓Offline
✓Clipboard
👎
👎
👎
@simona_cotin
Not supported ✋
๏Contacts, calendar
๏Alarms
๏Calls, sms
@simona_cotin
App Stores
@simona_cotin
App Stores
@simona_cotin
Push
Notifications
@simona_cotin
Gotchas 🏋🏋♀️
@simona_cotin
Gotchas 🏋🏋♀️
App install
Banner
@simona_cotin
Gotchas 🏋🏋♀️
😭
@simona_cotin
Gotchas 🏋🏋♀️
Homescreen Icon
@simona_cotin
Gotchas 🏋🏋♀️
😭😭😭
@simona_cotin
Gotchas 🏋🏋♀️
@simona_cotin
Gotchas 🏋🏋♀️
@simona_cotin
Gotchas 🏋🏋♀️
Storage
@simona_cotin
Gotchas 🏋🏋♀️
Safari will delete cache
after a couple of
weeks
@simona_cotin
Gotchas 🏋🏋♀️
Packaging
@simona_cotin
Gotchas 🏋🏋♀️
@simona_cotin
Gotchas 🏋🏋♀️
State
Safari doesn’t keep state when
app goes in background
@simona_cotin
Tools
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
@simona_cotin
–https://developers.google.com/web/progressive-web-apps/
“A new way to deliver amazing
user experiences on the web”
@simona_cotin
Thank you
@simona_cotin
Github
Azure
App
Service
https://github.com/simonaco/ad
vanced-pwa
https://aka.ms/azure-paas

More Related Content

Similar to PWAs, are we there yet?!

Build a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and AngularBuild a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and AngularSimona Cotin
 
An introduction to social media for nonprofits
An introduction to social media for nonprofitsAn introduction to social media for nonprofits
An introduction to social media for nonprofitsTamsen Webster
 
Web 2.0: It's Whole New Internet (from 2005)
Web 2.0: It's Whole New Internet (from 2005)Web 2.0: It's Whole New Internet (from 2005)
Web 2.0: It's Whole New Internet (from 2005)Jim Cuene
 
Doppelganger - ng-conf
Doppelganger - ng-confDoppelganger - ng-conf
Doppelganger - ng-confSimona Cotin
 
Applied Analytics: Insights and Actions from 13 Google Analytics Reports
Applied Analytics: Insights and Actions from 13 Google Analytics ReportsApplied Analytics: Insights and Actions from 13 Google Analytics Reports
Applied Analytics: Insights and Actions from 13 Google Analytics ReportsOrbit Media Studios
 
Seeing through the Fog: Navigating the Security Landscape of a Cloud-First World
Seeing through the Fog: Navigating the Security Landscape of a Cloud-First WorldSeeing through the Fog: Navigating the Security Landscape of a Cloud-First World
Seeing through the Fog: Navigating the Security Landscape of a Cloud-First WorldBen Johnson
 
The Visual Advantage of Content Marketing
The Visual Advantage of Content MarketingThe Visual Advantage of Content Marketing
The Visual Advantage of Content MarketingMatt Siltala
 
BrightonSEO Conference: Yext Discussion on Voice Search and Schema
BrightonSEO Conference: Yext Discussion on Voice Search and SchemaBrightonSEO Conference: Yext Discussion on Voice Search and Schema
BrightonSEO Conference: Yext Discussion on Voice Search and SchemaChristian Ward
 
From LazyCoffee to Appstore - The Key stages of app development
From LazyCoffee to Appstore - The Key stages of app developmentFrom LazyCoffee to Appstore - The Key stages of app development
From LazyCoffee to Appstore - The Key stages of app developmentScott Roberts
 
Enterprise Social Graphing (SPS Redmond, September 2013)
Enterprise Social Graphing (SPS Redmond, September 2013)Enterprise Social Graphing (SPS Redmond, September 2013)
Enterprise Social Graphing (SPS Redmond, September 2013)Naomi Moneypenny
 
8 Blind Spots Often Overlooked When Testing on Mobile
8 Blind Spots Often Overlooked When Testing on Mobile8 Blind Spots Often Overlooked When Testing on Mobile
8 Blind Spots Often Overlooked When Testing on MobileNeotys
 
Introduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk ManagementIntroduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk Managementsemrush_webinars
 
Introduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk ManagementIntroduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk ManagementChristoph C. Cemper
 
Spam Traps: Avoid the Blacklist and Protect Your Digital Reputation
Spam Traps: Avoid the Blacklist and Protect Your Digital ReputationSpam Traps: Avoid the Blacklist and Protect Your Digital Reputation
Spam Traps: Avoid the Blacklist and Protect Your Digital ReputationAct-On Software
 
Build Nodejs APIs using Serverless
Build Nodejs APIs  using Serverless Build Nodejs APIs  using Serverless
Build Nodejs APIs using Serverless Simona Cotin
 
Cutting Through the Clutter
Cutting Through the ClutterCutting Through the Clutter
Cutting Through the ClutterCubicstone
 
Current and Future Directions of Internet of Things
Current and Future Directions of Internet of ThingsCurrent and Future Directions of Internet of Things
Current and Future Directions of Internet of ThingsDr. Mazlan Abbas
 
Stone Ward 30 in 30 November 2013
Stone Ward 30 in 30 November 2013Stone Ward 30 in 30 November 2013
Stone Ward 30 in 30 November 2013Emily Reeves Dean
 

Similar to PWAs, are we there yet?! (20)

Build a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and AngularBuild a look alike engine with machine learning and Angular
Build a look alike engine with machine learning and Angular
 
An introduction to social media for nonprofits
An introduction to social media for nonprofitsAn introduction to social media for nonprofits
An introduction to social media for nonprofits
 
Web 2.0: It's Whole New Internet (from 2005)
Web 2.0: It's Whole New Internet (from 2005)Web 2.0: It's Whole New Internet (from 2005)
Web 2.0: It's Whole New Internet (from 2005)
 
Doppelganger - ng-conf
Doppelganger - ng-confDoppelganger - ng-conf
Doppelganger - ng-conf
 
Applied Analytics: Insights and Actions from 13 Google Analytics Reports
Applied Analytics: Insights and Actions from 13 Google Analytics ReportsApplied Analytics: Insights and Actions from 13 Google Analytics Reports
Applied Analytics: Insights and Actions from 13 Google Analytics Reports
 
Seeing through the Fog: Navigating the Security Landscape of a Cloud-First World
Seeing through the Fog: Navigating the Security Landscape of a Cloud-First WorldSeeing through the Fog: Navigating the Security Landscape of a Cloud-First World
Seeing through the Fog: Navigating the Security Landscape of a Cloud-First World
 
The Visual Advantage of Content Marketing
The Visual Advantage of Content MarketingThe Visual Advantage of Content Marketing
The Visual Advantage of Content Marketing
 
BrightonSEO Conference: Yext Discussion on Voice Search and Schema
BrightonSEO Conference: Yext Discussion on Voice Search and SchemaBrightonSEO Conference: Yext Discussion on Voice Search and Schema
BrightonSEO Conference: Yext Discussion on Voice Search and Schema
 
From LazyCoffee to Appstore - The Key stages of app development
From LazyCoffee to Appstore - The Key stages of app developmentFrom LazyCoffee to Appstore - The Key stages of app development
From LazyCoffee to Appstore - The Key stages of app development
 
Enterprise Social Graphing (SPS Redmond, September 2013)
Enterprise Social Graphing (SPS Redmond, September 2013)Enterprise Social Graphing (SPS Redmond, September 2013)
Enterprise Social Graphing (SPS Redmond, September 2013)
 
8 Blind Spots Often Overlooked When Testing on Mobile
8 Blind Spots Often Overlooked When Testing on Mobile8 Blind Spots Often Overlooked When Testing on Mobile
8 Blind Spots Often Overlooked When Testing on Mobile
 
Introduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk ManagementIntroduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk Management
 
Introduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk ManagementIntroduction to Google Penalties, Link Audit and Link Risk Management
Introduction to Google Penalties, Link Audit and Link Risk Management
 
Spam Traps: Avoid the Blacklist and Protect Your Digital Reputation
Spam Traps: Avoid the Blacklist and Protect Your Digital ReputationSpam Traps: Avoid the Blacklist and Protect Your Digital Reputation
Spam Traps: Avoid the Blacklist and Protect Your Digital Reputation
 
Build Nodejs APIs using Serverless
Build Nodejs APIs  using Serverless Build Nodejs APIs  using Serverless
Build Nodejs APIs using Serverless
 
Cutting Through the Clutter
Cutting Through the ClutterCutting Through the Clutter
Cutting Through the Clutter
 
Current and Future Directions of Internet of Things
Current and Future Directions of Internet of ThingsCurrent and Future Directions of Internet of Things
Current and Future Directions of Internet of Things
 
Stone Ward 30 in 30 November 2013
Stone Ward 30 in 30 November 2013Stone Ward 30 in 30 November 2013
Stone Ward 30 in 30 November 2013
 
50 Great Products For Startups
50 Great Products For Startups50 Great Products For Startups
50 Great Products For Startups
 
Following the True Leaders - Your Customers
Following the True Leaders - Your CustomersFollowing the True Leaders - Your Customers
Following the True Leaders - Your Customers
 

More from Simona Cotin

Tips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstractTips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstractSimona Cotin
 
Serverless at the end of the Universe
Serverless at the end of the UniverseServerless at the end of the Universe
Serverless at the end of the UniverseSimona Cotin
 
Build scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and ServerlessBuild scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and ServerlessSimona Cotin
 
Hop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript LondonHop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript LondonSimona Cotin
 
State management with ngRX
State management with ngRXState management with ngRX
State management with ngRXSimona Cotin
 
Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Simona Cotin
 
Build and Deploy Angular to the Cloud
Build and Deploy Angular to the CloudBuild and Deploy Angular to the Cloud
Build and Deploy Angular to the CloudSimona Cotin
 
Serverless adventure tooling
Serverless adventure toolingServerless adventure tooling
Serverless adventure toolingSimona Cotin
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudSimona Cotin
 
Deploy Angular to the Cloud
Deploy Angular to the CloudDeploy Angular to the Cloud
Deploy Angular to the CloudSimona Cotin
 
From Angular to React and back again
From Angular to React and back againFrom Angular to React and back again
From Angular to React and back againSimona Cotin
 

More from Simona Cotin (14)

Tips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstractTips and tricks on how to stand out with your bio and talk abstract
Tips and tricks on how to stand out with your bio and talk abstract
 
Serverless at the end of the Universe
Serverless at the end of the UniverseServerless at the end of the Universe
Serverless at the end of the Universe
 
Tech Roadmap
Tech RoadmapTech Roadmap
Tech Roadmap
 
Build scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and ServerlessBuild scalable APIs using GraphQL and Serverless
Build scalable APIs using GraphQL and Serverless
 
Intro GraphQL
Intro GraphQLIntro GraphQL
Intro GraphQL
 
Hop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript LondonHop on the serverless adventure - International Javascript London
Hop on the serverless adventure - International Javascript London
 
State management with ngRX
State management with ngRXState management with ngRX
State management with ngRX
 
Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)Deploy Angular to the Cloud (ngBucharest)
Deploy Angular to the Cloud (ngBucharest)
 
Build and Deploy Angular to the Cloud
Build and Deploy Angular to the CloudBuild and Deploy Angular to the Cloud
Build and Deploy Angular to the Cloud
 
Serverless adventure tooling
Serverless adventure toolingServerless adventure tooling
Serverless adventure tooling
 
Code and Deploy Angular to the Cloud
Code and Deploy Angular to the CloudCode and Deploy Angular to the Cloud
Code and Deploy Angular to the Cloud
 
Deploy Angular to the Cloud
Deploy Angular to the CloudDeploy Angular to the Cloud
Deploy Angular to the Cloud
 
From Angular to React and back again
From Angular to React and back againFrom Angular to React and back again
From Angular to React and back again
 
Music Finder
Music FinderMusic Finder
Music Finder
 

Recently uploaded

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 

Recently uploaded (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 

PWAs, are we there yet?!

Editor's Notes

  1. https://infrequently.org/2015/06/progressive-apps-escaping-tabs-without-losing-our-soul/
  2. to fit any form factor, desktop, mobile, tablet, or forms yet to emerge.
  3. Your app should still work offline, or on low quality networks.
  4. Feel like an app to the user with app-style interactions and navigation.
  5. Always up-to-date thanks to the service worker update process.
  6. Served via HTTPS to prevent snooping and ensure content hasn’t been tampered with.
  7. Are identifiable as “applications” thanks to W3C Manifests and Service Worker registration scope allowing search engines to find them
  8. Make re-engagement easy through features like push notifications.
  9. Allow users to “keep” apps they find most useful on their home screen without the hassle of an app store.
  10. Easily shared via a URL and do not require complex installation.
  11. So how do make this happen, in code?
  12. So let’s dive into each of these and understand what they are. https://www.netlify.com/blog/2017/10/31/service-workers-explained/
  13. So let’s dive into each of these and understand what they are. https://www.netlify.com/blog/2017/10/31/service-workers-explained/
  14. If you’re wondering what’s the current support for service workers, its fully supported in Firefox, Chrome, Chrome for android and Samsung internet and it’s in development for edge https://jakearchibald.github.io/isserviceworkerready/
  15. And if we were to look at a diagram of how this works, we have the web page and the service worker on the same side of the wire, and then over the network we can go retrieve data from the server or we can get that from a cache that sits on the same side as service workers
  16. So in a request-response model, we first make a request from the web page, the request is intercepted by the service worker, which then inspects it, works hard to understand where is should go, and decided to retrieve data from the network
  17. Or it can decide to first retrieve the data from the cache and return that to the user and only after that go over the network and update if necessary.
  18. And a service worker has a scope and a lifecycle that we can tap into
  19. A service worker has a lifecycle that is completely separate from your web page. A service workers life starts after it registers, it gets into the installing stage and from there it can either error or get activated. And then it can move into idle if nothing happens and either terminated of fetch.
  20. For a service worker to exist we need to first register it. And we do that by calling the register method on the service worker object available in the browser. But before that we need to check if we have support for service workers.
  21. If you’re wondering what’s the current support for service workers, its fully supported in Firefox, Chrome, Chrome for android and Samsung internet and it’s in development for edge https://jakearchibald.github.io/isserviceworkerready/
  22. If you’re wondering what’s the current support for service workers, its fully supported in Firefox, Chrome, Chrome for android and Samsung internet and it’s in development for edge https://jakearchibald.github.io/isserviceworkerready/
  23. https://developer.mozilla.org/en-US/docs/Web/Manifest https://developers.google.com/web/fundamentals/web-app-manifest/
  24. • Connectivity independent - Service workers allow work offline, or on low quality networks. • Fresh - Always up-to-date thanks to the service worker update process. • Discoverable - Are identifiable as “applications” thanks to W3C manifests[6] and service worker registration scope allowing search engines to find them. • Safe - Served via HTTPS to prevent snooping and ensure content hasn’t been tampered with. • Installable - Allow users to “keep” apps they find most useful on their home screen without the hassle of an app store.
  25. And this is what makes our basic progressive web app.
  26. So let’s see what happens when we take that to Angular
  27. There are a few options here that can help us get started
  28. And in our app module we import our service worker and then register. And what you don’t see here is that we are only enabling the service worker for production. Can you guess why? Well, as you might’ve imagined, because the service worker caches things you really don’t want in you development process to not have the latest version of your app.
  29. The Angular CLI creates a service worker configuration file, called ngsw-config.json. The configuration file controls how the service worker caches files and data resources.
  30. https://whatwebcando.today/
  31. Add chrome, safari, edge, Mozilla, Samsung internet icons Geolocation - supported in all (http://caniuse.com/#feat=geolocation ) Cam. + microphone - supported n all (https://caniuse.com/#feat=stream ) Web Bluetooth - only in chrome & Samsung internet ( https://caniuse.com/#feat=web-bluetooth ) Vibration - only in firefox, chrome, Samsung internet (https://caniuse.com/#feat=vibration ) Device orientation and accelerometer - edge, firefox, iOS safari, Samsung (https://caniuse.com/#feat=deviceorientation ) partial support Battery status only in chrome (https://caniuse.com/#feat=battery-status)
  32. Nfc supported in Firefox Ambient in edge and Firefox Proximity - supported in firefox
  33. Push - all but safari https://caniuse.com/#feat=push Homescreen Clipboard https://caniuse.com/#search=clipboard Service workers - https://caniuse.com/#search=service%20worker
  34. Push - all but safari https://caniuse.com/#feat=push Homescreen Clipboard https://caniuse.com/#search=clipboard Service workers - https://caniuse.com/#search=service%20worker
  35. Push - all but safari https://caniuse.com/#feat=push Homescreen Clipboard https://caniuse.com/#search=clipboard Service workers - https://caniuse.com/#search=service%20worker
  36. Push - all but safari https://caniuse.com/#feat=push Homescreen Clipboard https://caniuse.com/#search=clipboard Service workers - https://caniuse.com/#search=service%20worker
  37. Note that these are the exact same native notifications that we receive for example on our mobile phones home screen or desktop, but they are triggered via a web application instead of a native app.
  38. https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/offline-for-pwa
  39. http://www.pwabuilder.com/
  40. https://github.com/pinterest/service-workers A mock service worker environment generator.
  41. https://github.com/tastejs/hacker-news-pwas
  42. https://github.com/angular/angular-cli
  43. • Reliable - Load instantly and never show the downasaur, even in uncertain network conditions. • Fast - Respond quickly to user interactions with silky smooth animations and no janky scrolling. • Engaging - Feel like a natural app on the device, with an immersive user experience.