Aller au contenu
useffect.sh
Planifier 30 min avec un senior
Tous les articles
La veille du collectif

NitroFetch : commencer les requêtes avant le JavaScript

2 min de lectureReact Native

Le premier écran pose un problème classique : le premier écran attend une requête qui ne part qu’après le chargement du JavaScript. Le retour d’expérience NitroFetch d’Expensify permet de regarder ce délai comme une chaîne d’étapes plutôt qu’un seul chiffre de démarrage.

Faire travailler le réseau plus tôt

Le billet Margelo sur NitroFetch chez Expensify (nouvelle fenêtre) décrit une migration de la couche réseau et le préchargement de requêtes critiques avant l’exécution du bundle JavaScript. L’intégration traite aussi authentification et certificate pinning. Les gains publiés concernent cette application ; ils ne constituent pas une estimation pour tous les projets React Native.

Le cas intéressant est une donnée déjà prévisible au lancement : profil courant, configuration ou contenu de l’écran initial. Démarrer plus tôt ne rend pas le serveur plus rapide ; cela réduit le temps pendant lequel réseau et initialisation s’attendent inutilement.

Garder le préchargement dans le bon compte

Une optimisation de startup doit conserver les garanties fonctionnelles. Au logout, au changement d’utilisateur ou après expiration d’un jeton, une réponse préchargée ne doit pas alimenter le mauvais écran. Définir précisément ce qui peut être partagé, ce qui doit être invalidé et qui possède la requête évite les doubles appels comme les données périmées.

Tester un lancement connecté, un lancement déconnecté et un démarrage hors ligne est plus instructif qu’un benchmark unique avec cache chaud. Ajouter un cas où l’utilisateur change de compte pendant la préparation de la requête.

Mesurer le parcours complet

Une trace utile sépare lancement natif, disponibilité du JavaScript, début et fin de requête, puis premier état interactif avec les données. Si seul le début de requête avance, vérifier que l’écran final devient réellement utilisable plus tôt.

L’adoption demande un nouveau build natif et une validation des chemins réseau propres à l’application. Commencer sur une requête critique isolée limite le risque et permet de revenir au comportement précédent.

Un de ces sujets se pose dans votre app ? Un senior du collectif peut en parler avec vous.