# Le Google Play Store s’ouvre aux Progressive Web Apps [Web, Android]

par Thomas Broyer

Chrome 72 est arrivé le 29 janvier dernier avec une fonctionnalité majeure : les Trusted Web Activities. C’est en fait une variante des Chrome Custom Tabs, apparus dans Android Marshmallow il y a maintenant 2 ans et demi, et permettant de lancer Chrome depuis une application Android sans vraiment la quitter (mais contrairement aux WebViews, l’application n’a pas de contrôle sur ce qui est affiché, ce qui permet de partager les sessions, cookies, etc. avec Chrome). À la différence des Custom Tabs, une Trusted Web Activity (TWA) peut être affichée en plein écran, sans barre d’adresse ou menu spécifique à Chrome, mais à la condition que le site ouvert dans la TWA remplisse un certain nombre de critères, dont l’appartenance à la même entité que celle qui publie l’application.

Les bloggeurs qui suivaient ça de prêt ont tout de suite compris que les TWA rendaient possible ce que beaucoup attendaient, et enviaient au Microsoft Store, y publier des Progressive Web Apps (PWA). Maximiliano Firtman s’est le premier fendu d’un long article sur le sujet, suivi quelques jours plus tard par Bram Van Damme, tous deux précédant même l’annonce officielle de Google !

Et moins de deux semaines après la sortie de cette nouvelle version de Chrome, AppMaker publie un outil automatisant tout le processus (à l’exception bien sûr du déploiement sur le Google Play Store) : PWA2APK.

À noter : comme les TWA reposent sur les Custom Tabs, qui est un protocole ouvert, il n’est pas impossible de voir arriver un support dans les autres navigateurs également, tel Firefox.

On n’attend donc finalement plus qu’Apple, décidément très en retard sur le sujet des PWAs alors même que c’était sa vision originelle lors du lancement de l’iPhone à l’été 2007 !

# Les hooks sont arrivées !!  [Javascript, React, Hooks]

par Mathieu PETIT

Nous vous les avions présentés lors de notre BOT#2, les hooks sont enfin disponibles dans React 16.8.

Les hooks permettent d’utiliser le state de React (et la fonction setState) dans des composants sans devoir créer une classe. Ils ajoutent aussi une fonction useEffect qui permet de contrôler le composant pendant son cycle de vie, similaire aux fonctions componentDidMount, componentDidUpdate et componentWillUnmount d’une classe React.

Outre le fait de pouvoir aussi utiliser la récente API context de React avec la fonction useContext, les hooks amènent aussi une fonction useReducer qui permet de construire des state sous forme de reducer comme dans Redux.

# Et redux dans tout ça ? [Javascript, React, Redux]

par Xavier Calland

Les nouveautés intégrées dans les dernières versions de React (hooks, context, …) permettent une nouvelle approche sur l’architecture du code, notamment quant à la gestion des données et des états de l’application.

L’utilisation d’un store centralisé et partagé, style Redux, fait partie des bonnes pratiques que l’on peut trouver pour une application SPA.

Cela reste-t-il vrai avec les possibilités offertes par les dernières versions de React ?

Comment se positionne Redux par rapport à cela ?

Ces questions, l’équipe en charge de React-Redux se les pose aussi et nous éclaire sur la feuille de route de React-Redux.

# Les dessous de PostgreSQL [PostgreSQL]

par Aurélien Morlé

Utiliser PostgreSQL c’est une (bonne) chose mais savoir comment celui-ci fonctionne et son architecture en est une autre. Résumer un SGBD au langage SQL est très réducteur, il y a derrière cela de nombreux mécanismes internes. Ils permettent d’une part d’obtenir le résultat de votre requête SQL (aussi jolie soit elle). D’autre part ils assurent le bon fonctionnement du système et l’intégrité de vos données (VACUUM, WAL, PITR…). La documentation de PostgreSQL donne déjà une bonne base de départ pour comprendre le fonctionnement de celui-ci. Mais si l’on veut aller encore un peu plus loin pour savoir et comprendre comment celui-ci fonctionne, je vous recommande vivement cette documentation très bien faite et détaillée avec beaucoup de schéma http://www.interdb.jp/pg/index.html