From 5bfc3532181ac7c60071b20ae05ff28a10a22e63 Mon Sep 17 00:00:00 2001 From: Arnaud Vergnet Date: Thu, 2 Jul 2020 11:20:29 +0200 Subject: [PATCH] Improved install instructions --- INSTALL.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++--- README.md | 5 +++- 2 files changed, 77 insertions(+), 5 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 52ec982..d89864e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -2,7 +2,7 @@ **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 +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 à été testé sur Linux (Ubuntu 18.04). Si vous utilisez Windows, débrouillez-vous ou installez Linux j'ai la flemme de tester. @@ -17,6 +17,7 @@ Si vous utilisez Windows, débrouillez-vous ou installez Linux j'ai la flemme de * [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 @@ -42,7 +43,7 @@ sudo apt-get install -y nodejs ## Installation de React Native -Merci de suivre les [instructions d'installation](https://reactnative.dev/docs/environment-setup) sur le site officiel. +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 @@ -51,17 +52,34 @@ Clonez ce dépôt à l'aide de la commande suivante : 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 +```` + ## Téléchargement des dépendances -Une fois le dépôt sur votre machine, ouvrez le terminal dans le dossier du dépôt cloné et tapez : +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 tapez : ````shell script npm install ```` Ceci installera toutes les dépendances listées dans le fichier _package.json_. Cette opération peut prendre quelques minutes et utilisera beaucoup d'espace disque (plus de 300Mo). +En cas de problème d'installation (notamment lors du changement de branche), lancez la commande suivante pour tout réinstaller : +````shell script +./clear-node-cache.sh +```` + ### Instructions pour iOS -Pour iOS, en plus de la commande précédente, il faut aussi installer les dépendances iOS. Pour cela, allez dans le dossier `ios` et installez les pods : +Pour iOS, en plus de la commande précédente, il faut aussi installer les dépendances iOS. Pour cela, allez dans le dossier `ios` et installez les pods grâce à la commande suivante : ```shell script cd ios && pod install ``` @@ -83,12 +101,59 @@ npx react-native start ### Android + +**PRÉREQUIS** : Il est nécessaire de générer un fichier keystore.debug dans le dossier `android/app` pour qu'android puisse détecter que l'application est une version de debug. Pour cela, lancez la commande suivante : +````shell script +cd android/app && keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 +```` + +Ensuite, vous aurez besoin de créer un autre fichier dans le dossier `android/`, appelé gradle.properties avec le contenu suivant : + +
+gradle.properties + +````properties +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true +# Version of flipper SDK to use with React Native +FLIPPER_VERSION=0.33.1 +```` +
+ +Ce fichier n'est pas synchronisé sur git car il peut contenir des secrets relatifs à la clé de signature du build de release. + 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 @@ -123,3 +188,7 @@ 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) diff --git a/README.md b/README.md index 76d6dd3..9ce9856 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ Créée pendant l'été 2019, cette application compatible Android et iOS permet - Menu du RU - Disponibilité des salles libre accès - Réservation des Bib'Box + - Et d'autres services de l'INSA Ce dépôt contient la source de cette application, sous licence GPLv3. @@ -32,8 +33,10 @@ Cette application utilisait initialement Expo, permettant de simplifier grandeme ## [Notes sur l'état actuel du projet](NOTES.md) ## Liens utiles +* [Tutoriel JavaScript](https://www.w3schools.com/js) (Un minimum de connaissances en JavaScript est nécessaire) * [Documentation React Native](https://reactnative.dev/docs/getting-started) (La techno de base) * [Documentation React Native Paper](https://callstack.github.io/react-native-paper/) (Le framework d'UI) -* [Documentation React navigation](https://reactnavigation.org/docs/getting-started) (Le framework de navigation entre écrans) +* [Documentation React Navigation](https://reactnavigation.org/docs/getting-started) (Le framework de navigation entre écrans) * [Documentation Jest](https://jestjs.io/docs/en/getting-started) (Tests unitaires JavaScript) * [Documentation Flow](https://flow.org/en/docs/react/) (Utilitaire de typage statique pour JavaScript) +* [Webstorm](https://www.jetbrains.com/webstorm/buy/#discounts?billing=yearly) (Un logiciel pas mal que j'utilise et gratuit pour les étudiants/projets open-source)