React Native
React Native est un framework d'applications mobiles open source créé par Facebook[2]. Il est utilisé pour développer des applications pour Android [3], iOS et UWP [4] en permettant aux développeurs d’utiliser React avec les fonctionnalités natives de ces plateformes.
Développé par | |
---|---|
Première version | le 26 mars 2015[1] |
Dernière version | 69.0 () |
Dépôt | github.com/facebook/react-native |
Écrit en | JavaScript, Java, C++, Objective-C et Python |
Type |
JavaScript Framework JavaScript (en) |
Licence | MIT License |
Site web | reactnative.dev |
Historique
En 2012, Mark Zuckerberg a déclaré: "La plus grande erreur que nous ayons commise en tant que société a été de parier trop sur HTML par opposition au natif"[5]. Il a promis que Facebook offrirait bientôt une meilleure expérience mobile.
À l'intérieur de Facebook, Jordan Walke a trouvé un moyen de générer des éléments d'interface utilisateur pour iOS à partir d'un thread JavaScript. Ils ont décidé d'organiser un Hackathon interne pour perfectionner ce prototype afin de pouvoir créer des applications natives avec cette technologie[6].
Après des mois de développement, Facebook a publié la première version de la configuration JavaScript de React Native en 2015. Lors d'un entretien technique[7], Christopher Chedeau a expliqué que Facebook utilisait déjà React Native en production pour son application de groupe et son application de gestionnaire de publicités[8].
Implémentation
Les principes de fonctionnement de React Native sont pratiquement identiques à ceux de React, à la différence que React Native ne manipule pas le DOM via le DOM virtuel. Il s'exécute dans un processus en arrière-plan (qui interprète le code JavaScript écrit par les développeurs) directement sur le terminal et communique avec la plate-forme native via une passerelle de sérialisation, asynchrone et par lots[9],[10].
React Native n'utilise pas HTML. Au lieu de cela, les messages du thread JavaScript sont utilisés pour manipuler des vues natives.
Exemple "Hello World"
Voici l'exemple "Hello World" en React Native:
import React from 'react';
import { AppRegistry, Text } from 'react-native';
const HelloWorldApp = () => {
return (
<Text>Hello world!</Text>
);
}
export default HelloWorldApp;
// Skip this line if using Create React Native App
AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);
// The ReactJS code can also be imported into another component with the following code:
import HelloWorldApp from './HelloWorldApp';
Références
- « React Native: Bringing modern web techniques to mobile »
- « Git-hub React-Native »
- « Android Release for React Native »
- Windows Apps Team, « React Native on the Universal Windows Platform », blogs.windows.com, (consulté le )
- « Zuckerberg's Biggest Mistake? 'Betting on HTML5' », Mashable (consulté le )
- « A short Story about React Native » (consulté le )
- Christopher, « A Deep Dive into React Native », YouTube (consulté le )
- « React Native: Bringing modern web techniques to mobile »
- « Bridging in React Native », (consulté le )
- « React Native Framework » Thursday, 13 September 2018