Building PWA (livre) Flashcards

1
Q

Quelles sont les capacités d’une PWA ?

A

Travail offline, chargement rapide, notifications push, raccourci écran d’accueil, apparence application native

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quel est le plus gros avantage d’une PWA ?

A

On réduit fortement les frais de maintenant, car l’application web fonctionnera sur tous les supports.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Comment fonctionne le serveur worker ?

A

Il se situe entre le serveur et les onglets du navigateur. Il n’est jamais éteint pour pouvoir recevoir des notifications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ou se place le fichier service worker dans son app ?

A

On le place a la racine, puis on le registrer dans le code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

service worker et HTTPS ?

A

Le service worker ne fonctionne que en HTTPS. Il ne n’installera pas en HTTP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quel est le scope du service worker ?

A

Si il est installé sur “/”, alors il fonctionnera partout. Si il est installé sur “/coucou”, alors il ne fonctionnera que sur /coucou/*

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

A quoi sert l’API Cache Storage ?

A

A mettre en cache une requête HTTP. Le cache va fonctionner si l’URL, les headers et les query params matchent.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quelles sont les 5 phases du service worker ?

A

Installing, installed, activating, activated, redundant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A quoi correspond la phase installed du service worker ?

A

Le service worker est téléchargé et se met en place dans le navigateur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

A quoi correspond la phase activated du service worker ?

A

Le service worker est installé et prend la main sur la page. (donc remplace l’ancien service worker)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

A quoi correspond la phase redundant du service worker ?

A

Le service worker a eu un problème pendant l’installation ou vient de se faire remplacer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que se passe t’il lors du téléchargement d’un nouveau service worker ?

A

Il va s’installer mais ne va pas s’activer ! Il va attendre que tous les onglets du site soient fermés pour s’activer (pour éviter la concurrence)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quand le navigateur détecte un nouveau service worker ?

A

Quand son contenu a changé (sûrement via les hashs)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qu’est ce que le précache du service worker ?

A

Ce sont les routes que l’ont met dans le cache dès le lancement de l’application.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quel header HTTP faut il enlever sur le service worker ?

A

Le header “Cache” qui est défini côté backend. Sinon, il faudra demander a l’utilisateur de supprimer a la main le cache…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Qu’est ce que LightHouse ?

A

Un outil pour voir si la PWA est bien optimisée

17
Q

Quels sont les stratégies de caching ?

A

Cache only, network only, cache first then network on fail, network first then cache on fail, generique fallback

18
Q

Que faire avec l’ancien cache ?

A

Le supprimer si le nom de la version est dans la clé du cache

19
Q

Qu’est ce que IndexDB ?

A

Une DB qui fonctionne dans le navigateur

20
Q

Quelles sont les caractéristiques d’IndexDB ?

A

Transactionnelle, NoSQL et indexable. C’est une DB clé valeur

21
Q

Comment fonctionne les migrations nativement avec IndexDB ?

A

Il n’existe pas de système, il faut les créer soit même. ça fonctionne avec un numéro de version.

22
Q

Comment envoyer une requête en différée dans une PWA ?

A

On va venir enregistrer l’évènement dans le syncManager

23
Q

Que se passe t’il si il y a un échec pendant le syncManager ?

A

La navigateur va réessayer la requête plus tard. Si il y a trop d’echecs il va abandonner.

24
Q

Quand le syncManager réessaye d’accomplir l’event ?

A

Immédiatement au moment du save de l’event, quand le navigateur passe de offline et online, sinon toutes les minutes

25
Q

Qu’est ce qu’un tag du syncManager ?

A

C’est le nom de l’événement. Il ne peut y avoir qu’un seul a chaque fois. C’est pour ça qu’un event doit être géré sous forme de liste, via l’IndexDB.

26
Q

Qu’est ce que le last chance dans le SyncManager ?

A

C’est le dernier essai d’un tag. Il peut être écouté via un booléen lastChance()

27
Q

Comment implémenter facilement le SyncManager ?

A

Implémenter un tag request-queue , puis stocker en IndexDB toutes les requêtes HTTP. Et boom, tout fonctionne or ligne !

28
Q

Comment communiquer du SyncManager au service worker ?

A

Via les posts messages. C’est bidirectionnel, entre le sw et l’app.

29
Q

Quels sont les conditions pour voir la bannière “Installer l’application” nativement ?

A

HTTPS, service worker, webmanifest bien configuré, que l’utilisateur montre de l’intêret pour le site et qu’il n’ai pas refusé la bannière

30
Q

Quelles conditions pour que l’utilisateur puisse recevoir les notifications ?

A

Il faut qu’il autorise via la NotificationAPI, et que l’application ai généré une VAPID key.

31
Q

Où les notifications doivent elles êtres écoutées dans une PWA ?

A

Dans le service worker, sinon ça ne fonctionnera pas lorsque que l’utilisateur quittera l’app.

32
Q

Qu’est ce qu’une VAPID key ?

A

C’est une clé qui permet d’autoriser un site a publier des notifications. C’est fait pour parler avec des serveurs de messageries, qui luttent contre le spam.

33
Q

Quelles sont les étapes pour envoyer une notification a un utilisateur dans une PWA ?

A

L’utilisateur accepte les notifs, ouvre une subscription a un serveur de messagerie. La subscription retourne des infos, que l’on va stocker dans le backend. Le backend va ensuite envoyer des notifs via le serveur de messageries grâce aux infos de la subscription.

34
Q

Quels sont les bons principe UX pour une bonne PWA ?

A

Notifier a l’utilisateur qu’il est passé offline, notifier que l’app est synchronisée, demander l’autorisation au bon moment pour les notifications, et bien expliquer pourquoi c’est utile.

35
Q

Que veut dire l’acronyme RAIL en UX ?

A

Reactivity, animation, idle, load.