
Pour plusieurs, le code JavaScript, implémenté dans le framework React Native, est identifié comme l'une des solutions multiplateformes de prédilection pour créer des applications Android et iOS. Grâce à React Native, il est possible de travailler sur deux OS différents en utilisant une seule plateforme.
Le framework React Native est développé par Facebook. Il s'agit d'un framework open source qui permet de créer des applications mobiles natives à l'aide du langage de programmation JavaScript. En utilisant React Native, on peut développer des applications similaires à ce qu'elles font tout en utilisant Kotlin ou Java pour Android et Swift ou Objective-C pour iOS. Parmi les caractéristiques ou fonctionnalités avantageuses apportées par React Native, nous pouvons dire :
- Qu'il offre des performances optimales. React Native est connecté aux composants natifs des deux systèmes d'exploitation et génère librement du code pour les API natives.
- La réutilisabilité des codes est un autre avantage. Il est possible de réutiliser des codes et des composants prédéveloppés, les développeurs n'ont donc pas besoin d'utiliser des codes indépendants pour les deux systèmes d'exploitation.
- React Native est accessible à une large communauté de développeurs. Comme il s'agit d'un langage open source, il est facile de contribuer à l'évolution du framework et également de tirer pleinement parti de la technologie
React Native fournit un moyen de créer des applications mobiles multiplateformes natives à l'aide de JavaScript. React Native est similaire à React dans la mesure où il permet aux développeurs de créer des interfaces utilisateur déclaratives en JavaScript, pour lesquelles il crée en interne une arborescence hiérarchique d'éléments d'interface utilisateur ou dans la terminologie ReactJS un DOM virtuel. Alors que la sortie de ReactJS cible un navigateur, React Native traduit le DOM virtuel en vues natives mobiles à l'aide de liaisons natives de plateforme qui s'interfacent avec la logique d'application en JavaScript. S'il est généralement utilisé pour cibler les plateformes Android et iOS, il faut préciser que les efforts de la communauté ont amené React Native à d'autres plateformes telles que Windows, macOS et Apple tvOS.
Shopify se tourne vers React Native pour les applications mobiles
Shopify, la plateforme de commerce électronique qui permet à des individus et des entreprises de créer leurs propres magasins en ligne, a décidé de se tourner vers ce framework pour le développement de ses applications mobiles.
« Après des années de développement mobile natif, nous avons décidé d'aller à toute vitesse en créant toutes nos nouvelles applications mobiles à l'aide de React Native. Chaque trimestre, la majorité des acheteurs font leurs achats sur mobile (d'ailleurs 71 % de nos acheteurs ont fait leurs achats sur mobile au troisième trimestre de l'année dernière). Le Black Friday et le Cyber Monday sont la période la plus occupée de l'année pour nos marchands, et l'activité d'achat pendant ces jours est beaucoup plus poussé. Au cours du Black Friday et du Cyber Monday de cette année, les marchands Shopify ont vu une autre augmentation de 3% des achats sur mobile, soit une moyenne de 69% des ventes.
« Alors, pourquoi passer à React Native? Et pourquoi maintenant? Comment cela s'inscrit-il dans notre développement mobile natif? C'est une réponse compliquée qui est mieux servie avec un peu de contexte ».
Contexte du choix
« Nous avons une culture d'ingénierie chez Shopify consistant à faire des paris spécifiques sur les premières technologies qui nous aident à avancer rapidement.
« Dans l'ensemble, nous préférons avoir peu de technologies comme fondement de l'ingénierie. Cela nous offre plusieurs points de levier:
- nous construisons une expertise extrêmement spécifique dans un petit ensemble de technologies profondes (nous devenons souvent des contributeurs de base)
- chaque choix technologique a des bizarreries, mais nous les apprenons intimement
- les personnes extérieures à l'équipe initiale contribuent, transfèrent et maintiennent le code écrit par d'autres
- de nouvelles personnes sont intégrées plus rapidement.
« En même temps, il y a toujours de nouvelles technologies émergentes qui nous offrent l'opportunité d'un changement progressif de productivité ou de capacité. Nous expérimentons beaucoup pour avoir l'opportunité de débloquer des améliorations qui sont un ordre de grandeur, mais en fin de compte, nous en adoptons peu pour notre cœur d'ingénierie.
« Lorsque nous adoptons ces premiers langages ou frameworks, nous faisons un pari calculé. Et au lieu de fuir le risque, nous recherchons, explorons et évaluons méticuleusement ces risques en fonction de notre ensemble unique de conditions. Comme souvent dans les zones à risque, les opportunités inexplorées sont cachées. Nous pensons plutôt à la façon dont nous pouvons atténuer ce risque:
- que faire si une technologie cesse d'être prise en charge par l'équipe principale?
- que faire si nous rencontrons un bogue que nous ne pouvons pas corriger?
- que faire si le produit va dans un sens contraire à nos intérêts?
« Ruby on Rails était un framework naissant et obscur lorsque Tobi (notre PDG) a été impliqué pour la première fois en tant que contributeur principal en 2004. Pendant des années, Ruby on Rails a été considéré comme un choix de langage non sérieux et non performant. Mais ce pari précoce a donné à Shopify l'élan nécessaire pour surpasser la concurrence, même si ce n'était pas un choix technologique populaire. En utilisant Ruby on Rails, l'équipe a pu construire plus rapidement et attirer un ensemble différent de talents en utilisant quelque chose de plus moderne et avec un niveau d'abstraction plus élevé que les langages de programmation et les frameworks traditionnels. Paul Graham parle de sa décision d'utiliser Lisp dans la construction de Viaweb à un effet similaire et 6 des 10 sociétés Y Combinator les plus précieuses utilisent toutes aujourd'hui Ruby on Rails (même si, encore une fois, cela reste largement impopulaire). En revanche, aucune des 10 sociétés Y Combinator les plus importantes n'utilise Java; largement considéré comme le langage d'entreprise testé au combat.
« De même, il y a deux ans, Shopify a décidé de passer à Google Cloud. Encore une fois, une proposition effrayante pour le deuxième plus grand site de commerce électronique au détail aux États-Unis en 2019 - de faire une migration vers le cloud loin de nos propres centres de données, mais aussi de choisir un concurrent du cloud précoce. Nous avons vu l'arc technologique de la création de valeur nous amener à nous concentrer sur ce à quoi nous sommes bons: permettre à l'entrepreneuriat et laisser les autres (dans ce cas, Google Cloud) se concentrer sur le gros du travail indifférencié de la maintenance du matériel physique, de l'alimentation, de la sécurité, du système d'exploitation mises à jour, etc. ».
React Native n'avait pas été adopté pour le développement de l'application mobile a sa sortie en 2015
Concernant React Native, l'équipe note que « chez Shopify, l'idée avait ses sceptiques à l'époque (et en faisait toujours), mais beaucoup ont vu sa promesse. Lors des derniers Hackdays de l'entreprise, toute l'entreprise a passé du temps sur React Native. Alors que la première équipe a vu de nombreux avantages, elle a décidé que nous ne pouvions pas livrer une application dont nous serions fiers en nous servant de React Native en 2015. Pour la plupart, cela était lié aux performances et à l'absence de support Android de première classe. Ce que nous avons appris, c'est que nous avons aimé le modèle de programmation réactive et GraphQL. De plus, nous avons construit et open source un rendu fonctionnel réactif pour iOS après avoir travaillé avec React Native. Nous avons adopté ces technologies en 2015 pour notre pile mobile native, mais React Native n'était pas utilisé pour le développement mobile en masse. Le Globe and Mail a documenté nos aspirations dans une histoire complète sur la première version de nos applications mobiles.
« Jusqu'à présent, la...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.