Fermer

janvier 22, 2019

Créez des applications Web conviviales pour les appareils mobiles avec React Native Web


Créer une application multiplate-forme est encore plus facile avec React Native Web, qui nous permet de créer et de déployer à la fois sur le Web et les plateformes mobiles.

Au fil des ans, la création d'applications Web conviviales pour les mobiles est devenue plus facile. l'avènement des requêtes de médias et l'introduction des travailleurs de service. À l'aide de requêtes multimédia, nous pourrions faire en sorte que les applications Web prennent différentes formes lorsqu'elles sont visualisées sur des appareils mobiles. Les employés de service, avec leurs puissantes fonctionnalités, présentent des applications Web puissantes que seules les applications natives sont connues pour: notifications push, synchronisation en arrière-plan, etc.

React Native est une solution multiplateforme développée par Facebook qui vous permet de créer des applications mobiles. en utilisant JavaScript. Ces applications mobiles sont considérées comme multi-plateformes car elles sont écrites une seule fois et déployées sur de nombreuses plateformes, telles que Android, iOS et le Web. Nous verrons aujourd’hui comment utiliser cette puissante technologie pour créer sur le Web des applications orientées plates-formes.

Nous allons créer une application simple qui affiche les informations des utilisateurs à partir d’une API aléatoire utilisant des composants React Native, tels que ScrollView, Text. et Image.

Conditions préalables

Pour suivre ce didacticiel, vous devez avoir installé le nœud Node > 6.0. Vous aurez également besoin d’un gestionnaire de package NPM (livré avec Node) ou de Yarn (suivez le guide d’installation ici ).

Des connaissances de base de JavaScript et de React sont également requises. Vous pouvez suivre le didacticiel officiel de React ici pour vous familiariser avec React.

Mise en route

Avant de commencer, nous devons d'abord configurer le projet et installer ses dépendances. Nous allons utiliser l'application Create React pour amorcer notre application. Nous utilisons Create React App car il peut être configuré pour alias React Native. Nous installerons des polyfills pour certaines des dernières API JavaScript telles que Promise Array.from etc., car le transpiler ne les fournit pas.

application utilisant Create React App, exécutez la commande suivante:

     yarn create react-app random-people
ou
    npx create-react-app random-people

Exécutez la commande suivante pour installer les dépendances de développement du projet:

     yarn add --dev babel-plugin-module-resolver babel-plugin-transform-object-rest-spread étalé babel-plugin-transform-react-jsx- source babel-preset-expo
ou
     npm   installer  --save-dev babel-plugin-module-résolver babel-plugin-transformation-objet-reste-propagation babel-plugin-transformation-réagir-jsx-source babel-preset-expo

Le babel-plugin-module-resolver est un plugin qui résout les modules de votre projet lors de la compilation avec Babel. Nous allons utiliser ce paquet pour alias react-native à react-native-web lors de la configuration du projet.

Pour construire et exécuter notre application, nous allons utiliser Expo. Expo est une chaîne d'outils open-source construite autour de React Native pour la création d'applications Android et iOS. Il permet d’accéder aux fonctionnalités du système telles que Appareil photo, Stockage, etc.

Installez expo-cli en exécutant la commande suivante:

     yarn global add expo-cli
            ou
     npm  i g expo-cli

L'étape suivante consiste à installer expo localement, aux côtés de React Native et de React Native Web. Exécutez la commande ci-dessous pour installer les packages:

     yarn add expo réact-native réact-native-web react-art
            ou
     npm  i expo réagit-natif réagit-natif-web réagit-art

Après avoir téléchargé les packages nécessaires à l'exécution et à la création de l'application, l'étape suivante consiste à configurer les fichiers de configuration. Créez un fichier appelé .babelrc à la racine de votre projet et mettez-le à jour avec le texte suivant:

     //. Babelrc {
       "presets" :   [ "babel-preset-expo" ] 
       "env" :   {
         "développement" :   {
           "plugins" "[[19659024]:   [ "transform-object-rest-spread"   "transform-react-jsx-source" ] 
        } 
      }  , 
       "plugins" :   [
         [
           "module-resolver" 
           {
             "alias" :   {[19659055] "^ react-native $" :   "react-native-web" 
            } 
          } 
        ] 
      ] 
    } 

Créez un fichier nommé app.json . Ce fichier est utilisé pour configurer des parties de votre application qui n'appartiennent pas au code tel que l'application nom description sdkVersion etc. Vous pouvez trouver les options disponibles pour le fichier app.json ici .

Mettons à jour le fichier package.json pour inclure les commandes d'exécution de notre application sous Android et iOS. émulateurs. Nous allons également inclure le champ principal faisant référence au fichier App.js . Ce fichier servira de fichier d'entrée pour l'expo-cli. Ouvrez le fichier package.json dans un éditeur de fichier de choix:

     // package.json 
     {
       "name" :   "random-people" [19659024]
       "version" :   "0.1.0" 
       "privé" :   vrai 
       "principal" [19659024]:   "./ App.js" 
       ... 
       "scripts" :   {
         "start-web" : [19659040] "react-scripts start" 
         "construction-web" :   "react-scripts build" 
         "test-web" : [19659040] "test de réact-scripts" 
         "eject-web" :   "réactif de scripts" (19659024), 
         "start-native"  : [19659040] "expo start" 
         "android" :   "expo android" 
         "ios" :   "expo ios"  ]
         "build: ios" :   "expo build: ios" 
         "build: android" :   "ex po build: android "
      } 
       ... 
    } 

Exécutez npm lancez start-web pour exécuter l'application et visitez http: // localhost: 3000 pour afficher l'application.

Home Component

Notre application est une démonstration simple qui affiche les utilisateurs. via l'utilisateur aléatoire API . À l’aide de l’API, un nom et un avatar des utilisateurs renvoyés sont affichés à travers certains des composants fournis par React Native. Dans le répertoire src / créez un fichier nommé home.js . Ouvrez ce fichier à l'aide d'un éditeur et mettez-le à jour avec l'extrait de code ci-dessous:

     // home.js
    importer Réagir de "réagir";
    importer {
      ScrollView,
      ActivityIndicator,
      Feuille de style
    } de "react-native";
    
    la classe Home s'étend React.Component {
      state = {
        utilisateurs: [],
        chargement: vrai
      };
      composantDidMount () {
        // TODO: obtenir les utilisateurs
      }
    
      render () {
        revenir (
          
           
          
        );
      }
    }
    
    var styles = StyleSheet.create ({
      récipient: {
        backgroundColor: "whitesmoke"
      },
      centrage: {
        alignItems: "center",
        justifierContent: "center",
        rembourrage: 8,
        hauteur: '100vh'
      },
    });
    
    défaut d'exportation Home;

Dans l'extrait ci-dessus, le composant Home rend un composant [ScrollView] (https://facebook.github.io/react-native/docs/scrollview) contenant les éléments du composant. . Actuellement, le composant affiche un [ActivityIndicator] (https://facebook.github.io/react-native/docs/activityindicator#docsNav) ; elle sera remplacée par la liste d'utilisateurs une fois l'appel de l'API terminé.

Nous créons des styles pour les éléments à l'aide du composant StyleSheet . Cela nous permet de styliser le composant en utilisant des propriétés similaires aux propriétés CSS.

Créons une méthode qui récupère des utilisateurs aléatoires à partir de l'API d'utilisateur aléatoire. Cette méthode sera appelée au cours du cycle de vie composantDidMount . Mettez à jour le composant home.js pour y inclure la méthode getUsers :

     // home.js
    importer Réagir de 'réagir';
    ...
    
    la classe Home s'étend React.Component {
      state = {
        ...
      };
      composantDidMount () {
        this.getUsers ();
      }
    
      async getUsers () {
        const res = wait fetch ("https://randomuser.me/api/?results=20");
        const {résultats} = wait res.json ();
        this.setState ({utilisateurs: [...results]chargement: false});
      }
      ...
    }

Nous pouvons facilement faire des demandes en utilisant l'API Fetch native. Les résultats de la requête sont analysés et ajoutés à state. Lorsque la demande est terminée, nous cachons l'ActivityIncidator en définissant loading sur false.

Composant d'application

L'application d'AppComponent contient la logique correspondante. L'application. Nous allons mettre à jour la vue par défaut créée par Create React App afin de l'adapter à celle de notre application en ajoutant une logique d'affichage des composants natifs.

Créez un nouveau fichier nommé App.js à la racine de votre projet. Ce fichier sera similaire au fichier src / App.js . Le fichier racine App.js servira de fichier d'entrée pour expo et le fichier src / App.js existe pour les versions Create React App. Mettez à jour les deux fichiers avec l'extrait ci-dessous:

      import  Réagissez  dans   'react' ; 
     import   {
      AppRegistry 
      Feuille de style 
      View 
    }   de   'react-native' ; 
     import  Page d'accueil  de   './ maison' 
    
     classe 
    
     de classe [19659154] L'app.   s'étend  . React .  Composant   {
       Rendu  ()   {
         retour   (
           < Style de la vue  =  { styles .  appConteneur } > 
             < Accueil  / . 
           < /  Voir > 
        ) ; 
      } 
    } 
    
     const  styles  =  StyleSheet  ].  créer  ( {
      appContainer :   {
        flex :   1 
      } 
    } ) ; 
    
    AppRegistry .  registerComponent  ( 'App'   ()   =>  App ) ; 
    
     ] export   default  App ; 

Dans l'extrait ci-dessus, nous enregistrons notre composant App à l'aide de AppRegistry. Le AppRegistry est le point d'entrée des applications React Native.

Création d'un élément utilisateur

Chaque élément utilisateur est affiché à l'aide d'un composant View . Le composant View est un bloc de construction important qui prend en charge la présentation à l'aide de la flexbox, du style et de l'accessibilité. Le composant Affichage de chaque élément sera dans une liste balayable. Chaque élément affichera l’avatar, le nom et l’adresse électronique de l’utilisateur. Créez un fichier appelé user-item.js dans le dossier src / et mettez-le à jour avec le code ci-dessous:

  // user-item.js 

. Import Réagissez sur "réagissez" ;
import { Voir Image Texte ] Feuille de style } de "react-native" ;

const UserItem = [ { point




Source link