Passer au contenu principal

Prérequis

Avant de cloner le référentiel et de compiler le projet, il est nécessaire d'avoir installé et configuré les logiciels suivants sur la machine de développement.

Environnement de développement​

OutilVersion minimaleRemarques
AndroidStudioHérisson (2023.1.1) ou supérieurLa dernière version stable est recommandée
JDK11Configuré comme sourceCompatibility et targetCompatibility dans le module :app
Diplômé8.13Géré par le wrapper inclus dans le référentiel (gradlew)
SDK Android (compileSdk)36Installer à partir du gestionnaire de SDK Android Studio
SDK Android (minSdk)24 (Android 7.0 Nougat)L'application ne s'installe pas sur les versions précédentes
Kotlin2.0+Géré par le plugin kotlin.android déclaré dans build.gradle.kts

Comptes de service requis​

Le projet dépend de deux backends externes qui nécessitent des comptes actifs :

Subase

Vous avez besoin d'un projet Supabase avec les tables de schéma décrites dans Base de datos. Les informations d'identification (SUPABASE_URL et SUPABASE_KEY) sont déclarées comme constantes dans AppConfig.kt. Pour les environnements de production, il est recommandé de les déplacer vers un fichier local.properties ou vers des variables d'environnement et de ne pas inclure les valeurs réelles dans le référentiel.

Firebase

Un projet Firebase avec le service Data Connect activé est requis. Le fichier google-services.json doit être copié dans app/google-services.json. Ce fichier ne doit pas être téléchargé dans le référentiel si le projet est public.

Autorisations requises par l'application​

Le AndroidManifest.xml déclare les autorisations suivantes :

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
AutorisationTapezObjectif
INTERNETNormaleAccès à Supabase et Firebase
ACCESS_NETWORK_STATENormaleVérification de la connectivité
POST_NOTIFICATIONSExécution (Android 13+)Afficher les notifications de rappel de réservation
SCHEDULE_EXACT_ALARMNormaleDéfinir des alarmes exactes pour les rappels
USE_EXACT_ALARMNormaleAssurance supplémentaire de la précision des alarmes dans API 33+
RECEIVE_BOOT_COMPLETEDNormaleDéclaré pour une future reprogrammation d'alarme après réinitialisation

L'autorisation POST_NOTIFICATIONS est demandée lors de l'exécution à partir de MainActivity.onCreate() sur les appareils exécutant Android 13 (API 33) ou version ultérieure. Dans les versions précédentes, l'autorisation était accordée automatiquement. L'application fonctionne toujours sans cette autorisation, mais elle n'enverra pas de notifications de rappel.

La connectivité réseau est essentielle au fonctionnement de l'application puisque toutes les opérations sur les données sont distantes.