React Hebdo #90: JSX, Tinybase, Dioxus, Owl, useWorkerizedReducer, Perf, TypeScript, CSS...
⚠️ IMPORTANT: ma newsletter LinkedIn est arretée
🔗Abonnez-vous sur ReactHebdo.fr 🇫🇷
------------------------------------------------------------------------------
Bonjour à tous!
Newsletter en retard cette semaine! J'ai de gros problèmes de connexion internet 😅 avec le retard, l'article tant attendu Remix vs Next.js vient d'être publié: je commente ça pour la semaine prochaine ;)
Une semaine assez variée, avec des articles React sympas et quelques nouveaux outils.
Parcel CSS qui réutilise une lib Rust créée pour Firefox, c'est plutôt cool!
Très content de constater Node.js supporte maintenant Error Cause!
Bonne lecture et à bientôt.
🙏 Pour soutenir la newsletter 🙏:
React
On aime React pour sa proximité avec JavaScript: avec JSX pas besoin d'apprendre un nouveau langage de templating spécifique au framework. Cependant il faut reconnaitre qu'il y a quelques pièges à éviter 😅 Cet article en est un très bon résumé.
Surma (Google) nous propose d'utiliser un Service Worker pour créer un reducer React (avec possibilité de code async). Ceci est réalisé de manière performante puisqu'il utilise postMessage et des patchs json pour la communication. Le support navigateur a l'air correct (Firefox a besoin d'un polyfill). A voir quels sont les cas d'usage 🤷♂️.
Reflexions sur les limites actuelles du typage de bout avec Next.js. Il y a un risque de désynchro entre getServerSideProps et les props du composant. Trop de boilerplate à écrire, et un helper InferGetServerSidePropsType qui ne fonctionne pas toujours comme on l'espère. Mentionne une feature TypeScript très attendue par tous les frameworks: la possibilié de typer un module. Présente d'autres solutions comme Blitz, Server Components ou tRPC. Ce dernier me plait bien (voir aussi le boilerplate zart).
Une nouvelle base de donnée réactive pour les données structurées (en tableau, comme SQL ou normalizr), qui dispose aussi d'un package d'intégration React performant, avec des hooks comme useCell. Une petite lib en taille, mais pas mal de features: indexes, relationships, undo/redo…
Extras:
Recommandé par LinkedIn
React-Native
Cette nouvelle solution propose de lancer nativement vos écrans React-Native, prendre des screenshots, et de les comparer visuellement avec les screenshots précédent stockés dans un dossier ./owl, en produisant un rapport. Tout cela s'intègre facilement avec Jest.
Super content de voir le visual regression testing se développer pour React-Native, ça manque vraiment! Voir aussi Storybook React-Native-Web qui peut permettre une intégration avec Chromatic, mais nécessite une conversion web.
Extras:
💸 Jobs
Sponsorise React Hebdo pour publier ton offre d'emploi
Nabla: Front-end engineer React senior - Paris - 55k-90k
Nabla construit une plateforme de médecine asynchrone (chat sans rendez-vous + appel vidéo si besoin), en automatisant un maximum de tâches répétitives pour que les médecins se concentrent sur le soin et que le service reste accessible à tous.
Ils ont levé 17M€, remporté un award Google Play Best Apps of 2021 et viennent de lancer la première offre payante dédiée à la santé des femmes.
Les fans de hooks React et de Typescript se sentiront à la maison, ainsi que les amateurs de GraphQL, Tailwind, Vite ou Next.js. Pas mal de technos sympa à découvrir (WebRTC et codegen notamment)
Paris 3ème, remote possible, 55k-90k en fonction de l'expérience, + BSPCE.
Cajoo: Dev & Architecte Fullstack - Remote - 40-90k€ (+BSPCE)
Cajoo veut créer le supermarché de demain 🛒 Nous sommes présents dans 10 villes en France et suite à un investissement de 40M$ de Carrefour nous étoffons l'équipe tech pour créer la stack tech du futur du retail. Les squads s'insèrent dans les 3 streams:
Notre code est typé de bout en bout avec Hasura en backend qui génère des endpoints GraphQL que nous consommons en frontend avec Apollo et un typing fort via Typescript.
Divers
Un nouveau parser, compiler et minifier CSS écrit en Rust, qui réutilise rust-cssparser de Firefox. Surperforme ses concurrents (même esbuild) en terme de vitesse et de taille du CSS émis. Ce nouvel outil est intégré au bundler Parcel, mais peut aussi être utilisé en standalone, en Rust ou JavaScript (Webpack loader?), et même Deno ou web (WASM).
Un nouveau framework en Rust fortement inspiré de React (hooks, VDOM, RSX…), fortement typé, performant, cross-platform (web, mobile, desktop, SSR). L'adoption semble facilitée pour les devs React/TypeScript.
J'ai regardé un peu le support cross-platform mais je n'ai pas encore très bien compris comment ça marche. On parle de performances natives mais en même temps ça a l'air de se baser sur Tauri qui si je ne me trompe pas repose sur des WebViews.
Extras:
React Expert | Tech Lead | Frontend Architect
2 ansJ’ai eu un petit sursaut d’excitation en voyant « useWorkerizedReducer » 😀 Cas typique d’usage potentiel: plutôt que de bloquer/surcharger le thread principal lors d’un upload, toutes les computations(par exemple en faisant du multipart upload sur S3) et l’upload se feraient dans un worker et le reducer permettrait de récupérer facilement la progression ou les differents status/messages pour le main thread. Pour l’avoir déjà implémenté, les gains de perfs sont très impressionnants si c’est bien fait. Mais l’implémentation est compliquée : Comlink(google) est une bonne lib pour faciliter les choses mais un hook peut simplifier davantage… à suivre de près ;)
Développeur Application Mobile React Native ⚛️ iOS 📱et TypeScript
2 ansToujours une bonne source de veille technologique ! Merci Sébastien !