Académique Documents
Professionnel Documents
Culture Documents
2
1. INTRODUCTION
Dans le cadre de notre seconde année du cycle ingénieur Génie Informatique à l’UIC, il
nous est proposé un projet bibliographique de 4 mois nous permettant d’enrichir nos
accords avec nos intérêts professionnels. Ayant une passion commune pour le
saisi l’opportunité d’exploiter cet intérêt commun pour soumettre l’ébauche de ce projet
3
2. BESOINS ET OBJECTIFS DU PROJET :
2.1. Contexte :
React Native (également connu sous le nom de RN) est un cadre d'application
mobile populaire basé sur JavaScript qui vous permet de créer des applications
mobiles à rendu natif pour iOS et Android. Le framework vous permet de créer une
application pour diverses plateformes en utilisant la même base de code.
React Native a été publié pour la première fois par Facebook en tant que projet
open-source en 2015. En quelques années seulement, il est devenu l'une des
principales solutions utilisées pour le développement mobile.
Le développement React Native est utilisé pour alimenter certaines des principales
applications mobiles du monde, notamment Instagram, Facebook et Skype. Nous
abordons ces exemples et d'autres exemples d'apps alimentées par React Native
plus en détail dans ce post.
Lorsque Facebook a décidé pour la première fois de rendre son service disponible
sur les appareils mobiles, au lieu de créer une application native comme le
faisaient de nombreux acteurs technologiques de premier plan à l'époque, il a opté
pour une page Web mobile basée sur HTML5. Cependant, cette solution n'a pas
résisté à l'épreuve du temps, laissant beaucoup de place à l'amélioration de
l'interface utilisateur et des performances. En fait, en 2012, Mark Zuckerberg a
admis que "la plus grosse erreur que nous avons commise en tant qu'entreprise a
été de trop miser sur le HTML par rapport au native."
C'est ainsi que React Native a vu le jour. Initialement développé uniquement pour
iOS, Facebook l'a rapidement suivi avec un support Android, avant de rendre le
framework public en 2015.
À peine trois ans plus tard, React Native était déjà le deuxième plus gros projet sur
GitHub, si l'on en croit le nombre de contributeurs. En 2019, il a tenu bon et est
arrivé en sixième position, avec plus de 9 100 contributeurs.
4
2.2. Objectifs et contraintes :
Objectifs :
Ce livre est destiné à servir de référence à une référence à des solutions à des
problèmes courants que vous rencontrerez probablement lors de la construction
d’une grande variété d’applications. Chaque chapitre est présenté comme une série
de recettes étape par étape qui expliquent chacune comment construire une seule
fonctionnalité d’une application globale. On donc dire que ce livre a principal
objectif de pouvoir créer une application basée sur du React native, garantissant
les principales fonctionnalités d’une application globale.
Contraintes :
5
2.3. Besoins techniques :
➢ Expo dev :
Malgré que sur le livre est mentionné qu’il faut utiliser XCode, pour
notre cas on utilisera Visual Studio Code pour tester les différentes
applications abordées dans le livre.
➢ Android Studio :
Android Studio est livré avec l'émulateur Android officiel, qui est
l'émulateur qu'Expo recommande d'utiliser pendant le développement
Android Studio est livré avec l'émulateur Android officiel, qui est
l'émulateur qu'Expo.
6
3. Développement technique :
Pour cela donc il suffit de télécharger Visual Studio Code via le lien ci-
dessous :
https://code.visualstudio.com/download
7
Android Studio :
https://developer.android.com/studio/
Une fois installé, on devrait être sur qu’il y a déjà un ANDROID SDK Build-
Tools installé, sinon il faut l’installer.
Export PATH=$PATH:/Users/MY_USER_NAME/Library/Android/sdk
8
Ensuite il faudra télécharger l'une des images système sous l'onglet Recommandé
de l'écran Image système :
Ensuite, il faudra installer les différentes dépendances nécessaires pour tester les
différentes applications :
▪ Node.js
▪ Watchman
▪ Installation react native sur Visual Studio code
▪ Installation Expo sur Visual Code puis télécharger l’applications
Expo sur un appareil réel.
Sommaire :
Dans ce chapitre, nous avons parcouru toutes les étapes nécessaires pour
commencer l'initialisation d'un nouveau projet, l'émulation de l'exécution de notre
nouveau projet sur votre ordinateur et l'exécution de notre application de
développement sur des appareils réels.
9
3.2. Chapitre II : Création une simple React Native Application.
10
Configuration et utilisation de la navigation
Pour toute application qui a plus d'une vue, un système de navigation est d'une
importance primordiale. Le besoin de navigation est si omniprésent dans le
développement d'applications qu'Expo fournit deux modèles lorsque vous créez
une nouvelle application : Navigation vierge ou par onglets. Nous nous sommes
basés sur le Tab Navigation fourni par Expo. Nous allons créer une application
vierge avec navigation par onglets à partir de zéro pour mieux comprendre toutes
les parties requises.
Réalisation
11
3.3. Chapitre III : Implémentation complexe User Interface.
Réalisation :
Nous allons avoir besoin d'une nouvelle application pour cette recette.
Appelons-la tablet-flexbox, quand on créer une nouvelle application avec
Expo, il y a un app.json qui est créé à la base du projet qui fournit une
configuration de base.
Dans cette recette, nous créerons une application dont nous voulons être
sûrs qu'elle sera belle sur une tablette, en particulier en mode paysage.
On crée d’abord une class pour App component, on utilisera par la suite le
fichier .json pour créer dataSource pour notre liste, on définira par la suite
un simple top toolbar et List component, nous allons utiliser le component
Post pour chaque enregistrement et obtenir la dataSource depuis stats.
12
Deux fichiers sont toujours manquants : le fichier .json avec les données et
le composant Post.
Dans cette étape, nous allons créer la data que nous allons utiliser pour
chaque publication sous nom data.json
13
Une fois notre component est défini on doit par la suite définir un style
pour chaque post pour rendre notre contenu plus agréable à voir :
14
3.4. Chapitre IV : Implémentation complexe User Interface part II.
Réalisations :
15
est fourni par React Native et fonctionne à la fois sur iOS et Android. La
propriété keyboardType nous permet de définir le clavier que nous
voulons utiliser. Les quatre claviers disponibles sur les deux plates-formes
sont par défaut, numérique, adresse e-mail et pavé téléphonique.
16
3.5. Chapitre V : Implémentation complexe User Interface part III.
Réalisation :
Dans un premier temps on doit d’abord créer une playlist pour contenir les
sons, chaque son est représenté par titre, artiste, album et uri :
17
On définira par la suite notre App class and initial state objet avec 4
propriétés :
• isPlaying pour définir si le son est lancé ou en pause.
• playbackInstance pour contenir l’audio instance.
• Volume et currentTrackIndex pour le son en cours de lecture.
• IsBuffering pour lancer.
Comme suivant :
18
Ensuite loadAudio() qui gérera le chargement de l'audio pour notre lecteur.
Ensuite on doit définir le rappel pour gérer les mises à jour de statut :
19
Ensuite, définissons la fonction de gestion pour gérer le saut vers le son précédent.
Tout d'abord, nous allons effacer le son actuel de l'instance de lecture en appelant
unloadAsync, ensuite nous mettrons à jour la valeur currentTrackIndex de l'état à
un de moins que la valeur actuelle.
20
La méthode renderSongInfo() renvoie JSX de base pour afficher les
métadonnées associées à la piste en cours de lecture
21
3.6. Chapitre VI : Animations basiques pour notre application
Réalisation :
• Une fois que nous avons les dépendances, déclarons les defaultProps
pour initialiser ce composant. Dans cette recette, nous n'avons qu'à
initialiser la propriété développée cela se fait comme suit :
composantWillMount() {
si (Plateforme.OS === 'android') {
UIManager.setLayoutAnimationEnabledExperimental(true); }}
22
3.7. Chapitre VII : Animations avancés pour notre application
Réalisation .
23
Ajoutons les dépendances nécessaires sur index.js :
24
La méthode renderItem retournera chaque item de la liste :
25
Définissons les propriétés par défaut pour ce compoennet
contactItem :
26
Une fois on a configuré l’animation, on est prêt pour bouger l’item :
27
3.8. Chapitre VIII : Données logiques applicative
L'interaction avec Facebook dans notre application React Native est rendue
beaucoup plus facile qu'elle ne l'aurait été autrement grâce à la
bibliothèque d'aide Facebook d'Expo.
Apres l’importations des différentes bibliothèques nous devons créer la
fonction logIn, qui utilise la fonction
Facebook.logInWithReadPermissionsAsync pour effectuer la demande de
connexion à Facebook. Cette fonction prend deux paramètres : un appID et
un objet d'options. Dans notre cas, nous ne définissons que l'option
permissions. L'option de permissions prend un tableau de chaînes pour
chaque type de permission demandée, mais dans notre cas, nous n'utilisons
que la plus basique des permissions la plus basique, 'public_profile'.
À l'étape 6, nous avons complété la fonction logIn. Elle appelle le point de
terminaison de l'API graphique de Facebook Graph de Facebook, /me,
après une connexion réussie, en utilisant le jeton fourni par les données
renvoyées par de logInWithReadPermissionsAsync.
Les informations de l'utilisateur et le statut de la connexion seront
enregistrés dans un état, ce qui déclenche un nouveau rendu et affiche les
données de l'utilisateur à l'écran.
Cet exemple ne fait qu'un appel à un seul point de terminaison API simple.
Vous pourriez utiliser les de ce point de terminaison pour remplir les
données de l'utilisateur dans votre application. Alternativement, on pourra
toutes fois utiliser le même jeton que celui reçu lors de la connexion pour
effectuer toutes les actions fournies par l'API graphique. Pour voir quel
type de données est à votre disposition via l'API.
28
3.9. Chapitre IX : Implémentation REDUX
Dans ce chapitre, nous allons passer pas à pas dans le processus d'ajout de
Redux à notre application.
Réalisation :
Tout d’abord commençons par les imports nécessaires depuis redux store
pour notre App.js
29
Créons maintenant la class Album :
30
Nous aurons également besoin d'une fonction pour ajouter des photos. Ici,
nous allons utiliser le package randomcolor (importé en tant que
randomColor par convention) pour créer une image avec le service
placehold.it
31
Enfin, nous ajouterons des styles afin que l'application ait une mise en
page, comme suit :
32
3.10. Chapitre X : App Workflow et Third-Party Plugins
Objectif du chapitre
33
3.11. Chapitre XI : Ajout de fonctionnalités native I
Cette recette nous guidera dans l'écriture de notre premier module native Android.
Nous allons créer un module natif HelloManager avec une méthode greetUser qui
prend le nom et un booléen isAdmin comme arguments, qui renverra un message
d'accueil que nous afficherons dans l'interface utilisateur.
Réalisation :
Pour cela nous utiliserons react-native-button librairie qui peut être installé avec
npm :
Nous allons commencer par ouvrir un nouveau projet dans Android Studio. Dans
l'écran d'accueil d'Android Studio, vous pouvez sélectionner Ouvrir un projet
Android Studio existant, puis sélectionner le répertoire Android dans le dossier du
projet.
34
Faites un clic droit sur le package com.nativemoduleapp, sélectionnez
Nouveau
35
Maintenant que nous avons configuré notre module native
HelloManager, il est temps d'y ajouter la méthode greetUser, qui
attendra comme arguments name, isAdmin, et le callback qui sera
exécuté pour envoyer le message à la couche React Native :
36
Nous avons terminé la partie Java de cette recette. Nous devons
construire notre interface utilisateur, qui invoquera la méthode native
HelloManager greetUser et affichera sa sortie
Nous devons faire une référence à l'objet HelloManager qui réside sur le
composant NativeModules importé :
37
Créons la classe App et l'état initial :
38
Nous ajouterons des styles à la mise en page et styliserons l'application ;
39
3.12. Chapitre XII : Ajout de fonctionnalités native II
L'une des fonctions les plus utilisées dans les systèmes d'exploitation de
bureau et mobiles est le presse-papiers pour copier et coller du contenu.
Un scénario courant sur mobile consiste à remplir des formulaires avec du
texte long, comme des adresses e-mail ou des mots de passe. Au lieu de le
taper avec quelques fautes de frappe, il serait plus facile d'ouvrir
l'application Contacts, de copier l'e-mail à partir de là et de le coller dans
votre TextInfo et de le coller dans votre champ TextInput.
Cette recette va montrer un exemple de base sur Android et iOS de la façon
dont nous pouvons copier et coller du texte dans notre React Native coller
du texte dans notre application React Native. Dans notre exemple
d'application, nous aurons à la fois une vue statique Text et un champ
TextInput statique et un champ TextInput que vous pouvez utiliser pour
copier son contenu dans le presse-papiers.
De plus, il y aura un bouton qui sortira le contenu du presse-papiers dans la
vue.
Mise en œuvre
40
3.13. Chapitre XIII : Intégration avec native applications
Réalisation :
41
De retour dans le Main.storyboard, ajoutons ce champ de texte, ainsi
qu'une étiquette qui définit à quoi sert l'entrée
42
Enfin, nous pouvons ajouter la fonction de rendu, qui restitue
simplement la valeur stockée dans state.userName :
React-native start
43
3.14. Chapitre XIV : Déploiement de l’application
Réalisation :
44
• Pour lancer l'application sur votre appareil connecté, appuyez
simplement sur le bouton Play. Vous devez vous assurer que votre
appareil est branché, déverrouillé et fiable pour qu'il apparaisse dans la
liste des appareils périphériques dans Xcode.
Si c'est la première fois que vous exécutez une application que vous
avez développée sur cet appareil, vous devrez également ajuster les
paramètres pour que les applications de votre compte de développeur.
Sur l'appareil iOS, ce paramètre peut être trouvé dans Paramètres |
Général | Gestion des périphériques.
1. Commençons par ouvrir notre projet React Native Android dans Android
Studio.
45
4. BILAN DU PROJET BIBLIOGRAPHIQUE :
4.1. Résumé :
Ce rapport couvre tous les aspects du livre React Native Cookbook – Second Edition,
des applications React Native, y compris les principes de base, le développement
avancé et l’intégration avec des API externes. Il vise à fournir des instructions de base
aux développeurs débutants et intermédiaires qui souhaitent apprendre à créer une
application React Native avec un minimum d'effort. Les chapitres principaux abordent
la création d'une interface utilisateur, la configuration d'un serveur et la mise en
œuvre de technologies telles que GraphQL, MobX, Redux et Webpack. En outre, il
explique comment intégrer des API externes telles que Facebook Login, Google Maps
et Firebase Realtim Database.
Bilal KHARBACH
Lors de ce projet, j’ai eu l’occasion de travailler en équipe ainsi de mettre la main sur
React Native, ce sont des points importants, car j'ai pu élargir mes connaissances dans
le développement mobile grâce à ce livre, à la fois en effectuant mes tâches
individuelles mais aussi grâce à l'échange avec mon collègue.
Luccin DIGANBOU
4.3. Conclusion :
Cette année, nous avons pris les devants en proposant notre propre vision du
développement mobile notamment React Native, nous avions en tête quelques bases et
méthodes scolaires concernant ce dernier En maitrisant le livre dans sa globalité, nous
avons eu un aperçu complet du processus de fabrication d’une application mobile via
React Native, des compétences et des connaissances qui y sont attachées.
46