Aller au contenu
Toutes les notes

400 Ko de JavaScript juste pour écrire "il y a 3 jours"

Jérémy Magrin

Développeur React Native Freelance Senior · Expo · iOS & Android

in
Parce que Hermes, le moteur de React Native, ne sait pas le faire Ni compter 1 message contre 2 messages, ni lister mardi, mercredi et jeudi dans la langue de ton user Quatre APIs Intl standard manquent à l'appel, PluralRules, RelativeTimeFormat, ListFormat et Locale Du coup tout le monde bouche le trou avec les polyfills FormatJS Ces polyfills tournent sur le thread JS à chaque formatage, et ta liste de notifs rame J'ai attaqué le problème par en dessous hermes-intl réimplémente ces quatre APIs en natif, un coeur Rust posé sur ICU4X, la lib i18n d'Unicode, exposé à JavaScript par un TurboModule C++ Tu l'installes, tu ajoutes un import tout en haut de ton entry file, et c'est fini i18next, react-intl et Luxon le prennent sans changer une ligne de ton code Les chiffres, mesurés sur un Pixel 8a - un select de pluriel, 1,3 µs contre 672 µs avec FormatJS - jusqu'à 800 fois plus rapide sur PluralRules et RelativeTimeFormat - un écran de notifs qui s'ouvre deux fois plus vite - 838 des 842 tests officiels test262 au vert, sortie identique au byte sur iOS et Android Les limites, parce qu'il y en a React Native 0.86 minimum, New Architecture et Hermes, build de dev Expo uniquement Je l'ai publiée il y a quelques jours Six heures plus tard, un ami m'avait déjà ouvert trois bugs précis que mes propres tests laissaient passer Patchés et republiés le soir même Et la meilleure correction de la semaine, ça a été de supprimer quinze lignes C'est open source, le lien est en premier commentaire Jette un oeil, teste-le et dis-moi ce que tu en penses Tu traînes encore les polyfills FormatJS, ou tu passes au natif ?

Lire sur LinkedIn

Pour aller plus loin

Qui écrit

J'aide startups et scale-ups à concevoir, construire et faire évoluer leurs applications mobiles iOS et Android. Je travaille au quotidien avec React Native, que je pratique depuis sa sortie en 2015, ainsi qu'avec Expo, React.js et TypeScript. J'interviens du MVP à la mise en production sur l'App Store et Google Play, jusqu'à l'optimisation fine des performances et la structuration des équipes techniques.

Expert React Native freelanceDéveloppeur Expo freelanceAudit de performance React Native

Parlons-en

Un projet en tête ?

Réponse garantie en moins d'une heure, et trente minutes d'audit offertes en visio.

M'écrireMaltLinkedIn

Emailcontact@magrin.fr

Téléphone+33 6 73 12 19 30

LocalisationParis, France · full remote