Saltar al contenido principal

Requisitos previos

Antes de clonar el repositorio y compilar el proyecto es necesario disponer del siguiente software instalado y configurado en la máquina de desarrollo.

Entorno de desarrollo​

HerramientaVersión mínimaNotas
Android StudioHedgehog (2023.1.1) o superiorSe recomienda la versión más reciente estable
JDK11Configurado como sourceCompatibility y targetCompatibility en el módulo :app
Gradle8.13Gestionado por el wrapper incluido en el repositorio (gradlew)
Android SDK (compileSdk)36Instalar desde el SDK Manager de Android Studio
Android SDK (minSdk)24 (Android 7.0 Nougat)La aplicación no se instala en versiones anteriores
Kotlin2.0+Gestionado por el plugin kotlin.android declarado en build.gradle.kts

Cuentas de servicio necesarias​

El proyecto depende de dos backends externos que requieren cuentas activas:

Supabase

Se necesita un proyecto de Supabase con las tablas del esquema descritas en Base de datos. Las credenciales (SUPABASE_URL y SUPABASE_KEY) se declaran como constantes en AppConfig.kt. Para entornos de producción se recomienda moverlas a un fichero local.properties o a variables de entorno y no incluir los valores reales en el repositorio.

Firebase

Se necesita un proyecto de Firebase con el servicio Data Connect habilitado. El fichero google-services.json debe copiarse en app/google-services.json. Este fichero no debe subirse al repositorio si el proyecto es público.

Permisos requeridos por la aplicación​

El AndroidManifest.xml declara los siguientes 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" />
PermisoTipoPropósito
INTERNETNormalAcceso a Supabase y Firebase
ACCESS_NETWORK_STATENormalComprobación de conectividad
POST_NOTIFICATIONSRuntime (Android 13+)Mostrar notificaciones de recordatorio de reservas
SCHEDULE_EXACT_ALARMNormalProgramar alarmas exactas para los recordatorios
USE_EXACT_ALARMNormalGarantía adicional de exactitud de alarmas en API 33+
RECEIVE_BOOT_COMPLETEDNormalDeclarado para futura reprogramación de alarmas tras reinicio

El permiso POST_NOTIFICATIONS se solicita en tiempo de ejecución desde MainActivity.onCreate() en dispositivos con Android 13 (API 33) o superior. En versiones anteriores el permiso se concede automáticamente. La aplicación sigue funcionando sin este permiso, pero no enviará notificaciones de recordatorio.

La conectividad de red es imprescindible para el funcionamiento de la aplicación ya que todas las operaciones de datos son remotas.