Annonce de la transition réussie de Coinbase vers React Native


Plus précisément puis augmenter les enjeux avec des essais de plus en plus percutants, car cette approche était essentielle au succès de la migration.

Pour mettre en perspective l’impact de ce changement technologique, Coinbase fournit des services financiers à 56 millions d’utilisateurs et a généré 1,8 milliard de dollars de revenus au premier trimestre 2021 seulement. Des régressions dans les fonctionnalités ou des performances médiocres pourraient avoir de graves implications pour nos clients et notre entreprise.

Les premières applications iOS et Android que nous avons publiées étaient natives, écrites en Objective-C et Java, respectivement.

Annonce de la transition réussie de Coinbase vers React Native

mais malgré tous nos efforts Au cours de cette année En outre

Chez Coinbase, les principales fonctionnalités sont créées et maintenues par des équipes interfonctionnelles, généralement composées de 2 ingénieurs backend et 2 ingénieurs frontend pour chaque plate-forme prise en charge (Web, iOS et Android). Cette structure a nécessité un grand nombre d’ingénieurs pour maintenir une seule verticale de notre produit. Cela signifiait également que les ingénieurs étaient quelque peu isolés des autres ingénieurs travaillant sur la même plate-forme, ce qui rendait difficile la coordination de changements systémiques plus importants.

chaque paire d’ingénierie client étant isolée sur une plate-forme distincte – à 5 ingénieurs – où plusieurs ingénieurs clients pourraient travailler sur les trois plates-formes.

tout changement technologique que nous avons effectué devait également améliorer la qualité et les performances de nos clients

qui reposait sur React Il a tiré parti d’une pile technologique que nous connaissions déjà et a offert une voie claire vers une consolidation encore plus poussée à la fois sur mobile et sur le Web.

nous avons créé un plan pour l’explorer progressivement à travers nos surfaces de produits Après quelques mois de recherches préliminaires

Du point de vue du frontend Le projet nous permettrait également de nous permettre également d’évaluer la vitesse des développeurs et de nous assurer que nous pourrions former de manière croisée nos ingénieurs Web pour devenir des ingénieurs React Native efficaces

Le prochain domaine que nous avons décidé d’explorer était une intégration de friches industrielles Nous avons décidé de reconstruire nos flux d’intégration avec React Native, puis de les partager entre l’application mobile Pro (React Native) et les principales applications Coinbase iOS et Android (toutes deux natives). Coinbase prend actuellement en charge plus de 100 pays, et comme différentes juridictions ont des exigences réglementaires différentes, notre expérience d’inscription doit être dynamique – s’adaptant à l’emplacement et au profil d’identité de chaque utilisateur. Ces flux faisaient partie des parties les plus anciennes et les plus complexes de nos applications mobiles; même des changements progressifs pourraient être coûteux à mettre en œuvre. Avec le lancement d’un produit Pro autonome, les réimplémenter deux fois aurait été extrêmement coûteux.Nous avons donc vu l’opportunité ici d’explorer React Native dans un environnement de friche industrielle et de créer un flux d’intégration partagé entre les deux applications

nous avons émis l’hypothèse que nous pourrions exécuter une réécriture complète de l’application Coinbase principale dans React Native nous ne savions pas si cette réécriture serait une réécriture incrémentielle de brownfield (où nous réécrivons progressivement les écrans) ou une nouvelle réécriture (où nous sommes partis de zéro)/li>

Après 6 mois de construction

une réécriture de friches industrielles de nos flux d’intégration Étant donné que le module d’intégration a été écrit en React Native, il a pu être partagé entre les applications mobiles Coinbase et Pro.

Si vous avez lu l’excellent article d’Airbnb sur Sunsetting React Native, ces défis peuvent vous sembler familiers. Nous avons passé de nombreuses heures à discuter avec des ingénieurs d’Airbnb et à essayer de tirer les leçons de leurs expériences. Nous sommes reconnaissants à l’équipe d’avoir partagé les détails de leur voyage, car les informations ont été inestimables pour décider de la meilleure voie pour Coinbase. L’un de nos principaux points à retenir était que l’approche des sites contaminés semblait être au cœur de bon nombre des défis auxquels ils étaient confrontés. Bien que l’idée de migrer progressivement soit à première vue attrayante – en tirant parti des avantages de React native pour de nouvelles fonctionnalités sans le coût initial d’une réécriture complète – elle présente un risque de migration technique et culturelle important sur le long terme.

Nous avons décidé que :

des performances et de la vitesse Construire d’abord Android nous a également permis de continuer à fonctionner à plein régime sur iOS natif en parallèle/li> introduisaient le risque de rester «coincé» dans un état intermédiaire et créaient un espace pour des désaccords culturels prolongés. entre ingénieurs sur différentes plates-formes

nous avons estimé que nous pourrions exécuter une réécriture complète de notre produit en 6 mois Nous avons commencé à replatformer l’application Android en mars 2020 et avons livré l’application Android entièrement réécrite presque exactement 6 mois plus tard. Nous avons déployé la réécriture en tant qu’expérience et mesuré les résultats, ce qui a montré un impact positif sur les indicateurs clés ciblés.

Nous avons passé le trimestre suivant à «rattraper» les fonctionnalités clés que l’équipe iOS avait intégrées parallèlement à la réécriture d’Android Avec le lancement de React Native sur iOS

À ce jour, le repo React Native de Coinbase compte 113 contributeurs, dont un grand nombre d’ingénieurs Web, qui auparavant n’auraient pas été en mesure de contribuer sur mobile. Nous avons également constaté des résultats positifs grâce à la formation croisée de nos talents d’ingénieur mobile natifs, avec peu d’attrition en raison du changement technologique. Les ingénieurs issus des milieux iOS et Android apportent désormais des contributions à fort impact.

avec une équipe client unifiée qui travaille sur trois plateformes Et nous pensons que la transition vers React Native n’est que la première étape de notre chemin vers la création d’une plate-forme client unique et unifiée pour toutes les applications Coinbase.

5 Nous construisons un système de conception multiplateforme, une couche de données universelle basée sur GraphQL et les bases nécessaires pour faire converger les outils Web et mobiles. Nous imaginons un monde où les ingénieurs peuvent proposer une fonctionnalité sur nos applications Web et mobiles avec un changement de contexte minimal, réinvestissant les gains d’efficacité dans la qualité de nos applications.

d’expérimentation et d’exécution graduelles Une chronologie condensée de nos recherches et de nos jalons peut être vue ci-dessous:

2018-2012 : Un ingénieur partage une proposition pour Coinbase d’explorer les possibilités de React Native en tant que plate-forme mobile

2019-03 : Les membres de l’équipe Coinbase étudient plusieurs directions techniques pour multiplateforme et décident d’aller de l’avant avec React Native

2019–04 : L’ingénierie de l’application mobile Coinbase Pro commence

2019-07 : Début de l’ingénierie de l’intégration mobile unifiée

2019-2010 : L’application Coinbase Pro Mobile est disponible sur l’App Store

2020-03 : Nous commençons la réécriture complète de notre application Android Coinbase

2020–07 : Tous les ingénieurs Android et iOS de Coinbase ont la possibilité de suivre un programme de formation en interne pour monter en puissance sur React Native

2021-01 : L’application iOS Coinbase est déployée auprès de 100% de nos utilisateurs

Nous publierons des articles qui explorent les défis techniques de React Native et les leçons que nous avons apprises en cours de route. Nous espérons que notre application pourra être une excellente référence pour tous ceux qui envisagent de créer des produits à grande échelle en utilisant React Native.

Si vous souhaitez développer les technologies React Native et créer un système financier ouvert, pensez à nos postes ouverts et postulez pour un poste.

Les sites tiers ne sont pas sous le contrôle de Coinbase, Inc. et de ses affiliés («Coinbase»), et Coinbase n’est pas responsable du contenu de tout site tiers, y compris, sans s’y limiter, tout lien contenu dans un tiers. Site de partie, ou toute modification ou mise à jour d’un site tiers. Coinbase n’est pas responsable de la diffusion sur le Web ou de toute autre forme de transmission reçue d’un site tiers. Coinbase ne vous fournit ces liens qu’à titre de commodité, et l’inclusion de tout lien n’implique pas l’approbation, l’approbation ou la recommandation par Coinbase du site ou de toute association avec ses opérateurs.

* Ces informations sont basées sur les informations disponibles à Coinbase à la date de ce communiqué et sont soumises à l’achèvement de ses procédures de clôture financière trimestrielles et à l’examen par le cabinet d’experts-comptables enregistré indépendant de Coinbase.

Toutes les images fournies ici sont de Coinbase.

L’annonce de la transition réussie de Coinbase vers React Native a été initialement publiée dans le blog Coinbase sur Medium, où les gens poursuivent la conversation en mettant en évidence et en répondant à cette histoire.