Le tueur secret de React Native de Snapchat

Depuis 8 ans, Snapchat a secrètement construit un cadre pour remplacer React Native. Maintenant que c’est rendu public, la grande question est de savoir s’il est déjà obsolète.

Stork.AI
Hero image for: Le tueur secret de React Native de Snapchat
💡

TL;DR / Key Takeaways

Depuis 8 ans, Snapchat a secrètement construit un cadre pour remplacer React Native. Maintenant que c’est rendu public, la grande question est de savoir s’il est déjà obsolète.

Le Coup de Théâtre : Huit Ans en Préparation

Huit ans après avoir discrètement expédié son code à des centaines de millions d'utilisateurs, Valdi est enfin sorti de l'ombre. Le framework multiplateforme développé en interne par Snapchat, qui n'était au départ qu'une expérience interne pour assurer la fluidité des Stories sur les vieux téléphones Android, est désormais un projet open-source promettant de bouleverser la façon dont les applications « natives » sont conçues.

Au cœur de sa proposition, Valdi propose un argument simple mais percutant : écrivez votre application en TypeScript, et expédiez-la sous forme de code véritablement natif sur iOS, Android et macOS. Pas de WebViews, pas de moteur JavaScript à l'exécution, pas de transfert de JSON entre les threads. Votre interface utilisateur aromatisée au JSX se compile en vues natives de la plateforme, avec des mises en page pilotées par Yoga et des pixels gérés par Skia.

Les piles traditionnelles multiplateformes telles que les premières versions de React Native dépendaient d'un pont JavaScript qui faisait passer des messages entre le fil JS et la couche native, souvent des centaines de fois par image. Chaque mise à jour de prop, geste ou changement de mise en page devait franchir cette frontière, introduisant de la latence, des saccades et une surcharge mémoire. Valdi contourne toute cette architecture en supprimant le pont au moment de la compilation.

Au lieu d'un environnement d'exécution JS de longue durée, Valdi s'appuie sur Bazel pour orchestrer la compilation TypeScript directement en modules natifs. Les mises en page utilisent le moteur C++ Yoga pour un comportement Flexbox cohérent, tandis que Skia rend des graphiques 2D haute performance sur plusieurs plates-formes. Le résultat se comporte comme une application native de premier ordre : des vues UIKit et AppKit sur les plates-formes Apple, de véritables vues Android du côté de Google.

L'expérience développeur vise à égaler ou surpasser les configurations modernes de React Native et Flutter. Valdi prend en charge le rechargement à chaud instantané, permettant aux ajustements de l'interface utilisateur d'apparaître en quelques millisecondes, et s'intègre à VS Code pour un débogage complet, incluant les points d'arrêt et le profilage des performances. Les équipes de Snapchat utilisent cette boucle depuis des années pour déployer des fonctionnalités de caméra, de chat et de Discover sans avoir à passer à Swift ou Kotlin pour chaque changement.

La sortie en open-source a déclenché exactement la réaction que l'on pourrait attendre en 2025 : une excitation tempérée par du soupçon. Les premiers utilisateurs louent la sensation de « React, mais en fait natif » et la promesse d'une base de code TypeScript unique couvrant les téléphones et les ordinateurs de bureau. Les sceptiques soulignent les imperfections de l'installateur, le contrôle opaque de la feuille de route par Snapchat, et une question directe planant sur chaque problème GitHub : pourquoi parier sur Valdi alors que React Native et Flutter dominent déjà ?

Un Fantôme dans la Machine : Pourquoi Valdi est Né

Illustration : Un Fantôme dans la Machine : Pourquoi Valdi est Né
Illustration : Un Fantôme dans la Machine : Pourquoi Valdi est Né

React Native en 2017 ressemblait davantage à une expérience prometteuse qu'à une base pour un réseau social axé sur la caméra avec plus de 400 millions d'utilisateurs quotidiens. Le framework de Facebook était livré sans prise en charge du bureau, avec des outils encore mal développés et un modèle d'exécution qui poussait chaque mise à jour de l'interface utilisateur à travers un pont JavaScript fonctionnant dans un thread séparé. Pour les entreprises pariant leur expérience utilisateur entière sur des interactions fluides à 60 ips, ce pont était une responsabilité, pas un atout.

Chaque geste, défilement et animation dans les premières versions de React Native devait sérialiser les props et les événements en charges utiles de type JSON, les envoyer à travers le pont, puis les désérialiser sur le côté natif. Ce coût de marshalling se traduisait par des saccades, des images perdues et des conditions de concurrence difficiles à déboguer. Ajoutez un runtime JS gourmand en mémoire sur des vues natives, et vous aviez deux mondes synchronisant constamment l'état au lieu d'une application cohérente.

La direction produit de Snapchat a rendu ces compromis inacceptables. L'application s'appuyait sur des vidéos en plein écran, une navigation gestuelle complexe et des transitions d'interface éphémères qui pénalisaient toute augmentation de la latence. Les ingénieurs avaient besoin de temps d'image prévisibles, de limites de mémoire strictes sur les téléphones Android bas de gamme, et d'un code d'interface utilisateur se comportant comme du Swift ou du Kotlin natif tout en permettant aux équipes de fonctionnalités d'itérer à la vitesse de JavaScript.

React Native à cette époque a également omis des classes de plateforme entières qui intéressaient Snapchat. Il n'y avait pas de récit crédible pour macOS, pas de compilation vers les vues AppKit, et aucune voie pour réutiliser la même couche d'interface utilisateur sur iOS, Android et un client de bureau interne. La véritable concurrence demeurait théorique ; le travail en arrière-plan était toujours canalysé à travers une boucle d'événements JS unique déjà surchargée de logique métier et de mise en page.

Ainsi, Snap a pris une décision stratégique : ne plus attendre que l'écosystème mature. Au lieu de parier sur la feuille de route de React Native, l'entreprise a investi dans Valdi, un framework orienté TypeScript qui se compilait directement en code natif et communiquait avec le système d'exploitation sans pont. Bazel orchestrait des builds multiplateformes, Yoga standardisait la mise en page, et Skia gérait le rendu, mais les décisions architecturales provenaient des propres douleurs de performances de Snap.

Cette solution interne a permis à Snapchat d’optimiser son flux de travail exact : caméra rapide, fils à défilement infini et animations lourdes, des années avant que React Native ne bénéficie de Fabric, d’architectures sans pont ou d’ambitions sérieuses en matière de bureau.

Sous le Capot : Déconstruire le Moteur de Valdi

Le nouveau cadre de Snapchat cache un moteur industriel surprenant. Sous l'interface pastel et l'icône fantôme se trouve un pipeline construit autour de Bazel, Yoga et Skia—le même type de machinerie robuste qui alimente les backends à l'échelle de Google et la pile graphique de Chrome. Valdi transforme cette pile en une chaîne de production frontale pour iOS, Android et macOS.

Bazel se trouve au centre en tant qu'orchestrateur de build. Il traite le TypeScript, les bundles d'actifs et le code natif, puis produit des binaires spécifiques à la plateforme avec des builds reproductibles et un caching agressif. Ce choix permet à Valdi de passer d'un sélecteur de lentilles prototype à une application de plusieurs millions de lignes sans noyer les ingénieurs dans des configurations Xcode ou Gradle fragiles.

Le layout utilise Yoga, le moteur Flexbox éprouvé de Facebook. Plutôt que de réimplémenter le layout trois fois, Valdi fournit à Yoga un arbre indépendant de la plateforme qui décrit les propriétés flex, les marges et l'alignement. La même logique de layout est utilisée par UIKit, Android Views et AppKit, ce qui permet de maintenir une cohérence pixel de l'interface utilisateur de Snapchat à travers les téléphones, les tablettes et les ordinateurs de bureau.

Le rendu repose sur Skia, le moteur graphique 2D derrière Chrome et Android. Valdi peut mapper des composants de haut niveau sur des vues natives ou dessiner directement sur des surfaces Skia pour des contrôles personnalisés, des shaders et des animations. Cette stratégie hybride lui permet de mélanger des boutons standards avec une interface utilisateur hautement sur mesure pour l'AR, sans avoir à recourir aux vues web.

D'un point de vue développeur, tout commence par des classes TypeScript avec JSX. Vous écrivez quelque chose qui ressemble étrangement à un composant React : des méthodes comme onCreate et onRender renvoyant des balises JSX. Bazel compile ensuite TypeScript en une représentation intermédiaire, transforme JSX en un arbre de vues, et connecte cet arbre aux hiérarchies de vues natives de la plateforme.

En avance, Valdi génère des liaisons natives pour chaque propriété, événement et style. Cela signifie pas de réflexion dynamique ni de transport JSON à l'exécution. Les informations de type circulent de TypeScript vers Swift, Kotlin et les en-têtes C++, permettant au compilateur de mettre en ligne les chemins chauds et de supprimer le code mort.

C++ est au cœur du moteur de mise en page et de différenciation. Les chemins critiques — la réconciliation des arbres, les appels Yoga, le dispatch de dessin Skia — s'exécutent en C++ sur le thread principal avec un minimum de marshalling. Au lieu de sérialiser les props à travers un pont, Valdi passe des pointeurs bruts et des structures compactes, réduisant ainsi le coût par image à des microsecondes.

Comparez cela aux environnements d'exécution basés sur JavaScript comme les premières versions de React Native. Ces stacks faisaient passer la mise en page et la logique par un pont JS, supportant un coût de sérialisation chaque fois qu'un bouton se déplaçait ou qu'une liste défilait. Le modèle de Valdi, basé sur une compilation anticipée, échange la flexibilité d'exécution contre une performance déterministe et une pression de GC bien plus faible.

Cette architecture ressemble davantage à un moteur de jeu qu'à un simple wrapper webview. Le rechargement à chaud fonctionne toujours : Bazel et le runtime échangent les modules TypeScript mis à jour dans le shell natif, mais l'artéfact final déployé fonctionne sans VM JavaScript du tout. Pour ceux qui souhaitent étudier les entrailles, Valdi - Dépôt GitHub Officiel expose l'intégralité du graphe de construction, le noyau C++ et les outils TypeScript.

Le Doppelgänger de React : Un Visage Familier

Les développeurs React peuvent ouvrir un fichier Valdi et presque oublier qu'ils ont changé de framework. Les composants ressemblent à de vieux composants de classe React, avec des méthodes de cycle de vie telles que `onCreate` et `onRender` au lieu de `componentDidMount` et `render`. L'état réside sur `this`, les méthodes sont accrochées à la classe, et l'interface utilisateur est retournée depuis `onRender` sous forme de JSX.

JSX dans Valdi ne peint pas les nœuds du DOM virtuel. Il se compile directement en vues natives iOS, Android et macOS, avec Yoga gérant la mise en page. Les développeurs écrivent des propriétés de style Flexbox comme `flexDirection`, `justifyContent` et `alignItems` qui ressemblent à du CSS, mais le pipeline les transforme en instructions de mise en page bas niveau.

Une mise en page Valdi pour un élément de fil peut utiliser JSX avec des propriétés telles que `padding`, `margin` et `borderRadius` sur des composants qui correspondent à des vues natives. En coulisses, Yoga calcule les positions et les tailles de manière identique sur toutes les plateformes, tandis que Skia rend des graphiques 2D lorsque des dessins personnalisés sont nécessaires. Le résultat se comporte comme un arbre React mais fonctionne comme un moteur d'interface utilisateur en C++.

Snapchat a clairement ciblé les ingénieurs web qui parlent déjà TypeScript et JSX. Au lieu d'apprendre UIKit, Jetpack Compose et AppKit, les développeurs continuent à écrire des composants, des propriétés et des décorateurs. Ce choix de conception abaisse la barrière pour les équipes JavaScript et front-end afin de déployer des fonctionnalités natives sans réécrire leur modèle mental.

L'expérience développeur est au cœur de l'argumentaire de Valdi. Le rechargement instantané permet d'envoyer les modifications TypeScript à un simulateur ou un appareil en cours d'exécution en quelques millisecondes, évitant ainsi des reconstructions natives complètes qui peuvent prendre 30 à 90 secondes dans Xcode ou Android Studio. L'état survit souvent aux rechargements, ce qui rend l'ajustement de la mise en page ou du comportement plus proche de l'édition d'une application web.

Le support complet de débogage de VS Code achève le tour de passe-passe de React. Les ingénieurs peuvent définir des points d’arrêt dans TypeScript, inspecter des variables et parcourir la logique des composants Valdi pendant que l’application compilée s’exécute sur iOS, Android ou macOS, brouillant la frontière entre les outils web et l’exécution native.

Vitesse native sans douleur native

Illustration : Vitesse native sans douleur native
Illustration : Vitesse native sans douleur native

Les frameworks natifs se concentrent sur le recyclage des cellules de table et des mises en page composables ; Valdi intègre cette mentalité dans chaque composant. Au lieu de laisser la réutilisation aux écrans individuels, Valdi maintient un pool global de vues natives dont n'importe quelle liste, grille ou carrousel peut s'emparer et retourner. Cela signifie moins d'allocations, moins de roulement dans l'allocateur et moins de pression sur le ramasse-miettes sur Android.

Le recyclage automatique des vues se produit au niveau du cadre, et non en tant que modèle à se souvenir d'implémenter. Lorsqu'un composant défile hors de l'écran, Valdi le détache, réinitialise ses propriétés et le remet dans le pool. Les nouveaux éléments tirent de ce pool, donc même un flux de 10 000 éléments réutilise un petit ensemble fixe d'instances de vues natives.

Le rendu sensible au viewport va encore plus loin. Valdi suit quels composants intersectent le viewport visible et ne monte que ceux-ci, plus une petite marge en haut et en bas. Tout ce qui se trouve en dehors de cette fenêtre suspend les mises à jour et peut même se déshydrater en une représentation légère.

Les flux de défilement infini deviennent la norme, et non un projet de performance. Un rail Discover de style Snapchat ou un fil vertical de style Spotlight peuvent diffuser du contenu sans limites tout en affichant seulement quelques dizaines de vues en direct à tout moment. Associé au rendu Skia, la performance de défilement atteint près de 60 fps sur du matériel Android de gamme moyenne sans réglages personnalisés.

Les cycles de rendu des composants indépendants offrent à Valdi un autre avantage. Chaque composant possède sa propre boucle de rendu, ce qui signifie qu'une mise à jour d'un enfant ne déclenche pas automatiquement un diff du parent, et vice versa. Cela rompt la "cascade de mise à jour" qui affecte les arbres mal optimisés de React et React Native.

Le planificateur de Valdi peut prioriser les mises à jour basées sur l'entrée—comme un geste de glisser ou une saisie de texte—par rapport aux re-rendus en arrière-plan de faible priorité. Une bulle de message de chat s'animant à l'écran ne force pas toute la liste de conversation à se réconcilier. Le résultat : moins de passages de mise en page, moins d'appels de mesure, et un budget de cadre plus prévisible.

Face à une application native moderne et optimisée développée en SwiftUI ou Jetpack Compose, les gains théoriques de Valdi proviennent de trois couches simultanément. Elle combine : - Mise en commun des vues à l'échelle mondiale - Montage sensible au viewport - Cycles de rendu de composants découplés

SwiftUI peut rendre les listes de manière paresseuse, et Compose peut recycler en coulisses, mais les équipes de développement d'applications continuent à réimplémenter des motifs comme la réutilisation des cellules, les fenêtres de pagination et les mises à jour régulées. Valdi centralise ces décisions au sein du framework. Sur le papier, cela permet à une petite équipe de livrer un fil d'actualité multiplateforme qui se comporte comme un natif finement ajusté—sans écrire un seul recycleur personnalisé ou un algorithme de diff.

Le monde a avancé : La revanche de React Native

React Native en 2025 ressemble à peine au framework que Snapchat a évalué il y a huit ans. Meta a supprimé le célèbre pont JavaScript, le remplaçant par un cœur C++ unifié qui communique directement avec les vues natives. La latence a diminué, l'utilisation de la mémoire s'est stabilisée, et le « jank » est passé d'une assumption par défaut à un bug de performance.

Fabric, l'architecture de rendu moderne de React Native, a effectué la majeure partie de ce travail lourd. Au lieu de regrouper les messages via un pont, Fabric maintient un arbre unique pour React et le natif, permettant ainsi un rendu concurrent et une priorisation fine. Les fonctionnalités concurrentes de React 18 s'intègrent désormais directement dans les interfaces mobiles, de sorte que les mises à jour en arrière-plan ne bloquent plus le défilement ou l'entrée tactile.

Sous Fabric, la mise en page repose toujours sur Yoga, mais avec une intégration plus étroite. Les calculs de mise en page s'exécutent en C++, étant partageables entre iOS, Android et Windows, et React Native peut pré-calculer ou écarter des travaux lorsque les composants sortent du champ de vision. Cette architecture répond directement à la critique du "pas de véritable concurrence" qui a initialement poussé Snapchat vers Valdi.

Microsoft a discrètement comblé l'une des plus grandes lacunes de React Native : le support de bureau de première classe. React Native macOSOS et React Native Windows sont désormais proposés en tant que produits pris en charge, et non plus comme des projets secondaires. Les applications complémentaires d'Office, Teams et Xbox s'appuient sur ces technologies, prouvant que React Native peut cibler le bureau sans recourir à Electron ou aux vues web.

La parité des fonctionnalités entre les plateformes semble désormais remarquablement complète. Une seule base de code peut toucher iOS, Android, Windows et macOS en utilisant des composants partagés, des menus natifs et des API d'accessibilité au niveau du système. Les équipes de développement qui maintenaient autrefois trois ou quatre piles d'interface utilisateur se regroupent désormais régulièrement en une seule, plus une fine couche de liaison entre les plateformes.

La maturité de l'écosystème pourrait être l'arme la plus puissante de React Native contre Valdi. Expo a évolué en une plateforme intégrée avec : - Fast Refresh pour des mises à jour de code quasi instantanées - Mises à jour OTA via EAS Update - SDK préconstruits pour l'appareil photo, les notifications et les capteurs

Autour de ce noyau, un vaste marché de bibliothèques—React Navigation, Reanimated, React Query, Lottie, et bien d'autres—couvre la plupart des besoins des applications. La documentation s'est améliorée, le support TypeScript s'est renforcé, et des entreprises comme Shopify, Coinbase et Walmart expédient désormais des applications de production sur React Native. Pour quiconque compare les options, la documentation officielle de Valdi se mesure désormais à un mastodonte plutôt qu'à un outil expérimental.

Un Début Difficile : Le Paradoxe de l'Expérience Développeur

Installer Valdi aujourd'hui ressemble moins à la prise en main d'un SDK poli qu'à l'adhésion à un pilote d'outils internes. Officiellement en version "bêta", le cadre est livré avec des imperfections qui apparaissent dès que vous exécutez le premier `valdi init`. Sur macOS, vous jonglez avec Bazel, les SDK Android, les toolchains Xcode et les versions de Node avant même de voir un écran "Bonjour, le monde".

Les développeurs rapportent que l'installateur de Valdi détecte mal ou installe automatiquement les mauvaises versions de dépendance. Le guide de Better Stack a rencontré des outils de construction Android non concordants et des configurations TypeScript avant de rendre une seule vue. Pour un framework promettant une « vitesse native, une vélocité web », cette configuration fragile compromet la promesse principale.

Les premiers adopteurs rencontrent également des pièges particulièrement spécifiques. Les noms de projets ne peuvent pas contenir de traits d'union ; `my-app` ne fonctionne pas alors que `my_app` fonctionne parfaitement, une contrainte qui semble plus être une convention interne qu'une décision de produit destinée au public. Les suppositions de chemin et les valeurs par défaut codées en dur fuitent de la monorepo de Snapchat vers les ordinateurs portables des autres.

Sur le papier, Valdi propose une expérience développeur haut de gamme : rechargement instantané, débogage complet dans VS Code et compilations multiplateformes qui « fonctionnent tout simplement ». En pratique, la version bêta ressemble davantage à la configuration de votre propre chaîne d'outils autour d'un moteur puissant mais capricieux. Vous passez autant de temps à apaiser Bazel et Gradle qu'à écrire du JSX.

La documentation expose le même paradoxe. Les guides officiels couvrent le chemin idéal—configuration de base, vues simples, quelques hooks de cycle de vie—mais deviennent rapidement insuffisants dès que vous vous aventurez dans des modules natifs personnalisés, une utilisation avancée de Skia ou l'intégration CI. De nombreux cas limites ne se trouvent que dans la mythologie interne de Snapchat ou dans des gists communautaires éparpillés.

Valdi a clairement besoin de plus de "tests de résistance" en dehors des murs de Snap. La décennie de problèmes GitHub, de réponses Stack Overflow et de recettes Expo de React Native n'existe pas encore ici, et vous ressentez cette absence à chaque fois qu'une erreur Bazel obscure bloque votre compilation.

Un Géant Sans Armée

Illustration : Un géant sans armée
Illustration : Un géant sans armée

Un cadre unique, aussi élégant soit-il, ne peut rivaliser avec un avantage d'un million de développeurs. Valdi est livré avec des fonctionnalités internes impressionnantes, mais presque sans écosystème. Pas de conscience collective sur Reddit, pas de modèles éprouvés, pas une décennie de cas particuliers étranges déjà résolus par quelqu'un à Bangalore à 3 heures du matin.

L'arme la plus puissante de React Native n'est désormais ni Fabric, ni Yoga, ni Expo ; c'est la gravité. Une immense communauté mondiale produit d'innombrables tutoriels sur YouTube, des cours sur Udemy et des articles sur Medium, ainsi que des milliers de packages open source. Le soutien d'entreprises telles que Meta, Microsoft, Shopify et d'autres amplifie cet élan avec des feuilles de route à long terme et des équipes rémunérées qui corrigent des bogues que la plupart des gens ne verront jamais.

Recherchez « notifications push React Native » et vous serez noyé dans les options. Recherchez « notifications push Valdi » aujourd'hui et vous obtiendrez principalement la documentation de Snapchat et quelques dépôts expérimentaux. Pour les équipes du monde réel, cette différence détermine si un sprint est livré à temps ou s'interrompt pendant que quelqu'un reverse-engineers un pont natif.

Les développeurs s'appuient sur Stack Overflow autant que sur la documentation officielle. Avec Valdi, il y a presque pas de réponses acceptées, pas d'extraits canoniques, pas de fils de discussion vieux de cinq ans expliquant pourquoi un agencement éclate sur un skin OEM Android spécifique. Chaque problème risque de devenir un projet de recherche de zéro à un au lieu d'un simple copier-coller d'un coche verte.

Les bibliothèques tierces constituent l'échafaudage du développement d'applications modernes. Les développeurs React Native s'attendent à : - Des piles de navigation avec un lien profond intégré - Des enveloppes SDK d'analytique pour Amplitude, Segment, Mixpanel - Des composants de paiements, d'authentification et de cartes de Stripe, Auth0, Google, et d'autres encore.

Valdi n'offre presque rien de cela aujourd'hui, obligeant les équipes à revenir à des intégrations natives personnalisées et à des liaisons TypeScript pour chaque service qu'elles utilisent.

Les frameworks d'entreprise unique comportent toujours un risque d'existence. Si les priorités de Snapchat changent — un nouveau redesign, un autre pari sur une plateforme — Valdi pourrait silencieusement stagner tandis que ses problèmes sur GitHub s'accumulent. Pour une startup choisissant une stack en 2025, parier sur un framework qui n'a effectivement qu'un seul utilisateur principal en production ressemble moins à l'adoption d'un outil qu'à l'attachement de sa feuille de route à la stratégie produit de quelqu'un d'autre.

Pourquoi Maintenant ? Décryptage du Pari de Snapchat

Huit ans d'utilisation interne offrent à Snapchat un luxe rare : une infrastructure éprouvée avant l'examen public. Valdi a discrètement alimenté les expériences fondamentales de Snapchat sur iOS, Android et macOS, ce qui indique qu'une des motivations est simple : le cadre a finalement franchi un seuil de maturité où l'open source présente plus d'avantages que de risques.

La sortie maintenant s'inscrit également dans un mouvement plus large de l'industrie vers des outils prioritaires TypeScript. Valdi s'appuie fortement sur TypeScript, JSX, les décorateurs, Bazel, Yoga et Skia, une pile qui semble désormais courante plutôt qu'expérimentale, facilitant ainsi la compréhension et l'extension pour les développeurs extérieurs sans assistance de Snapchat.

Théorie un : Snapchat a attendu que Valdi ressemble à un produit fini, et non à un projet de recherche. Huit ans d'optimisations - regroupement des vues globales, recyclage automatique des vues, rechargement à chaud mesuré en millisecondes - ont permis à l'entreprise de présenter Valdi comme une alternative crédible dans un monde où le site officiel de React Native fait déjà la publicité de Fabric, du rendu concurrent et des mises en page soutenues par Yoga.

Théorie deux : Snapchat souhaite bénéficier d'une aide gratuite pour construire un écosystème de composants moderne. Actuellement, Valdi est livré avec un ensemble relativement limité de primitives UI prêtes pour la production, comparé à l'océan de packages communautaires, aux SDK Expo et aux kits de design System proposés par des entreprises comme Microsoft et Shopify.

Le crowdsourcing de ce manque a un sens stratégique. En open source, Snapchat peut inciter les agences, les startups et les équipes internes d'autres entreprises à contribuer tout, des contrôles de formulaire basiques aux widgets d'accessibilité complexes, tout en gardant le contrôle sur le moteur d'exécution et le moteur de mise en page.

Les bibliothèques de composants vieillissent aussi rapidement. Les nouvelles versions des systèmes d'exploitation, les tendances de design et les règles d'accessibilité requièrent des mises à jour constantes sur trois plateformes. Déléguer ce travail aux contributeurs open source permet à Snapchat de se concentrer sur la performance et l'intégration de la plateforme, plutôt que de refaire sans cesse l'apparence des boutons et des carrousels.

Théorie trois : c'est une stratégie de recrutement déguisée en altruisme. Les applications grand public à forte croissance se battent pour attirer des ingénieurs mobiles senior, et un cadre brillant et techniquement ambitieux qui compile TypeScript directement en vues natives envoie un signal clair sur la culture ingénierie de Snapchat.

La publication des internals de Valdi—pipelines Bazel, utilisation de Yoga, chemins de rendu Skia—fonctionne comme une pièce de portfolio vivante. Les ingénieurs qui s’intéressent au rendu de bas niveau, à la concurrence et aux chaînes d'outils ont désormais une raison de lire le code de Snapchat, de signaler des problèmes et, finalement, de répondre à l'email d'un recruteur.

Le Verdict : Valdi est-il votre prochain framework ?

La vitesse brute reste du côté de Valdi. Compiler TypeScript directement vers des vues natives, en évitant complètement les ponts JavaScript, permet d'obtenir des flux et des carrousels d'histoires d'une qualité équivalente à celle de Snapchat, qui restent fluides même sous des charges de défilement intense, grâce au recyclage automatique des vues et à un pool de vues global. Le moteur Fabric de React Native et TurboModules ont comblé une grande partie de cet écart, mais ils dirigent encore plus de logique à travers un runtime géré et une couche d'abstraction tentaculaire.

React Native dispose d'un écosystème que Valdi n'a tout simplement pas. Expo, React Navigation, React Query, Reanimated, et des milliers de packages couvrent tout, de l'authentification au montage vidéo, soutenus par des millions de développeurs et des applications en production chez Meta, Microsoft, Shopify, et Coinbase. Valdi est livré avec un ensemble de composants minimaliste, une documentation sparse, et un installateur bêta qui peut mal détecter les dépendances ou se bloquer sur quelque chose d'aussi trivial qu'un trait d'union dans un nom de projet.

Les équipes qui devraient sérieusement envisager Valdi se trouvent à l'extrême en matière de performance et de contrôle. Si vous développez une application sociale riche en contenus, un client de trading à haute fréquence ou un éditeur graphique où chaque image perdue est préjudiciable, le rendu basé sur Skia et les mises en page natives de Valdi peuvent justifier cette douleur. Vous devez également disposer d'une équipe qui maîtrise déjà Bazel, ainsi que les internals natifs d'iOS/Android/macOSOS, et qui peut se permettre de corriger une chaîne d'outils encore jeune au lieu de soumettre un problème sur GitHub et d'attendre.

La plupart des autres équipes devraient rester avec React Native. Les startups, les développeurs indépendants et les équipes produit qui se précipitent vers leur MVP se soucient davantage de la livraison de fonctionnalités que de raser 5 à 10 ms sur la mise en page. Les outils Expo de React Native, Fast Refresh, les modèles CI matures et les bibliothèques éprouvées réduisent les risques et les frictions dans le recrutement d'une manière qu'aucun framework de l'ère 1.0 ne peut égaler.

Valdi débarque en 2025 en tant qu'artefact fascinant d'une époque différente d'angoisse multiplateforme. Sa mission originale—une interface utilisateur haute performance, sans pont, priorisant TypeScript, sur iOS, Android et macOS—n'est plus unique alors que React Native, Flutter, et même SwiftUI associé à Kotlin Multiplatform envahissent le même espace. Techniquement, Valdi démontre qu'une petite équipe ciblée peut surpasser le statu quo ; stratégiquement, il pourrait devenir une arme de niche pour les entreprises dont les budgets de performance sont aussi agressifs que ceux de Snapchat.

Questions Fréquemment Posées

Quel est le cadre Valdi de Snapchat ?

Valdi est un framework d'interface utilisateur multiplateforme développé par Snapchat qui compile TypeScript et JSX directement en code natif pour iOS, Android et macOS, éliminant ainsi le besoin d'un pont JavaScript.

Pourquoi Snapchat a-t-il créé Valdi au lieu d'utiliser React Native ?

Snapchat a créé Valdi il y a 8 ans car React Native à l'époque avait des problèmes de performance à cause de son pont JavaScript, manquait de vraie concurrence et n'avait pas de support de bureau de premier ordre.

Quel est le principal avantage technique de Valdi ?

L'avantage principal de Valdi est sa performance. Il se compile directement en code natif et utilise des techniques avancées telles que le recyclage automatique des vues et le rendu sensible au viewport, ce qui peut conduire à des applications plus rapides et plus efficaces.

Quels sont les principaux risques d'utiliser Valdi pour un nouveau projet ?

Les principaux risques sont son manque d'une grande communauté, une documentation immature et l'incertitude du support à long terme de la part de Snapchat. En revanche, React Native est un écosystème mature bénéficiant d'un large soutien communautaire.

Frequently Asked Questions

Le Verdict : Valdi est-il votre prochain framework ?
La vitesse brute reste du côté de Valdi. Compiler TypeScript directement vers des vues natives, en évitant complètement les ponts JavaScript, permet d'obtenir des flux et des carrousels d'histoires d'une qualité équivalente à celle de Snapchat, qui restent fluides même sous des charges de défilement intense, grâce au recyclage automatique des vues et à un pool de vues global. Le moteur Fabric de React Native et TurboModules ont comblé une grande partie de cet écart, mais ils dirigent encore plus de logique à travers un runtime géré et une couche d'abstraction tentaculaire.
Quel est le cadre Valdi de Snapchat ?
Valdi est un framework d'interface utilisateur multiplateforme développé par Snapchat qui compile TypeScript et JSX directement en code natif pour iOS, Android et macOS, éliminant ainsi le besoin d'un pont JavaScript.
Pourquoi Snapchat a-t-il créé Valdi au lieu d'utiliser React Native ?
Snapchat a créé Valdi il y a 8 ans car React Native à l'époque avait des problèmes de performance à cause de son pont JavaScript, manquait de vraie concurrence et n'avait pas de support de bureau de premier ordre.
Quel est le principal avantage technique de Valdi ?
L'avantage principal de Valdi est sa performance. Il se compile directement en code natif et utilise des techniques avancées telles que le recyclage automatique des vues et le rendu sensible au viewport, ce qui peut conduire à des applications plus rapides et plus efficaces.
Quels sont les principaux risques d'utiliser Valdi pour un nouveau projet ?
Les principaux risques sont son manque d'une grande communauté, une documentation immature et l'incertitude du support à long terme de la part de Snapchat. En revanche, React Native est un écosystème mature bénéficiant d'un large soutien communautaire.
🚀Discover More

Stay Ahead of the AI Curve

Discover the best AI tools, agents, and MCP servers curated by Stork.AI. Find the right solutions to supercharge your workflow.

Back to all posts