Qu'est-ce que le framework natif React et comment fonctionne-t-il

Publié: 2022-07-08

React Native est l'un des frameworks les plus appréciés pour le développement d'applications multiplateformes et a été adopté par plusieurs géants de l'industrie, notamment Facebook, Instagram, Skype, Microsoft, Tesla, Shopify, Walmart et UberEats. Ce framework a été créé par l'équipe Facebook pour répondre aux limitations de React.js.

Le SDK React développé par Facebook était une option viable pour créer des applications Web. Cependant, lorsque Facebook a adopté une stratégie axée sur le mobile, les applications Web devaient être rendues sur la plate-forme mobile. Cette tâche était en effet difficile! Au début, les ingénieurs de Facebook ont ​​utilisé HTML5 pour rendre les applications sur le Web mobile, mais cette stratégie a échoué. Par la suite, ils ont intégré WebView dans un conteneur mobile natif. Cette approche n'était pas non plus réalisable en raison de l'absence d'attributs nécessaires tels que les gestes et les événements tactiles, une API de clavier et des capacités de gestion des images.

Ensuite, ils ont réalisé la nécessité de créer des applications natives pour fournir une UX impeccable. Mais l'idée de créer des applications natives pour Android et iOS impliquait séparément des obstacles : un processus de codage impératif, des bases de code distinctes pour différentes plates-formes et un processus d'itération lent, car le prototype de chaque application nécessitait l'approbation préalable de Playstore.

Enfin, Facebook a organisé un hackathon interne et React Native, une version améliorée de React, a été inventée. Le framework React Native a été lancé en 2015 en tant que solution unique pour le développement d'applications mobiles et est devenu open source la même année. Découvrons plus en détail le framework et son fonctionnement !

Réagir natif : un aperçu

React Native est un framework de développement d'applications mobiles basé sur JavaScript qui est utilisé pour créer des applications mobiles rendues nativement pour les systèmes d'exploitation Android et iOS. Le point de vente unique de React Native réside dans le fait que les développeurs peuvent créer des applications pour les deux plates-formes simultanément en utilisant une seule base de code. Le framework utilise des modules et des API spécifiques à la plate-forme en compilant le code JS en composants natifs. Ainsi, les développeurs React Native peuvent utiliser des composants natifs tels que Text, View et Images comme blocs de construction pour créer de nouveaux composants.

En quoi React Native diffère-t-il de React ?

React Native est basé sur React pour le Web, la bibliothèque JS développée par Facebook et utilisée pour développer des interfaces utilisateur. Mais, alors que React cible le navigateur, React Native cible les plates-formes d'applications mobiles. Ainsi, les développeurs d'applications mobiles bénéficient de la commodité d'utiliser une bibliothèque JavaScript connue pour créer des applications mobiles avec une apparence et une convivialité de type natif.

React Native utilise la primitive Text à la place de la primitive span utilisée pour le Web. Ce texte se traduit par un TextView natif pour les applications Android et un iOS UIView natif pour les applications iOS. Pour cette raison, malgré l'utilisation de JavaScript pour le développement d'applications, l'application finale n'est pas une application Web intégrée dans le shell d'une application mobile, mais plutôt une application mobile réellement native.

Les applications React Native sont créées à l'aide de JSX, une combinaison de balisage JavaScript et XML, tout comme les applications React. La différence est que React Native utilise un "pont" sous le capot pour appeler les API de rendu natif. Ici, les API Objective-C/Swift sont utilisées pour le rendu des composants d'interface utilisateur sur les applications iOS, tandis que les API Java/Kotlin sont utilisées dans le cas des applications Android. En termes simples, le pont traduit le code JS en composants spécifiques à la plate-forme. En conséquence, l'application restitue de véritables composants d'interface utilisateur mobile au lieu de vues Web ; donner l'apparence d'une application mobile. De plus, React Native expose les interfaces JS pour les API de la plateforme ; cela permet aux applications d'accéder aux fonctionnalités du smartphone telles que l'emplacement actuel d'un utilisateur, l'appareil photo, etc.

Comment fonctionnent les React Native Apps ?

Une application React Native est séparée en trois parties différentes : le code natif, le code JavaScript et le pont. Le pont interprète le code JS pour l'exécuter sur des plates-formes natives et permet une communication asynchrone entre les éléments natifs et le code JS.

Threads significatifs impliqués dans le fonctionnement d'une application React Native

Thread principal (natif) : le thread principal, également appelé thread natif, est utilisé pour le rendu de l'interface utilisateur dans les applications iOS et Android. Il gère la tâche d'affichage des éléments de l'interface utilisateur et traite les gestes des utilisateurs.

Fil JavaScript : le fil JS traite essentiellement de la logique métier de l'application et définit la structure ainsi que les fonctions de l'interface utilisateur. Les fonctions du thread JS incluent l'exécution du code JS dans un moteur JS séparé, les appels d'API, le traitement des événements tactiles, etc.

Thread fantôme (Shadow Tree) : ce thread génère des nœuds fantômes et agit comme un moteur mathématique qui utilise des algorithmes pour transformer les mises à jour de mise en page en données précises et les événements de l'interface utilisateur en une charge utile correctement sérialisée.

Thread de module natif : chaque fois qu'une application nécessite l'accès à l'API de la plate-forme, le processus a lieu dans le thread de module natif.

Thread de module natif personnalisé : ces threads sont utilisés pour accélérer les performances d'une application lorsque des modules personnalisés sont utilisés. Par exemple, React Native gère les animations à l'aide d'un thread natif séparé afin que cette tâche soit déchargée du thread JS.

Parmi les threads susmentionnés, les threads les plus importants qui aident une application React Native à fonctionner sont le thread natif et le thread JS. Fait intéressant, il n'y a pas de communication directe entre ces deux threads et donc, ils ne se bloquent pas.

Fonctionnement d'une App React Native : étapes cruciales

Découvrez comment fonctionne une application React Native !

Étape 1

Lorsqu'une application est lancée, le thread natif charge l'application et génère le thread JavaScript pour exécuter le code JS. Le thread natif entend les événements de l'interface utilisateur tels que toucher, appuyer, etc., et transmet ces événements au thread JS via le pont React Native.

Étape 2

JavaScript se charge et le thread JS envoie des informations au thread fantôme sur ce qui doit être rendu à l'écran. Le thread fantôme calcule ensuite les mises en page à l'aide d'algorithmes et décide de la manière dont les positions de vue doivent être calculées. Le thread fantôme transmet ensuite les paramètres de mise en page au thread principal pour le rendu de la vue. )

Étape 3

Le thread principal collecte les événements de l'interface utilisateur et les envoie au thread fantôme. Les événements sont convertis en charges utiles sérialisées et envoyées au thread JS.

Étape 4

Le thread JavaScript traite désormais les charges utiles, puis met à jour l'interface utilisateur ou appelle des méthodes natives.

L'étape 2, l'étape 3 et l'étape 4 sont répétées en permanence à chaque itération de la boucle d'événements de JavaScript.

Une fois que chaque boucle d'événement dans le thread JS est terminée, le côté natif reçoit des mises à jour par lots des vues natives ; ceux-ci sont ensuite exécutés dans le thread natif. N'oubliez pas que les mises à jour par lots doivent être envoyées par le thread JS au thread natif avant la date limite de rendu de l'image suivante, pour maintenir les performances de l'application. Un thread JS lent en raison d'un traitement compliqué dans la boucle d'événements JS entrave l'interface utilisateur. La seule exception dans laquelle un thread JS lent n'affecte pas les performances concerne les scénarios où les vues natives ont lieu entièrement dans le thread natif.

Comment le React Native Bridge assure-t-il une interaction fluide entre les threads ?

Le React Native Bridge permet une communication asynchrone entre les threads afin qu'un thread ne bloque pas l'autre. De plus, les messages sont regroupés - les messages sont transférés entre les threads de manière optimisée. De plus, le pont sérialise les messages afin que deux threads ne puissent pas partager les mêmes données ou fonctionner avec les mêmes données.

Comment mettre en place l'environnement de développement React Native App ?

Voici comment configurer l'environnement pour créer une application React Native avec l'aide d'Expo.

  • Installez Node.js, obtenez l'outil de ligne de commande d'Expo, puis mettez la commande npm install Expo-cli –global. Une fois l'outil Expo cli installé, tapez expo init todo-app.
  • Maintenant, un écran s'affiche et vous devez sélectionner l'option "vierge" pour une application vierge. Incluez également les fonctionnalités de flux de travail d'Expo. Ensuite, entrez le nom de votre application, appuyez sur Entrée et poursuivez le processus de configuration.
  • Accédez au nouveau projet créé pour démarrer l'application avec la commande npm start et pour arrêter l'application, vous devez appuyer sur Cntrl + C. Le serveur des développeurs s'exécutera et un nouvel onglet contenant l'écran du gestionnaire d'expo s'ouvrira dans le navigateur Web.

L'application peut être prévisualisée en l'exécutant sur un émulateur Android ou en installant l'application Expo sur votre téléphone mobile et en exécutant l'application sur l'appareil en scannant le code QR. Par la suite, vous devez installer un éditeur de texte comme Atom, Sublime, Visual Studio Code, etc. Vous disposez maintenant de tous les outils nécessaires pour créer une application React Native.

Verdict final

React Native est une option rentable à choisir si vous avez besoin de créer une application mobile qui cible Android ainsi que les systèmes d'exploitation iOS. Le développement multiplateforme avec React Native accélère votre développement et réduit les coûts de développement. Par conséquent, ce cadre est idéal pour les entrepreneurs qui ont l'intention de créer un prototype d'application rapide pour valider l'idée de l'application.

Besoin d'une assistance technique et de conseils d'experts sur le développement d'applications React Native ? Contactez Biz4Solutions, une société de développement React Native très expérimentée aux États-Unis et en Inde, offrant des services de classe mondiale à des clients du monde entier.