# Installer l'application depuis ce dépot **Vous allez devoir installer git, node et npm sur votre machine, puis cloner ce dépôt.** Tout est expliqué dans ce guide, si vous avez un problème ou une question, merci de me contacter par mail : [app@amicale-insat.fr](mailto:app@amicale-insat.fr) Ce guide a été testé sur Linux (Ubuntu 18.04). Si vous utilisez Windows, débrouillez-vous ou installez Linux j'ai la flemme de tester. ## Table des matières * [Installation de Git](#installation-de-git) * [Installation de node](#installation-de-node) * [Installation de React Native](#installation-de-react-native) * [Configuration de NPM](#configuration-de-npm) * [Installation](#installation) * [Téléchargement du dépot](#téléchargement-du-dépot) * [Téléchargement des dépendances](#téléchargement-des-dépendances) * [Lancement de l'appli](#lancement-de-lappli) * [Tester sur un appareil](#tester-sur-un-appareil) * [Compiler une version release](#compiler-une-version-release) ## Installation de Git Entrez la commande suivante pour l'installer : ```shell script sudo apt install git ``` ## Installation de node Vous devez avoir une version de node > 12.0. Pour cela, vérifiez avec la commande : ```shell script nodejs -v ``` Si ce n'est pas le cas, entrez les commandes suivantes pour installer la version 12 ([plus d'informations sur ce lien](https://github.com/nodesource/distributions/blob/master/README.md#debinstall)): ```shell script curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs ``` ## Installation de React Native Merci de cliquer sur [ce lien](https://reactnative.dev/docs/environment-setup) et de suivre la procédure d'installation officielle sous l'onglet **React Native CLI Quickstart**, en sélectionnant ensuite votre plateforme. ## Téléchargement du dépôt Clonez ce dépôt à l'aide de la commande suivante : ````shell script git clone https://git.etud.insa-toulouse.fr/vergnet/application-amicale.git ```` Toute modification doit être réalisée sur la branche de développement (pas de commit direct sur master). Dev est ensuite fusionnée avec master une fois qu'une version stable est prête. Ainsi, en prenant la branche master a n'importe quel moment, il devrait être possible de compiler une version stable. Si vous voulez utiliser la branche de développement, réalisez la commande suivante : ````shell script git checkout dev ```` Pour revenir sur la branche principale, effectuez la commande ````shell script git checkout master ```` ## Installation du projet Une fois le dépôt sur votre machine et git sur la branche de votre choix, ouvrez le terminal dans le dossier du dépôt cloné et lancez le script d'installation avec la commande suivante : ````shell script ./install.sh [mode] ```` En remplaçant `[mode]` par le mode d'installation de votre choix. Les valeurs valides sont : ```` --android Installation juste pour Android --ios Installation juste pour iOS --all Installation pour Android et iOS ```` Lors de l'installation pour Android, vous serez amenés à créer un keystore (permettant d'authentifier l'appli sur votre tel). Plusieurs informations vous seront demandées, mais ce keystore n'est utile que pour le debug, donc vous pouvez laisser tous les champs vides, et taper `y` lors de la confirmation pour valider comme dans l'exemple ci-dessous : ```` Creating debug android keystore... What is your first and last name? [Unknown]: What is the name of your organizational unit? [Unknown]: What is the name of your organization? [Unknown]: What is the name of your City or Locality? [Unknown]: What is the name of your State or Province? [Unknown]: What is the two-letter country code for this unit? [Unknown]: Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct? [no]: y Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days for: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown [Storing debug.keystore] Done Creating gradle.properties file... Done ```` En cas de problème d'installation (notamment lors du changement de branche), lancez la commande suivante pour réinstaller seulement les modules node : ````shell script ./clear-node-cache.sh ```` ## Lancement de l'appli Il est conseillé d'utiliser un logiciel comme **WebStorm** (logiciel pro gratuit pour les étudiants) pour éditer l'application car ce logiciel est compatible avec les technologies utilisées. Vous aurez besoin de 2 consoles : * Une pour lancer le *Bundler*, qui permet de mettre à jour l'application en temps réel (vous pouvez le laisser tout le temps ouvert). * Une autre pour installer l'application sur votre appareil/simulateur. Pour lancer le *Bundler*, assurez vous d'être dans le dossier de l'application, et lancez cette commande : ````shell script npx react-native start ```` **Ne stoppez pas le Metro Bundler dans la console à chaque changement !** Toutes les modifications sont appliquées automatiquement, pas besoin de stopper et de redémarrer pour des petits changements ! Il est seulement nécessaire de redémarrer le Metro Bundler quand vous changez des librairies ou des fichiers. ### Android Dans la deuxième console, lancez la commande suivante : ````shell script npx react-native run-android ```` ### iOS **PRÉREQUIS** : Il faut être connecté avec le compte développeur de l'amicale sur Xcode pour pouvoir compiler ! Dans la deuxième console, lancez la commande suivante (valable que sur Mac) : ````shell script npx react-native run-ios ```` ## Tester sur un appareil Assurez vous d'avoir installé et lancé le projet comme expliqué plus haut. ### Android #### Émulateur [Suivez la procédure sur ce lien pour installer un émulateur](https://docs.expo.io/versions/latest/workflow/android-studio-emulator/). Une fois l'emulateur installé et démarré, lancez l'application comme expliqué plus haut. #### Appareil Physique Branchez votre appareil, allez dans les options développeurs et activer le *USB Debugging*. Une fois qu'il est activé et branché, lancez l'appli comme expliqué plus haut. ### iOS #### Émulateur Installez le logiciel Xcode et téléchargez l'émulateur de votre choix. Ensuite, lancez la commande suivante pour lancer l'application sur votre émulateur. ````shell script npx react-native run-ios --simulator="NOM DU SIMULATEUR" ```` En remplaçant `NOM DU SIMULATEUR` par le simulateur que vous voulez. #### Appareil Physique Aucune idée je suis pauvre je n'ai ni Mac ni iPhone. ## Compiler une version release Merci de me contacter par mail pour toute information sur les release : [app@amicale-insat.fr](mailto:app@amicale-insat.fr)