Dans cette page, nous allons procéder à une installation quickstart de l'application, c'est-à-dire que cette dernière...dernière…
- Fonctionnera de manière autonome avec des mock pas de connexion au SI
- Présentera la liste exhaustive des services qu'elle offre
- Ne proposera aucune personnalisation graphique
...
Cloner les sources disponibles sous gitHub GitHub https://github.com/univlorraine/esup-multi
| Bloc de code |
|---|
git clone git@githubhttps://github.com:/univlorraine/esup-multi.git |
...
Le CMS HeadLess va permettre de fournir du contenu dynamique au client mobile.
Plusieurs CMS sont possibles, celui par défaut est Wordpress.
| Développer | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
DirectusInstallationLe CMS se lance avec Docker. Par défaut, la configuration proposée utilise MySQL
Import
|
...
|
...
Permissions
|
...
|
...
pour plus d'explication consultez la page suivante |
...
Installation du CMS
Pour la mise en place de WordPress, se référer à la documentation suivante : Installer et configurer Wordpress
Notes :
- Le fichier docker-compose.yml est dans env/local/docker/wordpress
- Pour se connecter, les identifiants par défaut sont :
- Identifiant :
admin - Mot de passe :
password
- Identifiant :
Installation du connecteur CMS
Le choix du CMS n'étant pas imposé, un connecteur est nécessaire pour le relier au reste du projet.
Le code source du connecteur est fourni dans le projet Esup-Multi, au niveau de l'arborescence dev/connectors/multi-cms-connector
Commencez par installer les dépendances du connecteur : npm ci
Pour plus d'informations sur l'installation et la configuration du connecteur, se référer à la documentation suivante : Connecteur CMS Headless
Pour lancer le connecteur : npm start
Le Backend
Le backend doit disposer des briques suivantes (Voir l'installation des pré-requis) :
- Une base MongoDB
- Un serveur Nats
- Une base Redis
- Un CMS
- Connecteur CMS
Configuration des variables d'environnement
Dans dev/user-backend-nest copier et renommer chaque fichier .env.dist en .env pour :
- la gateway dans /main
- chaque µService dans /microservices/*
Dans chaque µService utilisant le CMS positionner la variable <MICRO_SERVICE_NAME>_SERVICE_CMS_CONNECTOR_API_BEARER_TOKEN avec le token généré précédemment (voir Connecteur CMS Headless) dans le fichier .env, ainsi que l'URL du connecteur CMS sur la variable <MICRO_SERVICE_NAME>_SERVICE_CMS_CONNECTOR_API_URL .
Exemple :
| Bloc de code |
|---|
SOCIAL_NETWORK_SERVICE_CMS_CONNECTOR_API_URL=http://localhost:4000
SOCIAL_NETWORK_SERVICE_CMS_CONNECTOR_API_BEARER_TOKEN=azertyqsdfg123456 |
Renseigner dans /main/.env et dans /microservices/auth/.env un secret pour les JWT dans la variable AUTH_SERVICE_JWT_SECRET
| Bloc de code |
|---|
AUTH_SERVICE_JWT_SECRET=secretsecret |
Serveur de mock
L'application multi est fournie avec un serveur de mock. Il s'agit d'API qui renvoient des données statiques qui vous permettent d'émuler ce que retourneraient des connecteurs branchés sur votre système d'information. Esup-multi est donc pré-paramétré pour fonctionner avec ces mocks et les paramètres par défaut des services à installer en prérequis.
L'URL de chaque mock est précisée par défaut dans le fichier .env du microservice sous la forme :
| Bloc de code |
|---|
http://localhost:3099/mocking/<api_exemple> |
Il n'y a donc rien de plus à configurer de ce côté-là.
Dans dev/user-backend-mocks copier et renommer chaque fichier .env.dist en .env
Installer le serveur depuis /dev/user-backend-mocks/ avec la commande :
| Bloc de code |
|---|
npm install |
Puis démarrer le serveur avec la commande :
| Bloc de code |
|---|
npm start |
| Remarque |
|---|
| Ces mocks ne servent qu'à des fins de test et ne doivent pas être déployés dans un environnement de production. Vous trouverez plus d'informations dans le fichier README situé à la racine du dossier /dev/user-backend-mocks/. |
Installer les dépendances et build
Placez-vous à la racine du projet et installez les dépendances :
| Bloc de code | ||
|---|---|---|
| ||
$ npm ci |
puis lancez (toujours depuis la racine du projet) :
| Bloc de code | ||
|---|---|---|
| ||
$ npm run build:back |
Cette commande va, pour la gateway et chaque microservice, installer les dépendances et build.
| Développer | ||
|---|---|---|
| ||
|
Démarrer la gateway et les microservices
Deux modes de fonctionnement sont possibles :
- Normal :
Bloc de code language bash npm run start:back - Dev (redémarrage après modification) :
Bloc de code language bash npm run start:back:dev
Ces commandes vont lancer en parallèle la gateway ainsi que tous les microservices.
Le Client
Prérequis
- Android Studio + JDK pour l'app Android
- Xcode + CocoaPods à jour (MacOS uniquement) pour l'app iOS
- Avoir un backend fonctionnel, démarré et accessible depuis la machine locale ou le périphérique qui seront utilisés pour les tests
- Avoir une instance du CMS headless fonctionnelle, démarrée et accessible depuis le backend ET la machine locale ou le périphérique qui seront utilisés pour les tests
Paramétrages minimaux de l'application cliente
Dans /dev/user-frontend-ionic copier, coller et renommer le fichier capacitor.config.ts.dist en capacitor.config.ts. Ce fichier permet de paramétrer le nom de l'app et son identifiant, on laissera les valeurs par défaut pour le quickstart. Copier, coller et renommer également le fichier angular.json.dist en angular.json. Ce fichier permet de paramétrer les chemins vers les assets, on laissera les valeurs par défaut pour le quickstart.
Dans /dev/user-frontend-ionic/src/environments copier, coller et renommer le fichier environment.ts.dist en environment.ts. (Laisser les 2 lignes qui concernent firebase en commentaire)
Pour utiliser le thème par défaut disponible avec la démo, dans le sous-dossier /src/theme :
- copier et renommer le répertoire /app-theme-dist en /app-theme
- copier et renommer le fichier theme.scss.dist en theme.scss
Pour personnaliser tous ces éléments, voir la documentation
Préparation des fichiers Ionic
Depuis dev/user-frontend-ionic/,
installer les dépendances :
| Bloc de code |
|---|
$ npm ci |
puis, préparer l'app :
| Bloc de code |
|---|
$ npm run build |
Cette commande va compiler les assets et préparer les fichiers pour le build des applications natives.
Elle va en fait exécuter 2 commandes :
- prebuild (exécuté automatiquement avant build) :
npm run module:build-all=> va compiler les différents modules Angular présents dans le dossierprojects/et les placer dans un dossierdist/ - build :
ng build=> va compiler l'app Angular et les assets associés présents dans le dossiersrc/et les placer dans un dossierwww/
Build des apps
Build appli web
Il n'y a rien de plus à faire à ce niveau car les fichiers compilés nécessaires au fonctionnement de l'application web ont été buildés via la commande npm run build ci-dessus.
Build Android
Ajouter le support d'Android
Pour ajouter le support d'Android au projet, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor add android |
Cette commande va générer tous les fichiers nécessaires au build d'une application Android et les placer dans un dossier android/
Elle va également ajouter à ces fichiers, une copie des assets et des sources se trouvant dans www/
| Remarque |
|---|
Cette commande n'est à exécuter qu'une seule fois sur le projet. Elle permet d'initier les fichiers nécessaires au build d'une app Android |
Copier les sources
Pour ajouter les assets et sources du projet compilés, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor sync android |
Cette commande va copier les fichiers de l'app Angular compilés dans le dossier android/ (équivalent de la commande npx capacitor copy android) en plus de faire correspondre les différents plugins Capacitor mis en place sur le projet avec les différentes fonctionnalités natives Android.
Ajouter la conf Firebase
Pour que le projet démarre correctement, l'application a besoin d'un minimum de configuration Firebase pour la gestion des notifications.
Pour cela, copiez le fichier src/environments/firebase/android/google-service.json.dist dans le répertoire android/app/ et renommez-le google-services.json
Build iOS
| Avertissement |
|---|
| Les tests sur périphérique iOS externe ou même émulateur ne sont possibles que depuis une machine tournant sur macOS (nécessite l'utilisation de XCode) |
Ajouter le support d'iOS
Pour ajouter le support d'iOS au projet, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor add ios |
Cette commande va générer tous les fichiers nécessaires au build d'une application iOS et les placer dans un dossier ios/
Elle va également ajouter à ces fichiers, une copie des assets et des sources se trouvant dans www/
| Remarque |
|---|
Cette commande n'est à exécuter qu'une seule fois sur le projet. Elle permet d'initier les fichiers nécessaires au build d'une app iOS |
Si vous utilisez la version 7 de Capacitor, la commande précédente risque d'échouer. Si c'est le cas, modifiez la version d'iOS dans le fichier ios/App/Podfile, par défaut ce sera la version à 14.0, ce n'est pas suffisant :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
- platform :ios, '14.0'
+ platform :ios, '15.5' |
puis lancez :
| Bloc de code | ||
|---|---|---|
| ||
cd ios/App && pod update && cd -
npx cap update ios
cd ios/App && pod update && cd - # pour vérifier que pour pod tout est bon |
Copier les sources
Pour ajouter les assets et sources du projet compilés
Le Backend
Le backend doit disposer des briques suivantes (Voir l'installation des pré-requis) :
- Une base MongoDB
- Un serveur Nats
- Une base Redis
- Instance de Directus (cf. section Le CMS Headless)
Configuration des variables d'environnement
| Avertissement | ||
|---|---|---|
| ||
Mettre les mocks en place |
| Avertissement | ||
|---|---|---|
| ||
Créer les fichiers .env.dist dans le main et les microservices |
=> Lister tous les dossiers dans lesquels renommer le fichier .env.dist en .env (selon les modules qu'on aura décidé de mettre en place / activer côté client pour la démo)
+ token directus
Installer les dépendances et build
Placez-vous à la racine du projet et installez les dépendances :
| Bloc de code | ||
|---|---|---|
| ||
$ npm ci |
puis lancez (toujours depuis la racine du projet) :
| Bloc de code | ||
|---|---|---|
| ||
$ npm run build:back |
Cette commande va, pour la gateway et chaque microservice, installer les dépendances et build.
Démarrer la gateway et les microservices
Deux modes de fonctionnement sont possibles :
- Normal :
Bloc de code language bash npm run start:back - Dev (redémarrage après modification) :
Bloc de code language bash npm run start:back:dev
Ces commandes vont lancer en parallèle la gateway ainsi que tous les microservices.
Le Client
Prérequis
- Android Studio + JDK pour l'app Android
- Xcode + CocoaPods à jour (MacOS uniquement) pour l'app iOS
- Avoir un backend fonctionnel, démarré et accessible depuis la machine locale ou le périphérique qui seront utilisés pour les tests
- Avoir une instance du CMS headless fonctionnelle, démarrée et accessible depuis le backend ET la machine locale ou le périphérique qui seront utilisés pour les tests
Paramétrages minimaux de l'application cliente
Dans /dev/user-frontend-ionic copier, coller et renommer le fichier capacitor.ts.dist en capacitor.ts. Ce fichier permet de paramétrer le nom de l'app et son identifiant, on laissera les valeur par défaut pour le quickstart.
Dans /dev/user-frontend-ionic/src/environments copier, coller et renommer le fichier environment.ts.dist en environment.ts. (Laisser les 2 lignes qui concernent firebase en commentaire)
Pour utiliser le thème par défaut disponible avec la démo, dans le sous-dossier /src/theme et renommer le fichier theme.scss.dist en theme.scss
Pour personnaliser tout ces éléments voir la documentation
Préparation des fichiers Ionic
Depuis dev/user-frontend-ionic/,
installer les dépendances :
| Bloc de code |
|---|
$ npm ci |
puis, préparer l'app :
| Bloc de code |
|---|
$ npm run build |
Cette commande va compiler les assets et préparer les fichiers pour le build des applications natives.
Elle va en fait exécuter 2 commandes :
- prebuild (exécuté automatiquement avant build) :
npm run module:build-all=> va compiler les différents modules Angular présents dans le dossierprojects/et les placer dans un dossierdist/ - build :
ng build=> va compiler l'app Angular et les assets associés présents dans le dossiersrc/et les placer dans un dossierwww/
Build des apps
Build appli web
Il n'y a rien de plus à faire à ce niveau car les fichiers compilés nécessaires au fonctionnement de l'application web ont été buildés via la commande npm run build ci-dessus.
Build Android
Ajouter le support d'Android
Pour ajouter le support d'Android au projet, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor add android |
Cette commande va générer tous les fichiers nécessaires au build d'une application Android et les placer dans un dossier android/
Elle va également ajouter à ces fichiers, une copie des assets et des sources se trouvant dans www/
| Remarque |
|---|
Cette commande n'est à exécuter qu'une seule fois sur le projet. Elle permet d'initier les fichiers nécessaires au build d'une app Android |
Copier les sources
Pour ajouter les assets et sources du projet compilés, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor sync android |
Cette commande va copier les fichiers de l'app Angular compilés dans le dossier android/ (équivalent de la commande npx capacitor copy android) en plus de faire correspondre les différents plugins Capacitor mis en place sur le projet avec les différentes fonctionnalités natives Android.
Build iOS
| Avertissement |
|---|
| Les tests sur périphérique iOS externe ou même émulateur ne sont possibles que depuis une machine tournant sur macOS (nécessite l'utilisation de XCode) |
Ajouter le support d'iOS
Pour ajouter le support d'iOS au projet, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor addsync ios |
Cette commande va générer tous copier les fichiers nécessaires au build d'une application iOS et les placer dans un dossier ios/
Elle va également ajouter à ces fichiers, une copie des assets et des sources se trouvant dans www/
| Remarque |
|---|
Cette commande n'est à exécuter qu'une seule fois sur le projet. Elle permet d'initier les fichiers nécessaires au build d'une app iOS |
Copier les sources
Pour ajouter les assets et sources du projet compilés, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor sync ios |
de l'app Angular compilés dans le dossier ios/ (équivalent de la commande npx capacitor copy ios) en plus de faire correspondre les différents plugins Capacitor mis en place sur le projet avec les différentes fonctionnalités natives iOS.
Ajouter la conf Firebase
De même que pour Android, pour que le projet démarre correctement, l'application a besoin d'un minimum de configuration Firebase pour la gestion des notifications.
Copiez le fichier src/environments/firebase/ios/GoogleService-Info.plist.dist dans le répertoire ios/App/App/ et renommez-le GoogleService.plistCette commande va copier les fichiers de l'app Angular compilés dans le dossier ios/ (équivalent de la commande npx capacitor copy ios) en plus de faire correspondre les différents plugins Capacitor mis en place sur le projet avec les différentes fonctionnalités natives iOS.
Générer les splashscreens et les icônes
Les icônes et le splashscreens se trouvent par défaut dans /dev/user-frontend-ionic/src/theme/defaultapp-theme/resources
Pour les ajouter dans les app natives Android et iOS, il est nécessaire d'exécuter la commande suivante :
| Bloc de code |
|---|
$ npx capacitor-assets generate --assetPath src/theme/defaultapp-theme/resources |
Configurer les autorisations sur les périphériques
Suivant les modules que vous souhaiterez utiliser dans votre application, il peut parfois être nécessaire d'ajouter les autorisations nécessaires d'accès aux fonctionnalités native natives du périphérique (appareil photo, annuaire des contacts, etc...).
...
Éditer le fichier android/app/src/main/AndroidManifest.xml et y coller le contenu suivant (remplacer l'existant) :
| Bloc de code | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<supports-screens android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:hardwareAccelerated="true">
<activity
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
android:name="fr.esupportail.mobile.multi.MainActivity"
android:label="@string/title_activity_main"
android:theme="@style/AppTheme.NoActionBarLaunch"
android:launchMode="singleTask"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" />
</provider>
<!-- <meta-data-->
<!-- android:name="firebase_messaging_auto_init_enabled"-->
<!-- android:value="false" />-->
<!-- <meta-data-->
<!-- android:name="firebase_analytics_collection_enabled"-->
<!-- android:value="false" />-->
</application>
<queries>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="mailto" />
</intent>
</queries>
<!-- Features -->
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.location.gps" />
<!-- Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<!-- <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- Override Libraries -->
<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />
</manifest> |
...
| Bloc de code | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>fr</string>
<key>CFBundleDisplayName</key>
<string>Esup-Multi</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>FirebaseMessagingAutoInitEnabled</key>
<string>NO</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>mailto</string>
</array>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>NSCameraUsageDescription</key>
<string>L'application a besoin de l'appareil photo pour permettre le scan de code-barre</string>
<key>NSContactsUsageDescription</key>
<string>L'application a besoin d'accéder à votre répertoire pour vous permettre d'ajouter un contact depuis la recherche dans l'annuaire</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>L'application a besoin de connaitre votre position afin d'améliorer la présentation des services</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>L'application a besoin de la bibliothèque de photos pour permettre de stocker temporairement le scan de code-barre</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array> <array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>armv7<<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations<<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad<<key>UIViewControllerBasedStatusBarAppearance</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
</dict>
</plist> |
Tester les apps
<true/>
</dict>
</plist> |
Tester les apps
Tester l'app Web
Pour tester l'app en mode Web sur un navigateur, il est nécessaire d'avoir le client ionic d'installé sur la machine locale :
| Bloc de code |
|---|
$ npm install -g @ionic/cli |
Exécutez ensuite la commande suivante à la racine du client :
| Bloc de code |
|---|
$ ionic serve |
Le projet devrait alors se compiler et se lancer automatiquement sur une page de votre navigateur par défaut, joignable à l'adresse : http://localhost:8100
Tester l'app Android
...
Pour tester l'app en mode Web sur un navigateurAndroid, il est nécessaire d'avoir le client ionic d'installé sur la machine locale faut ouvrir le projet dans Android Studio. Pour cela, exécutez la commande suivante :
| Bloc de code |
|---|
$ npm install -g @ionic/cli |
Exécutez ensuite la commande suivante à la racine du client :
| Bloc de code |
|---|
$ ionic serve |
Le projet devrait alors se compiler et se lancer automatiquement sur une page de votre navigateur par défaut, joignable à l'adresse : http://localhost:8100
npx capacitor open android |
Une fois le projet ouvert dans Android Studio, il suffit de sélectionner le périphérique virtuel dans la barre de menu en haut, et de cliquer sur le bouton 'Run app' (triangle vert).
Android Studio va alors compiler le projet et le lancer dans un émulateur simulant le périphérique sélectionné.
| Info |
|---|
Il est tout à fait possible de lancer le projet sur un périphérique réel connecté à la machine, mais cela nécessite un peu de conf réseau afin que le périphérique puisse accéder au backend et au CMS qui tourne localement |
Tester l'app iOS
| Avertissement |
|---|
| Les tests sur périphérique iOS ne sont possibles que depuis une machine tournant sur macOS (nécessite l'utilisation de XCode) |
...
Pour tester l'app sur AndroidiOS, il faut ouvrir le projet dans Android StudioXCode. Pour cela, exécutez la commande suivante :
| Bloc de code |
|---|
$ npx capacitor open android ios |
Configuration des notifications
Une fois le projet ouvert dans Android Studio, il suffit de sélectionner le périphérique virtuel dans la barre de menu en haut, et de cliquer sur le bouton 'Run app' (triangle vert).
Android Studio va alors compiler le projet et le lancer dans un émulateur simulant le périphérique sélectionné.
| Info |
|---|
Il est tout à fait possible de lancer le projet sur un périphérique réel connecté à la machine, mais cela nécessite un peu de conf réseau afin que le périphérique puisse accéder au backend et au CMS qui tourne localement |
Tester l'app iOS
| Avertissement |
|---|
| Les tests sur périphérique iOS ne sont possibles que depuis une machine tournant sur macOS (nécessite l'utilisation de XCode) |
Pour tester l'app sur iOS, il faut ouvrir le projet dans XCode. Pour cela, exécutez la commande suivante :
| Bloc de code |
|---|
$ npx capacitor open ios |
XCode, il faut configurer le projet pour autoriser les notifications.
Sélectionnez le projet App dans l'explorer à gauche, cliquez sur la target App, switchez sur l'onglet Signing & Capabilities et cliquez sur + Capability.
Cherchez Push Notifications et ajouter la capability en double cliquant dessus.
Ajoutez également la capability Background Modes en sélectionnant la case Remote notifications
Pour finir, XCode n'importe pas automatiquement les fichiers collés dans le dossier App en dehors de l'éditeur. Il faut alors lier le fichier de configuration Firebase au projet.
Faites un clic droit sur le dossier App/ dans le menu de gauche et cliquez sur Add Files to "App"... Ajoutez alors le fichier GoogleService-Info.plist
Démarrer l'application
Pour lancer le buildUne fois le projet ouvert dans XCode, il suffit de sélectionner le périphérique virtuel dans la barre de menu en haut, et de cliquer sur le bouton 'Run' (triangle blanc).
XCode va alors compiler le projet et le lancer dans un émulateur simulant le périphérique sélectionné.
Utiliser les app
Une navigation anonyme offre quelques services.
S'authentifier avec les utilisateurs ayant pour login :
- "etu"
- "staff"
- "prof"
et mot de passe identique au login, pour avoir des services supplémentaires et dédiés à chaque profil.





