Shopify quitte React Native pour Swift et Kotlin
Shopify reconstruit ses applications en Swift et Kotlin six ans après son pari sur React Native. Les agents de code ont fait assez du portage pour changer le calcul.
3 min de lecture

En chiffres
- to rebuild the Shop app, with 6 engineers
- 12 weeks
- smaller Android app, a 37% cut
- -109 MB
- fewer crashes, per Shopify
- 10x
- Android, React Native
- 4433ms
- Android, native
- 2233ms
- iOS, React Native
- 3200ms
- iOS, native
- 2466ms
Shopify reconstruit toutes ses applications mobiles en Swift et Kotlin, six ans après avoir déclaré React Native son avenir. L'annonce de l'entreprise, le 10 septembre 2026, met un motif au-dessus des autres : « LLMs changed one of the core assumptions behind our 2020 decision. »
Cette hypothèse portait sur le coût de construire deux fois la même fonctionnalité. React Native existait chez Shopify pour l'éviter. Les agents de code absorbent désormais assez de ce travail en double pour que l'arbitrage s'inverse.
Ce qui a changé dans le calcul
Shopify a adopté React Native en 2020 pour trois raisons affichées : ne plus construire deux fois les mêmes fonctionnalités, permettre aux développeurs de travailler d'un bout à l'autre de la pile, et passer moins de temps à courir après la parité. Cela a marché. InfoQ rapporte que les applications atteignaient des temps de chargement sous 500 millisecondes et plus de 99,9% de sessions sans plantage.
L'entreprise a même réaffirmé ce choix en janvier 2025, après une migration de cinq ans. Puis, selon son propre récit, les progrès des modèles fin 2025 ont été assez nets pour rouvrir la question.
InfoQ rapporte que Mustafa Ali, responsable du mobile, a réévalué cet engagement et conclu que le rapport bénéfice-coût de deux bases de code natives dépassait désormais celui d'une couche d'abstraction. Shopify dit franchement que le coût n'a pas disparu : les agents font maintenant « assez du travail d'implémentation, de transposition, de test et de relecture » pour qu'il ne tranche plus.
Une deuxième poussée est venue du framework. InfoQ et Shopify notent tous deux qu'un passage à la New Architecture de React Native approchait, ce qui aurait de toute façon exigé de larges reprises des modules natifs et du rendu.
Les chiffres de la reconstruction
Un ingénieur a validé l'approche en une semaine. Six ingénieurs ont ensuite reconstruit l'application Shop, plus de 300 écrans plus des widgets, une application Apple Watch et des raccourcis Siri, et l'ont livrée en 12 semaines.
| Mesure | React Native | Natif |
|---|---|---|
| Démarrage à froid Android | 4 433 ms | 2 233 ms |
| Démarrage à froid iOS | 3 200 ms | 2 466 ms |
| Stabilité des sessions | 99,5%+ | 99,95%+ |
| Taille de l'app Android | 293 Mo | 184 Mo |
| Taille de l'app iOS | 67 Mo | 68 Mo |
Android y gagne le plus : le démarrage a environ diminué de moitié, le téléchargement a maigri de 109 Mo, les builds de release sont 75% plus rapides, et le défilement du fil atteint 120 images par seconde. Les plantages ont baissé d'environ dix fois. iOS progresse moins, et l'application iOS a pris 1 Mo.
L'outillage qu'il a fallu construire d'abord
Ce qui mérite d'être copié n'est pas la décision mais l'échafaudage. Le récit de migration de Shopify décrit une extension d'agent de code nommée Pi, avec des sous-agents distincts pour examiner l'application source, documenter son comportement, planifier le travail par plateforme, implémenter les fonctionnalités et vérifier la parité.
L'équipe a aussi construit un outil de débogage nommé Tardis, qui donne à un agent un accès structuré aux événements, journaux et états d'une application en cours d'exécution. C'est ce qui a permis aux agents de contrôler leur propre travail. Ils comparaient captures d'écran et fenêtres d'événements des deux applications à des points de contrôle, en tenant compte des écarts normaux d'exécution.
Une règle a tenu le projet. Le principe affiché de Shopify était qu'« Android et iOS doivent être à parité fonctionnelle en permanence ». Et les contrôles ordinaires sont restés : linting, tests, analyse statique, contrôles de performance et relecture humaine.
Ce que cela signifie pour les développeurs
Lisez les pertes avant les gains. Passer au natif a coûté à Shopify les mises à jour à distance, parce que les versions natives passent par la revue des boutiques. Si votre stratégie de livraison repose sur un correctif déployé en une heure, c'est la ligne que cette décision dépense.
La leçon transposable est dans l'outillage, pas dans le framework. Les agents ont été utiles ici parce que Shopify leur a donné le moyen d'observer une application qui tourne et de comparer des comportements automatiquement. InfoQ rapporte le conseil qui en découle. Isolez le code de plateforme et d'interface de la logique métier stable, pour qu'un modèle teste les résultats sur un poste de travail plutôt que dans un simulateur. C'est le même schéma que derrière la réécriture en Rust de Bun assistée par IA, où les points de contrôle vérifiables comptaient plus que la qualité brute du modèle.
Ne lisez pas cela comme un verdict sur React Native. Shopify dit clairement que « native is the right choice for Shopify now, but React Native was the right choice for Shopify in 2020 ». InfoQ rapporte son conseil aux autres équipes : penser natif et React Native plutôt que choisir un camp. Une entreprise avec des applications de 300 écrans, six ingénieurs disponibles et son propre harnais d'agents n'est pas l'équipe médiane.
Si vous dépendez du travail open source de Shopify sur React Native, vérifiez son état. Skia et FlashList ont trouvé de nouveaux mainteneurs, et Restyle sera archivé d'ici fin 2026.
Sources
- Native is now the future of mobile at Shopify - Shopify Engineering
- Migrating Shop app from React Native to native - Shopify Engineering
- Shopify Drops React Native for Swift and Kotlin as AI Changes Cross-Platform Development Tradeoffs - InfoQ
Articles liés

Bun 1.4 met en production sa réécriture en Rust menée par l'IA
Bun 1.4 est la première version de production du runtime réécrit de Zig vers Rust : démarrage plus rapide et nouvelles API, mais les critiques comptent 13 044 blocs unsafe.

Swift 6.4 apporte l'async dans defer et fait de Swift Build la valeur par défaut
Swift 6.4 autorise le code asynchrone dans les blocs defer, ajoute les sélecteurs de module et un pont WebAssembly 40 fois plus rapide, et Swift Build devient le défaut du gestionnaire de paquets.

React 19.3 arrive avec View Transitions et Fragment Refs
React 19.3 est sorti le 9 septembre 2026. View Transitions et Fragment Refs sont désormais stables, et la version ne comporte aucune rupture de compatibilité.