SlideShare a Scribd company logo
Service Workers & their role in
PWAs
PHP UK CONFERENCE
2018
Hi! I’m Ipsha. 
Mozilla Tech Speaker
@ipsha21
WEB vs NATIVE?
Not all decisions are as easy as this..
Service workers and their role in PWAs

Recommended for you

Apidays efficient-131204080056-phpapp02
Apidays efficient-131204080056-phpapp02Apidays efficient-131204080056-phpapp02
Apidays efficient-131204080056-phpapp02

The document discusses how to become a more efficient programmer through practices like releasing early and often, splitting code into modular services, versioning everything, using HTTP APIs, and keeping documentation slim and focused on examples. It recommends deploying applications several times per day after splitting code into modules that communicate over HTTP or message queues. It also suggests thinking of the codebase as new each day and keeping documentation as lean as possible with examples.

"Ask Me Anything" About Automating Workflows
"Ask Me Anything" About Automating Workflows"Ask Me Anything" About Automating Workflows
"Ask Me Anything" About Automating Workflows

This document provides information and resources for automating workflows using FME, including how to ask questions during a webinar on the topic, the organization's mission to help maximize data value, and links to documentation, tutorials, and other resources on automating workflows, APIs, and using specific FME transformers. An overview of the FME platform and options to build and automate workflows on desktop, server, or cloud is also included.

esridata
RabbitMQ 101 : job scheduling, micro service communication, event based data...
 RabbitMQ 101 : job scheduling, micro service communication, event based data... RabbitMQ 101 : job scheduling, micro service communication, event based data...
RabbitMQ 101 : job scheduling, micro service communication, event based data...

Lots of people need job scheduling, micro service communication, asynchronous information… There is a stable and reliable solution: AMQP protocol. Event if it seems to be complicated at the first look, it can solve lots of problem with a stable and battle tested product, great performances, simple access from C, java, python, ruby, node.js, scala, go… This talk is about rabbitMQ, how to start, how to like it, fundamental and various pattern to use it in real world case.

rabbitmqmessagingamqp
“Progressive Web Apps are experiences that combine
the best of
the web and the best of the apps.”
Service workers and their role in PWAs
Mobile web apps
 High user reach
Low user engage
Native Mobile Apps
 High user engage
Low user reach
PWA
 High user engage
 High user reach
How are PWAs different?
 Leverages the web's low friction.
 Delivers app-like user
experience.
 Uses modern web capabilities.
 From pages in browser tabs to
immersive apps.

Recommended for you

How to Connect to Any REST API (Without Writing Any Code)
How to Connect to Any REST API (Without Writing Any Code)How to Connect to Any REST API (Without Writing Any Code)
How to Connect to Any REST API (Without Writing Any Code)

REST APIs are supposed to be easy to build and use – so why are they so complicated to figure out? There’s a lot to think about when it comes to APIs. The different methods of authentication, error handling, security, and the coding required. If you’ve ever felt intimidated by APIs and how to connect to your preferred application, we can help. Because ultimately, APIs can make you operate more efficiently, provide opportunities for automation, give you access to new data, and make your enterprise more agile. With FME, you get all the benefits of APIs without ever having to code. It’s one of the most customizable solutions. Learn how to get started in this webinar.

Serverless integration zero code
Serverless integration zero codeServerless integration zero code
Serverless integration zero code

A Talk that de-mystifies direct AWS Service Integrations with the AWS API Gateway and explores the Serverless Mindset at the same time.

serverlessawsjawspankration2021
Application latency and streaming API
Application latency and streaming APIApplication latency and streaming API
Application latency and streaming API

Why latency, reactivity and interactivity matter What the GAFA are doing How to build a reactive and interactive app (Websocket, SSE and Longpolling & JSONPatch Code review based on a voting app https://github.com/streamdataio/poll-demo

reatime datasseapplication latency
Add to homescreen – web pages to apps
Create a static web app
manifest file.
• Background colour
• Display mode
• Description
etc..
Application icon set
and
rendered in a
standalone mode.
Service workers and their role in PWAs
“In a consumer mobile app,
every step you make a user perform
before they get value out of your app
will cost you 20% of users.”
- Gabor Cselle— Google
Leverages low friction of the web?

Recommended for you

Design mobile efficient Apis
Design mobile efficient ApisDesign mobile efficient Apis
Design mobile efficient Apis

The document discusses best practices for designing efficient and high-performing APIs for mobile applications. Mobile devices have low bandwidth and power compared to desktops, so APIs need to be simple, fast, and minimize data usage. They should use caching, load only needed data, and consider themselves services rather than methods. APIs should also be easy to maintain, flexible, and secure.

mobileandroidmobile application development
Mobile APIs in Practice
Mobile APIs in PracticeMobile APIs in Practice
Mobile APIs in Practice

Klout redesigned their APIs in 2012 to better support mobile applications. They created a Master API that feeds both their Mobile API and Partner API. The Mobile API provides optimized payloads for mobile with all needed data in one request to reduce requests. They realized they should have created a separate Mobile Partner API to more easily support third-party mobile app development. The document outlines best practices for mobile APIs, including minimizing data payloads and requests, handling errors, and designing for failure and changes.

apimobile application developmentoagi
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In..."Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...

Jason Wihardja is a software architect at Bizzy Indonesia. He had been fascinated by computers from an early age. He first learned programming using Pascal and C++, and went on to get his Bachelor degree in Computer Science. Since then, he had not found any single reason to quit programming. *** This slide was shared at Tech in Asia Product Development Conference 2017 (PDC'17) on 9-10 August 2017. Get more insightful updates from TIA by subscribing techin.asia/updateselalu

cloudinfrastructuretechnology
Service workers and their role in PWAs
Why PWAs,
you wonder?
Use and install
instead of
Install and use.
Progressive Web Apps
Progressive App-like Add to Home Screen
Linkable Discoverable
Progressive Web Apps
Re-engagable Responsive
Connectivity
independent
Safe

Recommended for you

Web application with mule
Web application with muleWeb application with mule
Web application with mule

Mule can run web applications using its embedded Jetty container. This allows a web application deployed in Mule to interact with Mule flows. For example, a web page can collect data from a user and pass it to a Mule flow backend service for processing, like inserting into a database. The Mule service can then return a response back to the web page. This demonstrates how a web application hosted in Mule can seamlessly interact with Mule flows and services.

mulejetty
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other PlatformsAlfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms

An approach for linking Alfresco to external (non-Alfresco) applications, where Alfresco is not the core platform, but other applications are interested in Alfresco application events.

alfrescodevcon2019arkcase
Postman Visualizer - More Than Meets the Eye
Postman Visualizer - More Than Meets the EyePostman Visualizer - More Than Meets the Eye
Postman Visualizer - More Than Meets the Eye

Orest Danylewycz is an information security engineer at Westfield who hosts the Dev Odyssey podcast. He introduces Postman Visualizer, a tool that visualizes API responses, and provides examples of how he has used it to visualize stock market data using MarketStack and Chart.js, for testing with JSONPath and XML filtering, and to build web apps by scraping websites with cheerio.js and Bootstrap. He also promotes additional resources for learning about Postman Visualizer through the Postman Learning Center, blog posts, and his YouTube channel.

Service Workers
The backbone of PWA
Service Workers
“Service worker is a persistent, fully asynchronous, separately threaded
event based worker with the ability to intercept network requests and
cache responses.”
How does a service worker.. work?
“Think of your web requests as planes taking off. A Service Worker
is the air traffic controller that routes the requests. It can load
from the network or even off the cache.”
- Jeff Posnick, Google
Let’s recap..
• JavaScript file
• Proxy servers in between the web app & the browser
• Runs in the background, on a different thread
• No direct DOM access - isn’t able to modify elements in the web page
• Fully asynchronous
• Works strictly with HTTPs
• Cannot be used in private browsing mode.

Recommended for you

"Asynchronous" Integration Tests for Microservices - RootConf 2017
"Asynchronous" Integration Tests for Microservices - RootConf 2017"Asynchronous" Integration Tests for Microservices - RootConf 2017
"Asynchronous" Integration Tests for Microservices - RootConf 2017

The document discusses using consumer-driven contract (CDC) testing with Pact to test microservices integration. It explains that with CDC, consumers capture expectations of providers in "pact" files, which are shared and verified by providers. The demo shows generating a pact file on the consumer side by setting up expectations and making requests, then verifying it on the provider side by replaying requests and asserting responses match. CDC allows testing integrations independently and catching issues early without requiring running dependent services.

pact testmicroservicesconsumer driven contract
Automating the Enterprise with Event-Driven Workflows
Automating the Enterprise with Event-Driven WorkflowsAutomating the Enterprise with Event-Driven Workflows
Automating the Enterprise with Event-Driven Workflows

Imagine the time your organization would save if all tedious tasks became automated – if workflows became streamlined, data deliveries were guaranteed, and data demands were met with flexibility. With FME, you can turn that imagining into implementing. In a visual web interface (no code!), you can create event-driven automation workflows that can easily be scaled as your company grows. In this webinar, learn how new features in FME Server can help you automate the enterprise, reduce development time, and speed up data delivery.

automationdata
Firebase Cloud Functions
Firebase Cloud FunctionsFirebase Cloud Functions
Firebase Cloud Functions

Dennis Alund (Google Developer Expert on Firebase, Founder, Kumpul Coworking Space) Firebase Cloud Functions

bekraf developer day baliweb trackdicoding
Lifecycle of a Service Worker
Register Install Activate
Registration Installation Activation
Idle
Fetch/Push
message
Terminated
New Service
worker
Updated
service
worker
Old Service
worker still
being used?
Activates to
become active
worker
Worker in
waiting
Registering a Service Worker
#code
Installing a Service Worker

Recommended for you

REST+JS - Codebits 2011
REST+JS - Codebits 2011REST+JS - Codebits 2011
REST+JS - Codebits 2011

A talk I gave at Codebits 2011. You can find the video here: https://codebits.eu/intra/s/session/204 Abstract: There's an abundance of talks about developing for the web. Most of it targeted to developing mass-market websites, worrying about CDNs, SEO, bookmarks, progressive enhancement, etc. But what if you want to build fullblown applications that just happen to be implemented in web technologies? Web apps, especially single-page, highly interactive ones, have some special characteristics. For a long time we've been implementing web apps as if the browser was a mostly dumb terminal, and instead kept most of the logic on the server. Even current favorits like RoR or GWT keep to that old paradigm. We'll see how we can take a REST architecture, combining it with a good dose of javascript MVP to create applications that are much closer, both in structure and in functionality, to desktop apps than to normal webpages. By fully embracing web technology, instead of "hiding" behind some leaky abstractions, we'll be set free to take our apps to the next level. And we'll see how much nicer they are to develop.

O365con14 - a developer jam with yammer
O365con14 - a developer jam with yammerO365con14 - a developer jam with yammer
O365con14 - a developer jam with yammer

This document summarizes a presentation about integrating with the Yammer platform. It discusses registering an app, authenticating users, and accessing Yammer data through embedding feeds and the REST API. The presentation covered registering an app, authenticating users via client-side or server-side flows, embedding feeds to display messages and enable actions like commenting, and making REST calls to access Yammer resources like users, messages, and groups. It also provided an overview of using Open Graph to define custom activities that can be posted to Yammer feeds.

Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps

Progressive Web Apps (PWAs) are web applications that use modern web capabilities to deliver native app-like experiences to users. PWAs work across platforms and can be installed by users. They are built using service workers, web app manifests, and other modern web technologies. PWAs provide fast loading, engage users with new features like push notifications, and offer an app-like user experience without limiting users to a single platform.

pwasmg
#code – on install
Activate a Service Worker
#code – on activate
# Offline experiences
How & when to use the cache?

Recommended for you

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...

The document discusses the current state and future of the web. It notes that while native apps have gained popularity, especially on mobile, the web remains strong with over 1 billion active users. It outlines tools from Google like Service Workers that help the web compete with capabilities previously only available to native apps like push notifications, offline access, and background processing. The document advocates for continued progress to simplify the web development process and ensure the longevity of technologies, arguing this will help the web remain diverse and accessible across all platforms.

webjavascriptservice workers
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 document discusses the current state and future of the web. It describes how the web currently lacks capabilities that native mobile apps have like push notifications, background processing, and offline access. However, new web features being developed like Service Workers, Push Notifications, and Background Sync aim to address these gaps. The document argues that with these new features, the divide between native and web is diminishing and the web can provide an app-like experience without requiring users to download an app. The future of the web depends on further developing these capabilities and ensuring the web remains accessible, simple to use, and continues to work across all platforms.

html5javascriptweb
The web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must goThe web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must go

The document discusses the current state and future of the web. It notes that while native apps currently dominate mobile usage, the web is working to address its limitations through new features like service workers for offline access, background sync for periodic processing, and push notifications. It highlights tools from Google like Mobile-Friendly Test, Chrome DevTools, and Web Fundamentals. It argues the web needs to simplify onboarding and spread awareness of its capabilities to ensure its long-term viability against native platforms. The future of the web depends on matching and surpassing native capabilities while keeping content universally accessible across different platforms.

nativewebandroid
Offline
browsing
with Flipkart
Lite
General idea
Cache falling back to network
– improving performance
Generic fallback – offline

Recommended for you

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...

The document discusses the current state and future of the web. It notes that while native apps have gained popularity, especially on mobile, the web still accounts for a large portion of usage. It outlines tools from Google like service workers, push notifications, and app install banners that aim to close capabilities gaps between the web and native apps. The document advocates for progressive web apps that are accessible like websites but also feel like native apps to users. The future of the web, it argues, depends on continuing to match and surpass native platforms while keeping the web open, accessible, and long-lasting.

Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friends

The main API for PWA creation is Service Workers, they are the heart of this “new web”. With Service workers, we can send push notifications to the user or do background sync and show data even when the user is offline. They are not some science fiction, but a script that is quite easy to use. In this talk, we will see overview what are service workers and when and how to use them.

pwaservice workerjavascript
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

Share of mobile traffic rises dramatically in the recent years. Products in Turkey, being a mobile driven market, has to deal with this rapid mobile traffic expansion. Several strategies including deeplinking and new technology approaches like Progressive Web Apps has to be implemented in order to cope with this new challange. This presentation briefly goes over those strategies and provide a guidance for mobile product managers and developers.

app streamingmobile trafficuser experience
#code – generic fallback
Push notifications
What is push?
“The delivery of information from
application server to the user in the form
of a pop-up message or an alert when the
client has opted for receiving certain
timely updates from applications”
Why push matters?
ENGAGEMENT RETENTION PERMISSION BASED
TIMELY UPDATES
NO FORCED
COMMITMENTS
RELEVANT
INFORMATION

Recommended for you

A year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMUA year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMU

This document discusses progressive web apps (PWAs) and how to make them fast, integrated, reliable, and engaging. It focuses on four key areas: fast performance by optimizing load times and working offline; integrated user experience by making the app feel like a native app; reliable functionality even on poor network connections using service workers; and engaging design with features like push notifications. The document provides examples of how to implement service workers, push notifications, and other technologies to build PWAs that meet these criteria.

pwaprogressive web appsdevconmu
Progressive web app
Progressive web appProgressive web app
Progressive web app

Progressive Web App New Web Technology for the Mobile User Which work on Poor Data Connection and It Will Work With Simple Manifest File Or with use of Service Workers. It Feel Like Mobile App to the user.

internetnew mediaphp
PWAs overview
PWAs overview PWAs overview
PWAs overview

in slides , you will be able to get a brief overview of PWAs, service workers and how to create a PWA.

angularprogrammingfrontend
Service workers and their role in PWAs
SAFETY FIRST – HTTPS ONLY!
Push workflow components:
 Client + Service Worker
subscribes to receiving push
messages (1) & eventually handles
the notification (4).
 App Server
initiates the delivery of a notification.
 Push Service
a system for processing messages
routing them to the correct clients.
Service workers
CLIENT
Application
Server
Push
service
1.
2.
3.
4.
Wait, WHAT?!
1. Draw some circles. 2. Draw rest of the owl.

Recommended for you

A year with progressive web apps! #webinale
A year with progressive web apps! #webinaleA year with progressive web apps! #webinale
A year with progressive web apps! #webinale

About a year ago, we started using Progressive Web Apps (PWAs). The idea behind PWA was to replace native mobile apps. In this talk, I will show you what is possible to build with PWA, what kind of limitations exist, and what we learned in our journey. Along the way, you will see where progressive web apps can be a good fit for your own projects.

webinalepwaprogressive web applications
Offline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and ReactOffline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and React

This document provides an overview of progressive web applications (PWAs) and how to build them using service workers, the Cache API, and IndexedDB for offline functionality. It discusses key concepts like the service worker lifecycle, notifications, manifest files, and the Web Push API. The document also explains how to cache assets, handle network requests when offline, and store data locally using IndexedDB.

reactnodejsjavascript
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps

This slide is from the talk that i have given in DevFest at GDG Jalandhar & DSC Workshops.it Contains all the basic features,code and tools required to build a Progressive web apps.

pwaprogressive web appsprogramming
What makes push notifications?
“push”
action of the
server supplying
message
information to a
service worker
“notification”
the action of the
service worker
sending the
information to a
user.
Push API Notification API
# Subscribing
Subscribe user to push messaging:
 Get permission from user to send them push message
 Subscribe to the push service.
 Get a subscription object = endpoint URL + client public key
 Send the subscription object to the server.
 Stored at the server, used when push message needs to be sent.
# Subscription object
Subscription object = endpoint URL + client public key
# Send a push message
- from server to push service
 Server generates the push message.
 Encrypts the message with client’s public key
 Sends the data to the endpoint URL on the push service.
 Push service routes the message to the service worker associated with the
endpoint URL.

Recommended for you

Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps

The document provides an overview of progressive web apps (PWAs). It discusses the history and idea behind PWAs, defining them as websites that are built using common web technologies but adopt features that make them feel like native mobile applications. The key pillars that transform websites into PWAs are listed as being reliable, fast, engaging, and integrated. Core building blocks like service workers and web app manifests are explained. Example case studies are given that demonstrate performance improvements from adopting PWAs. Limitations are also outlined.

#pwa #progressivewebapps
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 apps (PWAs) are web applications that have responsive designs, work offline, and can be installed on home screens. PWAs have key features like being responsive across devices, working offline through service workers, being discoverable through web app manifests, always being up-to-date, and allowing push notifications and app-like interactions. PWAs provide a faster web experience for customers compared to regular websites, improving conversion rates and revenue. They allow reaching customers who may not install a native mobile app.

progressive web appmobile webpwa
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile PresenceGo for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence

Progressive web app may look like a buzz word around improved web standards and few mobile friendly web design patterns. But it brings positive impact on businesses and users. Let’s learn more about it here.

mobile presence
# Push Event
 Push service routes the message to the correct client associated with the unique
endpoint URL
 Service Worker is woken up & Push Event is trigger
 Event listener to the Push Event handles the notification display
Handle Push Event
Source: Localytics
Don’t be too push-y!

Recommended for you

Why Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your BusinessWhy Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your Business

Progressive Web Apps (PWAs) are web applications that have responsive designs, work offline, and can be installed on a user's home screen. Key features of PWAs include being responsive across devices, working offline through service workers, being discoverable through web app manifests, automatically updating, using secure HTTPS connections, and allowing users to re-engage through push notifications and installing on home screens without an app store. PWAs provide faster experiences for web users compared to regular websites and allow developers to engage users similar to native mobile apps.

web designonline businessdesign
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

Progressive web applications (PWAs) address gaps in regular web apps and native apps. PWAs use technologies like service workers, the web app manifest, and the app shell model to provide native-app-like functionality while still being web apps. Service workers allow PWAs to work offline through caching strategies. Push notifications and app install banners further enhance the user experience. Libraries like Sw-Precache and Sw-Toolbox help implement service worker caching strategies. Major companies have adopted PWAs to increase user engagement and reduce data usage compared to regular web and native apps. Cross-browser support and business logic limitations remain challenges for PWAs.

progressive web applicationstechnologygeeknight
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps

Progressive Web Apps (PWAs) provide an app-like user experience on the web by making use of modern web capabilities. PWAs use a web app manifest and service workers to work offline, receive push notifications, and load quickly. The web app manifest allows developers to define how the app should appear to users, while service workers cache assets to provide an app-shell experience regardless of network availability. Tools like sw-precache and sw-toolbox help generate service worker code and implement common caching strategies. By following best practices for manifests, service workers, and other features, web apps can achieve many of the benefits of native mobile apps without needing to be installed from an app store.

pwawebprogramming
PWA rocks! -
https://pwa.rocks/
https://www.pwastats.com/
Mozilla Service Workers Cookbook
https://serviceworke.rs/
https://jakearchibald.github.io/isserviceworkerready/

Recommended for you

progressive web app
 progressive web app progressive web app
progressive web app

This seminar report provides an introduction to progressive web apps (PWAs). It defines PWAs as websites that are reliable, fast and engaging like native mobile apps. The report discusses the key features of PWAs including being responsive, working offline, and being installable on home screens. It also covers the benefits of building PWAs such as improving user experience and increasing engagement. Specific examples of companies that created successful PWAs are provided, including Flipkart, Housing, and AliExpress. Service workers and application shells are explained as important technologies that enable the core functionality of PWAs. Finally, the advantages and disadvantages of the PWA approach are summarized.

Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...

Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)

user modelinguser profilinguser model
Thank you!
Ipsha Bhidonia
@ipsha21

More Related Content

What's hot

Firebase Android
Firebase AndroidFirebase Android
Firebase Android
Sudipta K Paik
 
Deep Link (to the Future)
Deep Link (to the Future)Deep Link (to the Future)
Deep Link (to the Future)
Akash Gupta
 
Features that make orangescrum saa s and opensource project collaboration too...
Features that make orangescrum saa s and opensource project collaboration too...Features that make orangescrum saa s and opensource project collaboration too...
Features that make orangescrum saa s and opensource project collaboration too...
Andolasoft Inc
 
Apidays efficient-131204080056-phpapp02
Apidays efficient-131204080056-phpapp02Apidays efficient-131204080056-phpapp02
Apidays efficient-131204080056-phpapp02
Aravindharamanan S
 
"Ask Me Anything" About Automating Workflows
"Ask Me Anything" About Automating Workflows"Ask Me Anything" About Automating Workflows
"Ask Me Anything" About Automating Workflows
Safe Software
 
RabbitMQ 101 : job scheduling, micro service communication, event based data...
 RabbitMQ 101 : job scheduling, micro service communication, event based data... RabbitMQ 101 : job scheduling, micro service communication, event based data...
RabbitMQ 101 : job scheduling, micro service communication, event based data...
Quentin Adam
 
How to Connect to Any REST API (Without Writing Any Code)
How to Connect to Any REST API (Without Writing Any Code)How to Connect to Any REST API (Without Writing Any Code)
How to Connect to Any REST API (Without Writing Any Code)
Safe Software
 
Serverless integration zero code
Serverless integration zero codeServerless integration zero code
Serverless integration zero code
Michael Walmsley
 
Application latency and streaming API
Application latency and streaming APIApplication latency and streaming API
Application latency and streaming API
streamdata.io
 
Design mobile efficient Apis
Design mobile efficient ApisDesign mobile efficient Apis
Design mobile efficient Apis
Mobile Rtpl
 
Mobile APIs in Practice
Mobile APIs in PracticeMobile APIs in Practice
Mobile APIs in Practice
Tyler Singletary
 
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In..."Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
Tech in Asia ID
 
Web application with mule
Web application with muleWeb application with mule
Web application with mule
Anirban Sen Chowdhary
 
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other PlatformsAlfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
davidocmillergmailcom
 
Postman Visualizer - More Than Meets the Eye
Postman Visualizer - More Than Meets the EyePostman Visualizer - More Than Meets the Eye
Postman Visualizer - More Than Meets the Eye
Postman
 
"Asynchronous" Integration Tests for Microservices - RootConf 2017
"Asynchronous" Integration Tests for Microservices - RootConf 2017"Asynchronous" Integration Tests for Microservices - RootConf 2017
"Asynchronous" Integration Tests for Microservices - RootConf 2017
Ramya Authappan
 
Automating the Enterprise with Event-Driven Workflows
Automating the Enterprise with Event-Driven WorkflowsAutomating the Enterprise with Event-Driven Workflows
Automating the Enterprise with Event-Driven Workflows
Safe Software
 
Firebase Cloud Functions
Firebase Cloud FunctionsFirebase Cloud Functions
Firebase Cloud Functions
Yoza Aprilio
 
REST+JS - Codebits 2011
REST+JS - Codebits 2011REST+JS - Codebits 2011
REST+JS - Codebits 2011
João Nelas
 
O365con14 - a developer jam with yammer
O365con14 - a developer jam with yammerO365con14 - a developer jam with yammer
O365con14 - a developer jam with yammer
NCCOMMS
 

What's hot (20)

Firebase Android
Firebase AndroidFirebase Android
Firebase Android
 
Deep Link (to the Future)
Deep Link (to the Future)Deep Link (to the Future)
Deep Link (to the Future)
 
Features that make orangescrum saa s and opensource project collaboration too...
Features that make orangescrum saa s and opensource project collaboration too...Features that make orangescrum saa s and opensource project collaboration too...
Features that make orangescrum saa s and opensource project collaboration too...
 
Apidays efficient-131204080056-phpapp02
Apidays efficient-131204080056-phpapp02Apidays efficient-131204080056-phpapp02
Apidays efficient-131204080056-phpapp02
 
"Ask Me Anything" About Automating Workflows
"Ask Me Anything" About Automating Workflows"Ask Me Anything" About Automating Workflows
"Ask Me Anything" About Automating Workflows
 
RabbitMQ 101 : job scheduling, micro service communication, event based data...
 RabbitMQ 101 : job scheduling, micro service communication, event based data... RabbitMQ 101 : job scheduling, micro service communication, event based data...
RabbitMQ 101 : job scheduling, micro service communication, event based data...
 
How to Connect to Any REST API (Without Writing Any Code)
How to Connect to Any REST API (Without Writing Any Code)How to Connect to Any REST API (Without Writing Any Code)
How to Connect to Any REST API (Without Writing Any Code)
 
Serverless integration zero code
Serverless integration zero codeServerless integration zero code
Serverless integration zero code
 
Application latency and streaming API
Application latency and streaming APIApplication latency and streaming API
Application latency and streaming API
 
Design mobile efficient Apis
Design mobile efficient ApisDesign mobile efficient Apis
Design mobile efficient Apis
 
Mobile APIs in Practice
Mobile APIs in PracticeMobile APIs in Practice
Mobile APIs in Practice
 
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In..."Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
"Serverless: The Future of Software Architecture" by Jason Wihardja (Bizzy In...
 
Web application with mule
Web application with muleWeb application with mule
Web application with mule
 
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other PlatformsAlfresco DevCon 2019: BiDirectional Sync to Other Platforms
Alfresco DevCon 2019: BiDirectional Sync to Other Platforms
 
Postman Visualizer - More Than Meets the Eye
Postman Visualizer - More Than Meets the EyePostman Visualizer - More Than Meets the Eye
Postman Visualizer - More Than Meets the Eye
 
"Asynchronous" Integration Tests for Microservices - RootConf 2017
"Asynchronous" Integration Tests for Microservices - RootConf 2017"Asynchronous" Integration Tests for Microservices - RootConf 2017
"Asynchronous" Integration Tests for Microservices - RootConf 2017
 
Automating the Enterprise with Event-Driven Workflows
Automating the Enterprise with Event-Driven WorkflowsAutomating the Enterprise with Event-Driven Workflows
Automating the Enterprise with Event-Driven Workflows
 
Firebase Cloud Functions
Firebase Cloud FunctionsFirebase Cloud Functions
Firebase Cloud Functions
 
REST+JS - Codebits 2011
REST+JS - Codebits 2011REST+JS - Codebits 2011
REST+JS - Codebits 2011
 
O365con14 - a developer jam with yammer
O365con14 - a developer jam with yammerO365con14 - a developer jam with yammer
O365con14 - a developer jam with yammer
 

Similar to Service workers and their role in PWAs

Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Software Infrastructure
 
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
 
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
Robert Nyman
 
The web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must goThe web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must go
Robert Nyman
 
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
 
Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friends
Antonio Peric-Mazar
 
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
 
A year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMUA year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMU
Antonio Peric-Mazar
 
Progressive web app
Progressive web appProgressive web app
Progressive web app
Deepak Upadhyay
 
PWAs overview
PWAs overview PWAs overview
PWAs overview
TejinderMakkar
 
A year with progressive web apps! #webinale
A year with progressive web apps! #webinaleA year with progressive web apps! #webinale
A year with progressive web apps! #webinale
Antonio Peric-Mazar
 
Offline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and ReactOffline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and React
Ilia Idakiev
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
Suraj Kumar
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
AnjaliTanpure1
 
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
 
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile PresenceGo for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Magic Software
 
Why Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your BusinessWhy Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your Business
Lets Grow Business
 
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
GeekNightHyderabad
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
Saikiran Sheshagiri
 
progressive web app
 progressive web app progressive web app
progressive web app
RAGINI .
 

Similar to Service workers and their role in PWAs (20)

Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web 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...
 
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 web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must goThe web - What it has, what it lacks and where it must go
The web - What it has, what it lacks and where it must go
 
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...
 
Service workers are your best friends
Service workers are your best friendsService workers are your best friends
Service workers are your best friends
 
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
 
A year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMUA year with progressive web apps! #DevConMU
A year with progressive web apps! #DevConMU
 
Progressive web app
Progressive web appProgressive web app
Progressive web app
 
PWAs overview
PWAs overview PWAs overview
PWAs overview
 
A year with progressive web apps! #webinale
A year with progressive web apps! #webinaleA year with progressive web apps! #webinale
A year with progressive web apps! #webinale
 
Offline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and ReactOffline progressive web apps with NodeJS and React
Offline progressive web apps with NodeJS and React
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Basic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web AppsBasic Understanding of Progressive Web Apps
Basic Understanding of Progressive Web Apps
 
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)
 
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile PresenceGo for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
Go for Progressive Web Apps. Get a Better, Low Cost, Mobile Presence
 
Why Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your BusinessWhy Progressive Web App is what you need for your Business
Why Progressive Web App is what you need for your Business
 
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
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
progressive web app
 progressive web app progressive web app
progressive web app
 

Recently uploaded

Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 

Recently uploaded (20)

Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 

Service workers and their role in PWAs

Editor's Notes

  1. Pwa, how they are diff from, what tech lies at the core of PWA & hw it all works out so seamless Great time to be building smthn fr the web
  2. Gem part of Moz India community I stand here to talk abt smthn that’s close nt only to mozilla
  3. 2 platform, how do you decide which one to go with? Yes the long old discussion btw the web & the native & 1000s or statistics & comparison data if only all decisions were as easy as this, but unfortunately they’re not, so where that leave us
  4. Flora & fauna Combine? The best of web & native to come up with app that leverages web’s low friction & at the same time Well that’s exactly what PWAs do
  5. Now why is that even imp? Well, generally talking, the use case dev app may vary from product to product but more users – two para
  6. Think about a situation when you need some information quickly. The answer is in your mobile phone’s browser. You find most of the information from web sites. And it’s less likely to search for a native App for that. We can see that, the web reaches more than 2 times as many people. This is mainly because there’s a barrier before using a native App.
  7. So that’s all great, what are really are PWAs?
  8. Prg web app, or PWA is a termed coined in 2015 by Alx Russel from google idea is in addition, PWA uses modern web capabilities, to deliver an app-like user experience. They evolve from pages in browser tabs to immersive, top-level apps, leveraging the web's low friction.
  9. is a simple JSON file that gives you, the developer, the ability to control how your app appears to the user in the areas that they would expect to see apps (for example the mobile home screen), direct what the user can launch and, more importantly, how they can launch it. In Firefox -
  10. And honestly its so much better, The “get the app” or “open in app” interstitials which would ask us to dwnld their app before we can continue browsing thru? Well, how about no? Why can’t we use a really well built mobile site? They feel lighter and sometimes you just want to follow a link n get out of there. Welcome, PWA! Btw, G+ found their "download our app" interstitial caused 69% of users to abandon, rather than dl app or continue on site. So they’d vouch for that being a terrible idea. G+ dropped theirs once they saw the data.
  11. So we’ve been talking about leveraging the low friction of the web Each step to download an app reduce 20% of users. PWA reduces the steps between discovery of an app and getting it on the home screen and there by eliminating friction of getting an app installed. This provides a very fertile ground for businesses to pitch in their PWA.
  12. Where the native app installation flow looks something like this, in case of PWAs you just click a url & use the app!
  13. So why not use the app & install instead of installing it and then using it? Now to sum up what PWAs are there’s a list of features that the app must support.
  14. P- basic content & func of the modern web app works for every user, regardless of BC or bandwidth, while at the same time prov enhanced version of the app to those with more modern web browser. A-coz built using app shell model. Basic app interface or the shell L-means no app store req, no complex installation process, u can simply link an app to a specific url. D-identifiable by brow/search engines as “app”
  15. R- supports features like web push which can be used to deliver push noti to users even when they are not using the app. CI- enhanced with the support of SW, they can work offline or on low quality networks S-PWAs are strictly served over https, which means they’re save, prevent snooping and ensures that the data hasn’t been tampered with. When we talk about being https, main reason-SW. Amazing features made possible coz of SW.
  16. To begin with, SW are simple worker scripts that run in the bg and they come with the ability to do two things best, intercept network request and cache responses. So what exactly are SW?
  17. SW is a persistent, fully async separately thread, event based worker. P- lives outside the browser tabs, knows when to expire. ST- similar to web workers, they do not die when the tab is closed, they run in the bg, in their own global script context. FA-they make heavy use of promises, hence are non-blocking EB- they do not have any direct control from the main thread, they respond to events like install, act, fetch push sync
  18. SW essentially act as client-side proxy servers that sit between the app and the browser. It takes the form of a JS file and can control the web pages it is associated with, by intercepting & modifying navigation & resource requests, giving you control of how app behaves. As ATC, when the web req are the planes taking off. As an ATC, SW gives you control over each & every web req made form your site. In the same way ATC may redirect a plane to another airport or even delay a landing, SW enables you to redirect your req or even stop them completely.
  19. Using SW you can hijack connections, fabricate & filter responses, while you may do it for good reasons, To avoid this, you can only register SW on pages served over https. Github pages are served over https so they’re a great place to host demos.
  20. Once you register a SW to your browser, there can be two cases. However if it’s an updated Sw, which is found by bytewise comparison with existing SW, in that case it is downloaded but not made active until all pages ass with the old SW are closed. Coz for a given scope, only 1 SW can be active at a time. A- sits idle until it receives a network req in which case it loads subsequent pages // when not in use, terminate to save mem
  21. This code starts by checking for browser support by examining navigator.serviceWorker. The service worker is then registered with navigator.serviceWorker.register, which returns a promise that resolves when the service worker has been successfully registered. The scope of the service worker is then logged with registration.scope. The scope of the service worker determines which files the service worker controls, in other words, from which path the service worker will intercept requests. The default scope is the location of the service worker file, and extends to all directories below.
  22. This is where we cache all the needed resources. When we are on network we can cache the data which can be used to provide offline access to resources when there is no network.
  23. caches.open and cache.addAll are async operations and the service worker could terminate before these operations are completed. e.waitUntil asks the service worker to wait while the promise is resolved/rejected. When the cache is opened, we try to add the assets to the cache with addAll Keep in mind that if any of the files fail to be cached (may because it's probably missing), the service worker will fail to install.
  24. Once your Sw is ready to control the clients & handle functional events like push & sync, we get an activate event. This is the ideal place to do all the things which we couldn’t do while the old sw was still in use, such as migrating database & clearing cache.
  25. In this event listener associated with the activate event, we’re just filtering the cache using the cache name and deleting the resources stored in it. This ability to cache files using services is what forms the background of providing offline first experience in PWAs.
  26. As you might know
  27. FlipKart is one of India's largest online shops. They created a progressive web app, Flipkart Lite that resulted in a 70% increase in conversions.
  28. This can be used for achieving two things, improving performance + providing offline first exp
  29. It “gets its name from its ability to push information to a user instead of waiting for the user to make a request.“ Since they use SW that run in the background, these notifications can be "pushed" from the server to the user even when the app is not running. So the noti that we generally get from native apps on our mobile devices, is what is now possible with browsers as well.
  30. They can do simple things, such as alert the user to an important event, display an icon and a small piece of text that the user can then click to open up your site. They help re-engaging and eventually retaining users at your sites. They are strictly permission based which means you cannot send a noti until a user opts-in or subscribes to getting noti from your website. They deliver timely updates with relevant information which the user might want to receive.
  31. Also the beauty of this is that there are no forced commitments from the user’s side in the sense that they do not have to share any contact information like email id or anything to receive notifications. The messages are simply routed to the capability url associated with the SW at their page. And of course, if the user wishes he could opt-out of receiving noti anytime they want to.
  32. Now, coz push tech is making use of SW, this is again done over https only. So we have a server that.. , a client that.., and a push service that sits in between them. Now, being https only ensures that the communication channel b/w..
  33. So this would be an over simplified diagram of how things work. The client registers for push noti with the push service. Sends the identifier to the app server. Whenever there’s a new msg, the server sends the msg to the push service at the identifier url and the push service finally routes it to the correct client who had subscribed to it at the particular url. If any of what I said in the last 30 seconds seemed like a verbal rep of this
  34. Push API is envoked when a server supplies information to a SW & allows a SW to handle Push Messages from a server, even while the app is not active. Notification API lets the app display system notifications to the user
  35. First the client subscribes to push services by clicking the allow noti button that pops up when you browse a website. This is basically the user saying hey website I want noti from you. The push subs has an associated unique url for each subscription. This endpt url + client public key forms the subs object. The client then forwards this to the app server which is stored in the database and used when a noti is to be sent.
  36. At the server side, whenever there’s a new msg to be sent, the server generates a push msg Encrypts it with the user public key Send the msg to the endpoint URL with a payload of encrypted data. Remember the push service cannot actually read the msg since its encrypted. It only routes it to the SW or the client associated with that particular url.
  37. Coming back to the client side, when SW receives the msg, push event is triggered It wakes up and executes the listener associated with the push event. This is where we handle the displaying of the noti at the client’s side using the noti API
  38. This is done something like this. You add an event listener to the push event, and can manage a bunch of stuff under that. And that’s it! This completes the cycle and you get a realtime web push noti from an app server to the client via SW!
  39. Now even though I can point out a lot of statistics that proves that PN effectively re-engage users and retain a substantial number of them on the website, the still are like a double edged sword. And can be prove to be really destructive in some cases.
  40. And that’s a wrap! So these were a few things to show what PWAs can do. If any of this has caught your interest and you’d like to get some inspiration to get started, you should definitely check out these websites.
  41. Which shows incredible amount of improvement
  42. If the tech resonates with the work you’re doing or if you’d want to play around with what all service workers can do for you, I’d highly recommend this amazing compilation of feature wise code for SW, so do check out the service cookbook it’s a great place to start.
  43. And if you’re wondering what all a service worker is currently capable of doing on a particular browser, do check out this website. So these were a few things PWAs can do, use sw max benef of web. It’s undoubtedly one of the best things to have hppnd to the web lately & we are