IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Shopify a décidé de se tourner vers React Native pour le développement de ses applications mobiles
L'équipe d'ingénierie de la plateforme explique ce choix technologique

Le , par Stéphane le calme

667PARTAGES

8  0 
React Native est l'un des frameworks utilisés pour le développement d'applications mobiles pour iOS et Android. En clair, il est utilisé pour créer une application multiplateforme qui fonctionne sur différentes plateformes, au lieu de créer des applications distinctes pour chaque système.

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 norme pour tout développement mobile chez Shopify était le développement mobile natif. Nous avons constitué des équipes d'outils et de fondations mobiles axées sur iOS et Android, ce qui nous aide à accélérer nos efforts de développement. Bien que ces équipes et les applications résultantes aient toutes été couronnées de succès, on soupçonnait que nous pourrions être plus efficaces en tant qu'équipe si nous pouvions:
  • apportez la puissance de JavaScript et du Web au mobile
  • adopter un modèle de programmation réactive dans toutes les applications côté client
  • consolider notre développement iOS et Android sur une seule pile ».


Quand est-ce que Shopify n'utilisera pas par défaut React Native ?

Dans certaines situations, React Native ne serait pas l'option par défaut pour créer une application mobile sur Shopify. Par exemple, si l'équipe a une exigence de :
  • déploiement sur un matériel plus ancien (CPU <1,5 GHz)
  • traitement approfondi
  • ultra-hautes performances
  • de nombreux fils d'arrière-plan.

Et de préciser que les bibliothèques de bas niveau comprenant de nombreux SDK open source resteront purement natives.


Pourquoi passer à React Native maintenant ?

L'équipe a évoqué trois raisons principales pour lesquelles ce serait le moment idéal de l'adopter :
  • Shopify a appris de son acquisition de Tictail (une première entreprise mobile qui s'est concentrée à 100 % sur React Native) en 2018 jusqu'où React Native est allé et a fait trois gros investissements produits en 2019
  • Shopify utilise largement React sur le Web et ce savoir-faire est désormais transférable sur mobile
  • Shopify voit la courbe de performance se tourner vers le haut (pensez à ce qui est maintenant possible de faire dans Google Docs par rapport à Microsoft Office) et peut désormais investir à long terme dans React Native comme il le fait dans Ruby, Rails, Kubernetes et Rich Media.

« Nous avons de nombreuses surfaces mobiles chez Shopify pour que les acheteurs et les marchands interagissent, à la fois sur le Web et avec nos applications mobiles. Nous avons passé du temps au cours de la dernière année à expérimenter React Native avec trois équipes distinctes sur trois applications: Arrive, Point of Sale et Compass.

« De nos expériences, nous avons appris que:
  • en réécrivant l'application Arrive dans React Native, l'équipe a estimé qu'elle était deux fois plus productive qu'avec une utilisation du développement natif, même sur une seule plateforme mobile
  • tester notre application Point of Sale sur des configurations à faible consommation de matériel Android nous a permis de définir un seuil de processeur plus bas que prévu (1,5 GHz contre 2 GHz)
  • nous avons estimé à ~ 80 % le partage de code entre iOS et Android, et avons été surpris par les niveaux extrêmement élevés dans la pratique - 95 % (Arrive) et 99 % (Compass)


« Soit dit en passant, même si nous prenons la décision de créer toutes les nouvelles applications à l'aide de React Native, cela ne signifie pas que nous allons automatiquement commencer à réécrire nos anciennes applications dans React Native ».

Source : Shopify

Et vous ?

Que pensez-vous de React Native ?
Que pensez-vous de la décision de Shopify de se tourner vers React Native pour le développement de ses applications mobiles ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de smobydick
Membre averti https://www.developpez.com
Le 30/01/2020 à 14:30
Perso j'utilise ionic, et mine de rien y'a quand même pas mal de plugin à retravailler ou à créer pour vraiment correspondre à 100% du besoin.
D'autant plus qu'un plugin ne fonctionnera pas pareil selon la version de ios ou d'android. Du coup je dois passer un certains temps à m'arracher les cheveux en pensant que le problème vient du plugin écrit en angular, avant de finalement remonter au niveau java/objective-c pour corriger. Et je me dit que finalement je gagne pas tellement de temps ahah.
0  0