Saltar al contingut principal

Requisits previs

Abans de clonar el repositori i compilar el projecte cal disposar del següent programari instal·lat i configurat a la màquina de desenvolupament.

Entorn de desenvolupament​

EinaVersió mínimaNotes
Android StudioHedgehog (2023.1.1) o superiorEs recomana la versió més recent estable
JDK11Configurat com a sourceCompatibility i targetCompatibility al mòdul :app
Gradle8.13Gestionat pel wrapper inclòs al repositori (gradlew)
Android SDK (compileSdk)36Instal·lar des de l'SDK Manager d'Android Studio
Android SDK (minSdk)24 (Android 7.0 Nougat)L'aplicació no s'instal·la a versions anteriors
Kotlin2.0+Gestionat pel plugin kotlin.android declarat a build.gradle.kts

Comptes de servei necessaris​

El projecte depèn de dos backends externs que requereixen comptes actius:

Supabase

Cal un projecte de Supabase amb les taules de l'esquema descrites a Base de datos. Les credencials (SUPABASE_URL i SUPABASE_KEY) es declaren com a constants a AppConfig.kt. Per a entorns de producció es recomana moure-les a un fitxer local.properties oa variables d'entorn i no incloure els valors reals al repositori.

Base de foc

Cal un projecte de Firebase amb el servei Data Connect habilitat. El fitxer google-services.json s'ha de copiar a app/google-services.json. Aquest fitxer no s'ha de pujar al dipòsit si el projecte és públic.

Permisos requerits per l'aplicació​

El AndroidManifest.xml declara els següents permisos:

<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" />
PermísTipusPropòsit
INTERNETNormalAccés a Supabase i Firebase
ACCESS_NETWORK_STATENormalComprovació de connectivitat
POST_NOTIFICATIONSRuntime (Android 13+)Mostra notificacions de recordatori de reserves
SCHEDULE_EXACT_ALARMNormalProgramar alarmes exactes per als recordatoris
USE_EXACT_ALARMNormalGarantia addicional d'exactitud d'alarmes a API 33+
RECEIVE_BOOT_COMPLETEDNormalDeclarat per a futura reprogramació d'alarmes després de reiniciar

El permís POST_NOTIFICATIONS se sol·licita en temps d'execució des de MainActivity.onCreate() a dispositius amb Android 13 (API 33) o superior. En versions anteriors, el permís es concedeix automàticament. L'aplicació continua funcionant sense aquest permís, però no enviarà notificacions de recordatori.

La connectivitat de xarxa és imprescindible per al funcionament de laplicació ja que totes les operacions de dades són remotes.