Improved install instructions

This commit is contained in:
Arnaud Vergnet 2020-07-02 11:20:29 +02:00
parent a9caca9969
commit 5bfc353218
2 changed files with 77 additions and 5 deletions

View file

@ -2,7 +2,7 @@
**Vous allez devoir installer git, node et npm sur votre machine, puis cloner ce dépôt.** **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). 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. 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) * [Téléchargement des dépendances](#téléchargement-des-dépendances)
* [Lancement de l'appli](#lancement-de-lappli) * [Lancement de l'appli](#lancement-de-lappli)
* [Tester sur un appareil](#tester-sur-un-appareil) * [Tester sur un appareil](#tester-sur-un-appareil)
* [Compiler une version release](#compiler-une-version-release)
## Installation de Git ## Installation de Git
@ -42,7 +43,7 @@ sudo apt-get install -y nodejs
## Installation de React Native ## 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 ## 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 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 ## 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 ````shell script
npm install 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). 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 ### 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 ```shell script
cd ios && pod install cd ios && pod install
``` ```
@ -83,12 +101,59 @@ npx react-native start
### Android ### 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 :
<details>
<summary>gradle.properties</summary>
````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
````
</details>
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 : Dans la deuxième console, lancez la commande suivante :
````shell script ````shell script
npx react-native run-android npx react-native run-android
```` ````
### iOS ### 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) : Dans la deuxième console, lancez la commande suivante (valable que sur Mac) :
````shell script ````shell script
npx react-native run-ios npx react-native run-ios
@ -123,3 +188,7 @@ En remplaçant `NOM DU SIMULATEUR` par le simulateur que vous voulez.
#### Appareil Physique #### Appareil Physique
Aucune idée je suis pauvre je n'ai ni Mac ni iPhone. 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)

View file

@ -9,6 +9,7 @@ Créée pendant l'été 2019, cette application compatible Android et iOS permet
- Menu du RU - Menu du RU
- Disponibilité des salles libre accès - Disponibilité des salles libre accès
- Réservation des Bib'Box - 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. 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) ## [Notes sur l'état actuel du projet](NOTES.md)
## Liens utiles ## 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](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 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 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) * [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)