SlideShare a Scribd company logo
1 of 35
Download to read offline
Startup notes:
1. Slides URL: cardistry-arena.com/slides.php
2. You can turn on your mobile data on for some
progressive web apps sites that we will visit during the
presentation.
Note: Please unblock the notifications temporarily.
Progressive Web Apps
Survey
If you’re going to use Facebook, Gmail or Google maps in your smartphone, which
step will you use?
1. Go to chrome, then type in
the URL bar facebook.com
or youtube.com
(Mobile Web)
2. Tap in the Icon in your
homescreen
(Native)
Mobile Web Vs. Native Apps
What is Progressive Web Apps?
Progressive Web Apps (PWA) is a new life-cycle model that
combines most of the features of web apps with the benefits
of mobile apps.
Its main features are instant loading, offline mode, cache
control and push notifications.
Who’s using this?
Results:
● Users time on site with Flipkart
lite vs. previous mobile
experience: 3.5 minutes vs 70
seconds.
● 40% higher re-engagement rate
● 70% greater conversion rate
among those arriving via Add to
Homescreen
● 3x lower data usage
India’s largest e-commerce site
Who’s using this?
Almost all of the top visited sites are using it for their Push
Notification.
Skills needed
Javascript is the basic skill that you need
for making Progressive Web Apps. Here
are the libraries/concepts that helps us
make PWAs.
● JSON
● Javascript Promises (doesn’t have to
be an expert)
● Gulp.js (for SW-precache and
SW-toolbox)
● SW-precache
● SW-toolbox
Resources
Service worker
- A javascript file that is stored on the user’s browser and runs in the
background. It intercepts with the network request made by the web app.
Url sample: chrome://serviceworker-internals
Installation:
Resources
Manifest.json
- A json file that stores information that will be used by the service worker.
Url sample:
https://devcon.cardistry-arena.com/devcon/manifest.json
HTTPS
- Progressive Web apps requires HTTPS for security.
- http://localhost is allowed for development purposes
Caching
Strategies
● Network First
● Cache First
● Fastest
● Cache Only
● Network Only
Cache First
Credits to: https://jakearchibald.com/2014/offline-cookbook
Cache First
Credits to: https://jakearchibald.com/2014/offline-cookbook
Ideal For
- Newspaper articles
- Social media Timelines
- Anything you want that updates frequently
Cache First Pseudo Code without SW-Toolbox
Credits to: https://jakearchibald.com/2014/offline-cookbook
Cache First Pseudo Code with SW-Precache
Network First
Credits to: https://jakearchibald.com/2014/offline-cookbook
Network First Pseudo Code With Sw-precache
Fastest
Credits to: https://jakearchibald.com/2014/offline-cookbook
Fastest Pseudo Code without SW-precache
Credits to: https://jakearchibald.com/2014/offline-cookbook
Fastest Pseudo Code with SW-precache
Cache only
Network Only
Push
Notifications
This is what a Push Notification looks like
(In Desktop) (In Mobile)
Requirements to make a dynamic push notification?
1. Get your server and sender key
- Go to firebase
- Create a project
- Go to project settings (Gear icon on the upper left beside project name)
- Choose Cloud Messaging
- Under the Project Credentials, get the server and sender key
2. Add the sender id to your manifest.json
Requirements to make a dynamic push notification?
3. Add the server-key to your curl script as Authorization:.
Requirements to make a dynamic push notification?
4. Add a push listener to you service-worker.js
Requirements to make a dynamic push notification?
5. Do your installation script for service-worker in your js that is accessible in your DOM
MAKING IT WORK
Making it work
What’s happening in the background?
When you click yes, it registers the sw.js
(service-worker.js) in the browser and sends
an ajax call to save the subscription_id in the
subscriptions table.
Making it work
What’s happening in the background?
When you click send, the title, body, url and the
hidden subscription_id will be passed to the
server and and save it to the notifications table.
After that, the curl request will be executed. This
will trigger the push listener in the sw.js.
“fetch('php_actions/notification_get_me..” will
get the title, body, url and subscription_id that
you saved earlier by getting the last data it gets
when it matches the subscription_id.
Making it work
What’s happening in the background?
Clicking this will open a new tab, triggered by the
notificationclick listener.
Problems Encountered
1. Easy to have errors on multiple tabs.
2. Stackoverflow is limited for PWA.
3. Service worker is supported in most browsers but doesn’t have full support on all
functionalities.
4. Service worker listener to push notifications has a much shorter lifetime compared
to native apps.
Thanks for Listening
Millicent Convento
Email: mjmconvento@gmail.com
Github Username: mjmconvento

More Related Content

What's hot

What is difference between spring MVC and spring boot?
What is difference between spring MVC and spring boot?What is difference between spring MVC and spring boot?
What is difference between spring MVC and spring boot?narendrachinnu
 
01_Migrate Web Sites to Azure Web Apps_GAB2019
01_Migrate Web Sites to Azure Web Apps_GAB201901_Migrate Web Sites to Azure Web Apps_GAB2019
01_Migrate Web Sites to Azure Web Apps_GAB2019Kumton Suttiraksiri
 
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Edureka!
 
Why Would A Programmer Fall In Love With SPA?
Why Would A Programmer Fall In Love With SPA?Why Would A Programmer Fall In Love With SPA?
Why Would A Programmer Fall In Love With SPA?Netguru
 
Wordpress plugin creation_overview
Wordpress plugin creation_overviewWordpress plugin creation_overview
Wordpress plugin creation_overviewDaniel Kline
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web appsSuraj Kumar
 
Building Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & LoopbackBuilding Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & LoopbackChibuzor Obiora
 
It's all about the UX. Announcement of KeyPublisher at eZconf
It's all about the UX. Announcement of KeyPublisher at eZconfIt's all about the UX. Announcement of KeyPublisher at eZconf
It's all about the UX. Announcement of KeyPublisher at eZconfStig Martin Fiskå
 
Progressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningProgressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningSuraj Kumar
 
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...NCCOMMS
 
End-to-end Mobile App Development (with iOS and Azure Mobile Services)
End-to-end Mobile App Development (with iOS and Azure Mobile Services)End-to-end Mobile App Development (with iOS and Azure Mobile Services)
End-to-end Mobile App Development (with iOS and Azure Mobile Services)Andri Yadi
 
Application Server-less Web Applications - Serverless Toronto Meetup
Application Server-less Web Applications - Serverless Toronto Meetup Application Server-less Web Applications - Serverless Toronto Meetup
Application Server-less Web Applications - Serverless Toronto Meetup Daniel Zivkovic
 
Meteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers MeetingMeteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers MeetingFrancesco Corazza
 
Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)Yurim Jin
 
Migration des solutions SharePoint vers le modèle Apps
Migration des solutions SharePoint vers le modèle AppsMigration des solutions SharePoint vers le modèle Apps
Migration des solutions SharePoint vers le modèle AppsGuillaume Meyer
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web AppsTimmy Kokke
 
Building Faster With Your Team's UI Kit
Building Faster With Your Team's UI KitBuilding Faster With Your Team's UI Kit
Building Faster With Your Team's UI KitAtlassian
 

What's hot (20)

What is difference between spring MVC and spring boot?
What is difference between spring MVC and spring boot?What is difference between spring MVC and spring boot?
What is difference between spring MVC and spring boot?
 
01_Migrate Web Sites to Azure Web Apps_GAB2019
01_Migrate Web Sites to Azure Web Apps_GAB201901_Migrate Web Sites to Azure Web Apps_GAB2019
01_Migrate Web Sites to Azure Web Apps_GAB2019
 
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
Spring Boot Tutorial | Microservices Spring Boot | Microservices Architecture...
 
Why Would A Programmer Fall In Love With SPA?
Why Would A Programmer Fall In Love With SPA?Why Would A Programmer Fall In Love With SPA?
Why Would A Programmer Fall In Love With SPA?
 
Wordpress plugin creation_overview
Wordpress plugin creation_overviewWordpress plugin creation_overview
Wordpress plugin creation_overview
 
Vaadin codemotion 2014
Vaadin codemotion 2014Vaadin codemotion 2014
Vaadin codemotion 2014
 
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor
 
Progressive web apps
Progressive web appsProgressive web apps
Progressive web apps
 
Building Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & LoopbackBuilding Mobile Apps With Ionic & Loopback
Building Mobile Apps With Ionic & Loopback
 
It's all about the UX. Announcement of KeyPublisher at eZconf
It's all about the UX. Announcement of KeyPublisher at eZconfIt's all about the UX. Announcement of KeyPublisher at eZconf
It's all about the UX. Announcement of KeyPublisher at eZconf
 
Progressive Web Apps - Up & Running
Progressive Web Apps - Up & RunningProgressive Web Apps - Up & Running
Progressive Web Apps - Up & Running
 
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
O365Con18 - Connect SharePoint Framework Solutions to API's secured with Azur...
 
End-to-end Mobile App Development (with iOS and Azure Mobile Services)
End-to-end Mobile App Development (with iOS and Azure Mobile Services)End-to-end Mobile App Development (with iOS and Azure Mobile Services)
End-to-end Mobile App Development (with iOS and Azure Mobile Services)
 
Web App Security
Web App SecurityWeb App Security
Web App Security
 
Application Server-less Web Applications - Serverless Toronto Meetup
Application Server-less Web Applications - Serverless Toronto Meetup Application Server-less Web Applications - Serverless Toronto Meetup
Application Server-less Web Applications - Serverless Toronto Meetup
 
Meteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers MeetingMeteor js - TechPeaks Developers Meeting
Meteor js - TechPeaks Developers Meeting
 
Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)
 
Migration des solutions SharePoint vers le modèle Apps
Migration des solutions SharePoint vers le modèle AppsMigration des solutions SharePoint vers le modèle Apps
Migration des solutions SharePoint vers le modèle Apps
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Building Faster With Your Team's UI Kit
Building Faster With Your Team's UI KitBuilding Faster With Your Team's UI Kit
Building Faster With Your Team's UI Kit
 

Viewers also liked

Solving Database Management, Migration, and Scaling Problems with DevOps Tool...
Solving Database Management, Migration, and Scaling Problems with DevOps Tool...Solving Database Management, Migration, and Scaling Problems with DevOps Tool...
Solving Database Management, Migration, and Scaling Problems with DevOps Tool...DEVCON
 
Talk nerdy to me: how the future of UX is conversation and bots by Brian Rowe
Talk nerdy to me: how the future of UX is conversation and bots by Brian RoweTalk nerdy to me: how the future of UX is conversation and bots by Brian Rowe
Talk nerdy to me: how the future of UX is conversation and bots by Brian RoweDEVCON
 
Securing Your AWS Cloud Infrastructure by Neil Hermosilla
Securing Your AWS Cloud Infrastructure by Neil HermosillaSecuring Your AWS Cloud Infrastructure by Neil Hermosilla
Securing Your AWS Cloud Infrastructure by Neil HermosillaDEVCON
 
Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...
Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...
Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...DEVCON
 
Pokemon Go Analysis by Jolo Balbin
Pokemon Go Analysis by Jolo BalbinPokemon Go Analysis by Jolo Balbin
Pokemon Go Analysis by Jolo BalbinDEVCON
 
Smart Waste Disposal System by Russ Earl Malangen
Smart Waste Disposal System by Russ Earl MalangenSmart Waste Disposal System by Russ Earl Malangen
Smart Waste Disposal System by Russ Earl MalangenDEVCON
 
Payment Acceptance and Card Tokenization in JavaScript by Diwa Del Mundo
Payment Acceptance and Card Tokenization in JavaScript by Diwa Del MundoPayment Acceptance and Card Tokenization in JavaScript by Diwa Del Mundo
Payment Acceptance and Card Tokenization in JavaScript by Diwa Del MundoDEVCON
 
React server side rendering performance
React server side rendering performanceReact server side rendering performance
React server side rendering performanceNick Dreckshage
 
How to Prevent Design Blindness by Tin Balabat
How to Prevent Design Blindness by Tin BalabatHow to Prevent Design Blindness by Tin Balabat
How to Prevent Design Blindness by Tin BalabatDEVCON
 
Rain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis Lozano
Rain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis LozanoRain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis Lozano
Rain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis LozanoDEVCON
 
Quick prototyping (Construct 2 & Unity) by Roan Contreras
Quick prototyping (Construct 2 & Unity) by Roan ContrerasQuick prototyping (Construct 2 & Unity) by Roan Contreras
Quick prototyping (Construct 2 & Unity) by Roan ContrerasDEVCON
 
Applying Machine Learning for Mobile Games by Neil Patrick Del Gallego
Applying Machine Learning for Mobile Games by Neil Patrick Del GallegoApplying Machine Learning for Mobile Games by Neil Patrick Del Gallego
Applying Machine Learning for Mobile Games by Neil Patrick Del GallegoDEVCON
 
Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...
Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...
Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...DEVCON
 
Fundamentals of IoT: Communications with Uttr by Edmandie Samonte
Fundamentals of IoT: Communications with Uttr by Edmandie SamonteFundamentals of IoT: Communications with Uttr by Edmandie Samonte
Fundamentals of IoT: Communications with Uttr by Edmandie SamonteDEVCON
 
Creating a Hospital Based IoT Solution by Russ Earl Malangen
Creating a Hospital Based IoT Solution by Russ Earl MalangenCreating a Hospital Based IoT Solution by Russ Earl Malangen
Creating a Hospital Based IoT Solution by Russ Earl MalangenDEVCON
 
Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...
Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...
Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...DEVCON
 
Developing Your First Mobile VR App by NJ Realubit
Developing Your First Mobile VR App by NJ RealubitDeveloping Your First Mobile VR App by NJ Realubit
Developing Your First Mobile VR App by NJ RealubitDEVCON
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 

Viewers also liked (18)

Solving Database Management, Migration, and Scaling Problems with DevOps Tool...
Solving Database Management, Migration, and Scaling Problems with DevOps Tool...Solving Database Management, Migration, and Scaling Problems with DevOps Tool...
Solving Database Management, Migration, and Scaling Problems with DevOps Tool...
 
Talk nerdy to me: how the future of UX is conversation and bots by Brian Rowe
Talk nerdy to me: how the future of UX is conversation and bots by Brian RoweTalk nerdy to me: how the future of UX is conversation and bots by Brian Rowe
Talk nerdy to me: how the future of UX is conversation and bots by Brian Rowe
 
Securing Your AWS Cloud Infrastructure by Neil Hermosilla
Securing Your AWS Cloud Infrastructure by Neil HermosillaSecuring Your AWS Cloud Infrastructure by Neil Hermosilla
Securing Your AWS Cloud Infrastructure by Neil Hermosilla
 
Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...
Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...
Open Minded? Software Engineer to a UX Engineer. Ask me how. by Micael Diaz d...
 
Pokemon Go Analysis by Jolo Balbin
Pokemon Go Analysis by Jolo BalbinPokemon Go Analysis by Jolo Balbin
Pokemon Go Analysis by Jolo Balbin
 
Smart Waste Disposal System by Russ Earl Malangen
Smart Waste Disposal System by Russ Earl MalangenSmart Waste Disposal System by Russ Earl Malangen
Smart Waste Disposal System by Russ Earl Malangen
 
Payment Acceptance and Card Tokenization in JavaScript by Diwa Del Mundo
Payment Acceptance and Card Tokenization in JavaScript by Diwa Del MundoPayment Acceptance and Card Tokenization in JavaScript by Diwa Del Mundo
Payment Acceptance and Card Tokenization in JavaScript by Diwa Del Mundo
 
React server side rendering performance
React server side rendering performanceReact server side rendering performance
React server side rendering performance
 
How to Prevent Design Blindness by Tin Balabat
How to Prevent Design Blindness by Tin BalabatHow to Prevent Design Blindness by Tin Balabat
How to Prevent Design Blindness by Tin Balabat
 
Rain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis Lozano
Rain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis LozanoRain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis Lozano
Rain Classifier: The Engineered Way of Evaluating the Rain by Paulo Luis Lozano
 
Quick prototyping (Construct 2 & Unity) by Roan Contreras
Quick prototyping (Construct 2 & Unity) by Roan ContrerasQuick prototyping (Construct 2 & Unity) by Roan Contreras
Quick prototyping (Construct 2 & Unity) by Roan Contreras
 
Applying Machine Learning for Mobile Games by Neil Patrick Del Gallego
Applying Machine Learning for Mobile Games by Neil Patrick Del GallegoApplying Machine Learning for Mobile Games by Neil Patrick Del Gallego
Applying Machine Learning for Mobile Games by Neil Patrick Del Gallego
 
Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...
Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...
Protocol-Oriented Programming in iOS: the Correct Way to Use Swift by JC Vela...
 
Fundamentals of IoT: Communications with Uttr by Edmandie Samonte
Fundamentals of IoT: Communications with Uttr by Edmandie SamonteFundamentals of IoT: Communications with Uttr by Edmandie Samonte
Fundamentals of IoT: Communications with Uttr by Edmandie Samonte
 
Creating a Hospital Based IoT Solution by Russ Earl Malangen
Creating a Hospital Based IoT Solution by Russ Earl MalangenCreating a Hospital Based IoT Solution by Russ Earl Malangen
Creating a Hospital Based IoT Solution by Russ Earl Malangen
 
Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...
Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...
Developing a Smart Farm: Using Low-Cost electronics and a Civil Engineering B...
 
Developing Your First Mobile VR App by NJ Realubit
Developing Your First Mobile VR App by NJ RealubitDeveloping Your First Mobile VR App by NJ Realubit
Developing Your First Mobile VR App by NJ Realubit
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 

Similar to Progressive Web Apps by Millicent Convento

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
 
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 - IstanbulRobert Nyman
 
Progressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting StartedProgressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting StartedGaurav Behere
 
Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020Imran Sayed
 
Why Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandWhy Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandImran Sayed
 
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 goRobert Nyman
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developersFilip Rakowski
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
 
The secret web performance metric no one is talking about
The secret web performance metric no one is talking aboutThe secret web performance metric no one is talking about
The secret web performance metric no one is talking aboutAnna Migas
 
Building high performance web apps.
Building high performance web apps.Building high performance web apps.
Building high performance web apps.Arshak Movsisyan
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesGeekNightHyderabad
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsJim Jeffers
 
Secret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeSecret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeAnna Migas
 
Security, more important than ever!
Security, more important than ever!Security, more important than ever!
Security, more important than ever!Marko Heijnen
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 

Similar to Progressive Web Apps by Millicent Convento (20)

The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...The web - What it has, what it lacks and where it must go - keynote at Riga D...
The web - What it has, what it lacks and where it must go - keynote at Riga D...
 
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
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Progressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting StartedProgressive Web Apps - Overview & Getting Started
Progressive Web Apps - Overview & Getting Started
 
Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020Why progressive apps for WordPress - WordSesh 2020
Why progressive apps for WordPress - WordSesh 2020
 
Why Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp FinlandWhy Progressive Web Apps For WordPress - WordCamp Finland
Why Progressive Web Apps For WordPress - WordCamp Finland
 
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
 
Wordpress as a framework
Wordpress as a frameworkWordpress as a framework
Wordpress as a framework
 
PWA basics for developers
PWA basics for developersPWA basics for developers
PWA basics for developers
 
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
AD113  Speed Up Your Applications w/ Nginx and PageSpeedAD113  Speed Up Your Applications w/ Nginx and PageSpeed
AD113 Speed Up Your Applications w/ Nginx and PageSpeed
 
Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Presemtation Tier Optimizations
Presemtation Tier OptimizationsPresemtation Tier Optimizations
Presemtation Tier Optimizations
 
The secret web performance metric no one is talking about
The secret web performance metric no one is talking aboutThe secret web performance metric no one is talking about
The secret web performance metric no one is talking about
 
Building high performance web apps.
Building high performance web apps.Building high performance web apps.
Building high performance web apps.
 
Progressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web TechnologiesProgressive Web Applications - The Next Gen Web Technologies
Progressive Web Applications - The Next Gen Web Technologies
 
Building Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in RailsBuilding Mobile Friendly APIs in Rails
Building Mobile Friendly APIs in Rails
 
Secret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBeSecret Web Performance Metric - DevDayBe
Secret Web Performance Metric - DevDayBe
 
Security, more important than ever!
Security, more important than ever!Security, more important than ever!
Security, more important than ever!
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 

More from DEVCON

App Store Optimization 101 by James Chua
App Store Optimization 101 by James ChuaApp Store Optimization 101 by James Chua
App Store Optimization 101 by James ChuaDEVCON
 
Recent trends in the Android Ecosystem by Tiago Alves
Recent trends in the Android Ecosystem by Tiago AlvesRecent trends in the Android Ecosystem by Tiago Alves
Recent trends in the Android Ecosystem by Tiago AlvesDEVCON
 
Introduction to Talas Data Intelligence by Alvin Gendrano
Introduction to Talas Data Intelligence by Alvin GendranoIntroduction to Talas Data Intelligence by Alvin Gendrano
Introduction to Talas Data Intelligence by Alvin GendranoDEVCON
 
DevOps - Infrastructure as Code by Andre Marcelo-Tanner
DevOps - Infrastructure as Code by Andre Marcelo-TannerDevOps - Infrastructure as Code by Andre Marcelo-Tanner
DevOps - Infrastructure as Code by Andre Marcelo-TannerDEVCON
 
Rediscovering Developer Opportunities in the Philippines by Fred Tshidimba
Rediscovering Developer Opportunities in the Philippines by Fred TshidimbaRediscovering Developer Opportunities in the Philippines by Fred Tshidimba
Rediscovering Developer Opportunities in the Philippines by Fred TshidimbaDEVCON
 
The State of the Philippine Programming Talent by Joey Gurango
The State of the Philippine Programming Talent by Joey GurangoThe State of the Philippine Programming Talent by Joey Gurango
The State of the Philippine Programming Talent by Joey GurangoDEVCON
 
Python Code Camp for Professionals 4/4
Python Code Camp for Professionals 4/4Python Code Camp for Professionals 4/4
Python Code Camp for Professionals 4/4DEVCON
 
Python Code Camp for Professionals 3/4
Python Code Camp for Professionals 3/4Python Code Camp for Professionals 3/4
Python Code Camp for Professionals 3/4DEVCON
 
Python Code Camp for Professionals 2/4
Python Code Camp for Professionals 2/4Python Code Camp for Professionals 2/4
Python Code Camp for Professionals 2/4DEVCON
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4DEVCON
 
Use The Source Join The Force by Mark Steve Samson | DevCon Summit 2015 #GoO...
Use The Source Join The Force by Mark Steve Samson  | DevCon Summit 2015 #GoO...Use The Source Join The Force by Mark Steve Samson  | DevCon Summit 2015 #GoO...
Use The Source Join The Force by Mark Steve Samson | DevCon Summit 2015 #GoO...DEVCON
 

More from DEVCON (11)

App Store Optimization 101 by James Chua
App Store Optimization 101 by James ChuaApp Store Optimization 101 by James Chua
App Store Optimization 101 by James Chua
 
Recent trends in the Android Ecosystem by Tiago Alves
Recent trends in the Android Ecosystem by Tiago AlvesRecent trends in the Android Ecosystem by Tiago Alves
Recent trends in the Android Ecosystem by Tiago Alves
 
Introduction to Talas Data Intelligence by Alvin Gendrano
Introduction to Talas Data Intelligence by Alvin GendranoIntroduction to Talas Data Intelligence by Alvin Gendrano
Introduction to Talas Data Intelligence by Alvin Gendrano
 
DevOps - Infrastructure as Code by Andre Marcelo-Tanner
DevOps - Infrastructure as Code by Andre Marcelo-TannerDevOps - Infrastructure as Code by Andre Marcelo-Tanner
DevOps - Infrastructure as Code by Andre Marcelo-Tanner
 
Rediscovering Developer Opportunities in the Philippines by Fred Tshidimba
Rediscovering Developer Opportunities in the Philippines by Fred TshidimbaRediscovering Developer Opportunities in the Philippines by Fred Tshidimba
Rediscovering Developer Opportunities in the Philippines by Fred Tshidimba
 
The State of the Philippine Programming Talent by Joey Gurango
The State of the Philippine Programming Talent by Joey GurangoThe State of the Philippine Programming Talent by Joey Gurango
The State of the Philippine Programming Talent by Joey Gurango
 
Python Code Camp for Professionals 4/4
Python Code Camp for Professionals 4/4Python Code Camp for Professionals 4/4
Python Code Camp for Professionals 4/4
 
Python Code Camp for Professionals 3/4
Python Code Camp for Professionals 3/4Python Code Camp for Professionals 3/4
Python Code Camp for Professionals 3/4
 
Python Code Camp for Professionals 2/4
Python Code Camp for Professionals 2/4Python Code Camp for Professionals 2/4
Python Code Camp for Professionals 2/4
 
Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4Python Code Camp for Professionals 1/4
Python Code Camp for Professionals 1/4
 
Use The Source Join The Force by Mark Steve Samson | DevCon Summit 2015 #GoO...
Use The Source Join The Force by Mark Steve Samson  | DevCon Summit 2015 #GoO...Use The Source Join The Force by Mark Steve Samson  | DevCon Summit 2015 #GoO...
Use The Source Join The Force by Mark Steve Samson | DevCon Summit 2015 #GoO...
 

Recently uploaded

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
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
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
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
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
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
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
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
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 

Recently uploaded (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
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
 
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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
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
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
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
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
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...
 
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...
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
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
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
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
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 

Progressive Web Apps by Millicent Convento

  • 1. Startup notes: 1. Slides URL: cardistry-arena.com/slides.php 2. You can turn on your mobile data on for some progressive web apps sites that we will visit during the presentation. Note: Please unblock the notifications temporarily.
  • 3. Survey If you’re going to use Facebook, Gmail or Google maps in your smartphone, which step will you use? 1. Go to chrome, then type in the URL bar facebook.com or youtube.com (Mobile Web) 2. Tap in the Icon in your homescreen (Native)
  • 4. Mobile Web Vs. Native Apps
  • 5.
  • 6. What is Progressive Web Apps? Progressive Web Apps (PWA) is a new life-cycle model that combines most of the features of web apps with the benefits of mobile apps. Its main features are instant loading, offline mode, cache control and push notifications.
  • 7. Who’s using this? Results: ● Users time on site with Flipkart lite vs. previous mobile experience: 3.5 minutes vs 70 seconds. ● 40% higher re-engagement rate ● 70% greater conversion rate among those arriving via Add to Homescreen ● 3x lower data usage India’s largest e-commerce site
  • 8. Who’s using this? Almost all of the top visited sites are using it for their Push Notification.
  • 9. Skills needed Javascript is the basic skill that you need for making Progressive Web Apps. Here are the libraries/concepts that helps us make PWAs. ● JSON ● Javascript Promises (doesn’t have to be an expert) ● Gulp.js (for SW-precache and SW-toolbox) ● SW-precache ● SW-toolbox
  • 10. Resources Service worker - A javascript file that is stored on the user’s browser and runs in the background. It intercepts with the network request made by the web app. Url sample: chrome://serviceworker-internals Installation:
  • 11. Resources Manifest.json - A json file that stores information that will be used by the service worker. Url sample: https://devcon.cardistry-arena.com/devcon/manifest.json HTTPS - Progressive Web apps requires HTTPS for security. - http://localhost is allowed for development purposes
  • 12. Caching Strategies ● Network First ● Cache First ● Fastest ● Cache Only ● Network Only
  • 13. Cache First Credits to: https://jakearchibald.com/2014/offline-cookbook
  • 14. Cache First Credits to: https://jakearchibald.com/2014/offline-cookbook Ideal For - Newspaper articles - Social media Timelines - Anything you want that updates frequently
  • 15. Cache First Pseudo Code without SW-Toolbox Credits to: https://jakearchibald.com/2014/offline-cookbook
  • 16. Cache First Pseudo Code with SW-Precache
  • 17. Network First Credits to: https://jakearchibald.com/2014/offline-cookbook
  • 18. Network First Pseudo Code With Sw-precache
  • 20. Fastest Pseudo Code without SW-precache Credits to: https://jakearchibald.com/2014/offline-cookbook
  • 21. Fastest Pseudo Code with SW-precache
  • 25. This is what a Push Notification looks like (In Desktop) (In Mobile)
  • 26. Requirements to make a dynamic push notification? 1. Get your server and sender key - Go to firebase - Create a project - Go to project settings (Gear icon on the upper left beside project name) - Choose Cloud Messaging - Under the Project Credentials, get the server and sender key 2. Add the sender id to your manifest.json
  • 27. Requirements to make a dynamic push notification? 3. Add the server-key to your curl script as Authorization:.
  • 28. Requirements to make a dynamic push notification? 4. Add a push listener to you service-worker.js
  • 29. Requirements to make a dynamic push notification? 5. Do your installation script for service-worker in your js that is accessible in your DOM
  • 31. Making it work What’s happening in the background? When you click yes, it registers the sw.js (service-worker.js) in the browser and sends an ajax call to save the subscription_id in the subscriptions table.
  • 32. Making it work What’s happening in the background? When you click send, the title, body, url and the hidden subscription_id will be passed to the server and and save it to the notifications table. After that, the curl request will be executed. This will trigger the push listener in the sw.js. “fetch('php_actions/notification_get_me..” will get the title, body, url and subscription_id that you saved earlier by getting the last data it gets when it matches the subscription_id.
  • 33. Making it work What’s happening in the background? Clicking this will open a new tab, triggered by the notificationclick listener.
  • 34. Problems Encountered 1. Easy to have errors on multiple tabs. 2. Stackoverflow is limited for PWA. 3. Service worker is supported in most browsers but doesn’t have full support on all functionalities. 4. Service worker listener to push notifications has a much shorter lifetime compared to native apps.
  • 35. Thanks for Listening Millicent Convento Email: mjmconvento@gmail.com Github Username: mjmconvento