Progressive Web Apps
Audience Mobile
* Source : Flurry Analytics, December 2016 ; comScore Mobile Metrix (Custom), US, Age 18+, June 2017
Audience Mobile
Quelles ont-été les key features à
l’origine de ce bouleversement ?
C’est l’UX des apps qui est plébiscitée
Expérience, Rapidité, Fluidité
47 % 53 %53%
des visiteurs abandonnent

un site s’il prend plus de

3 secondes à charger
93 %
7 %
7%
de reduction en conversions

pour chaque délai d’1 seconde

en temps de chargement
* Source : Doubleclick
Intégration à l’OS
SpringboardFullscreen
Sentiment de fiabilité
Mais le Web Mobile fait de la
résistance …
Audience Mobile
Audience Mobile
Ce qui freine les apps …
Barrière au download
Nature du trafic
Social
25 %
Organic
30 %
Referral
15 %
Direct
30 %
Other
10 %
Direct
90 %
Sources de trafic d’un site web Sources de trafic d’une app
3x
Coût marketing
$3
CPI
moyen
$1
CPC
moyen
Apps ?
UX, Rapidité, Fluidité
Integration des apps à l’OS
Sentiment de fiabilité
Barrière au download
Nature du trafic
Coût marketing
Progressive Web Apps
UX, Rapidité, Fluidité
Integration des apps à l’OS
Sentiment de fiabilité
Barrière au download
Nature du trafic
Coût marketing
Progressive Web Apps
RapidesFiables Intégrées
PWAs Checklist
Site is served over HTTPS
Pages are responsive on tablets & mobile devices
All app URLs load while offline
Metadata provided for Add to Home screen
First load fast even on 3G
Site works cross-browser
Page transitions don’t feel like they block on network
Each page has a URL
Resources should be served over HTTP/2
Progressive Web Apps
Fiables
Des apps fiables avec les Service Workers
Web Server
Web Server
Des apps fiables avec les Service Workers
Service Worker : proxy JS client
Web Server
Cache
Service Worker
Service Worker comme base pour le Push
ServiceWorker.js
onpush = function(event) {
var data = event.data.json();
self.registration.
showNotification(data.title, data.options);
};
example.com
Push Subscription

Endpoint
Resultats
Broadband Slow 3G Offline
Sans Service Worker 438 ms 2230 ms n/a
Avec Service Worker 420 ms 327 ms 449 ms
Gain de Performance ~ egal 7x meilleur ∞ meilleur
Progressive Web Apps
Rapides
Performance au premier contact
Comment être rapide même au premier appel ?
Les Service Workers permettent :
- fiabilité (l’app fonctionne même sans réseau)
- performance pour les utilisateurs récurrents (stratégies de cache runtime)
First load fast even on 3G
App Shell vs. SSR
Client Server
App Shell
JS
Dynamic content
Assets
Asynchronous pre-cache from Service Worker
First meaningful

paint
App Shell sans Pre-Rendering
Client Server
Pre-rendered HTML
Asynchronous pre-cache from Service Worker
First meaningful

paint
App Shell avec Pre-Rendering
Server Side Rendering
Premier appel, sans Server Side Rendering Premier appel, avec Server Side Rendering
First meaningful paint : 1100 ms

Page fully rendered : 1340 ms
First meaningful paint : 417 ms

Page fully rendered : 1210 ms
* un « detail » : Google n’indexera pas une page qui n’est pas ou qui est mal pré-générée !
Resultats
Broadband Slow 3G Offline
Sans Service Worker 438 ms 2230 ms n/a
Avec Service Worker 420 ms 327 ms 449 ms
Avec pre-rendering &
Service Worker
86 ms 111 ms 114 ms
Gain de Performance 5x meilleur 20x meilleur ∞ meilleur
Cache côté serveur
Client
Server
LOAD BALANCER
CACHE
PROXY
CACHE
PROXY
CACHE
PROXY
SSR
WORKERS
STATIC
ASSETS
CACHE
GoodBarber stack
• Load Balancer : haproxy
• Cache Proxy : python (asyncio) app + uwsgi
• Cache : Redis
• SSR Workers : js (express) app + node

• Static Assets : nginx (openresty)
Progressive Web Apps
Intégrées
Web App Manifest
Capacités des navigateurs
Capacités des navigateurs
Capacités des navigateurs
Capacités des navigateurs
Capacités des navigateurs
PWAs sur le Microsoft Store
PWAMP
AMP up
AMP page
PWA
Progressive Web Apps
RapidesFiables Intégrées
Merci !

Progressive Web Apps - Vendredi 16 Mars 2018