Pular para o conteúdo principal

Pré-requisitos

Antes de clonar o repositório e compilar o projeto, é necessário ter os seguintes softwares instalados e configurados na máquina de desenvolvimento.

Ambiente de desenvolvimento​

FerramentaVersão mínimaNotas
AndroidStudioOuriço (2023.1.1) ou superiorA versão estável mais recente é recomendada
JDK11Configurado como sourceCompatibility e targetCompatibility no módulo :app
Gradil8.13Gerenciado pelo wrapper incluído no repositório (gradlew)
Android SDK (compileSdk)36Instalar a partir do Android Studio SDK Manager
SDK do Android (minSdk)24 (Android 7.0 Nougat)O aplicativo não é instalado em versões anteriores
Kotlin2.0+Gerenciado pelo plugin kotlin.android declarado em build.gradle.kts

Contas de serviço necessárias​

O projeto depende de dois backends externos que requerem contas ativas:

Supabase

Você precisa de um projeto Supabase com as tabelas de esquema descritas em Base de datos. As credenciais (SUPABASE_URL e SUPABASE_KEY) são declaradas como constantes em AppConfig.kt. Para ambientes de produção é recomendado movê-los para um arquivo local.properties ou para variáveis ​​de ambiente e não incluir os valores reais no repositório.

Firebase

É necessário ter um projeto do Firebase com o serviço Data Connect ativado. O arquivo google-services.json deve ser copiado para app/google-services.json. Este arquivo não deve ser carregado no repositório se o projeto for público.

Permissões exigidas pelo aplicativo​

O AndroidManifest.xml declara as seguintes permissões:

<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" />
PermissãoTipoFinalidade
INTERNETNormaisAcesso ao Supabase e Firebase
ACCESS_NETWORK_STATENormaisVerificação de conectividade
POST_NOTIFICATIONSTempo de execução (Android 13+)Mostrar notificações de lembretes de reserva
SCHEDULE_EXACT_ALARMNormaisDefina alarmes exatos para lembretes
USE_EXACT_ALARMNormaisGarantia adicional de precisão do alarme em API 33+
RECEIVE_BOOT_COMPLETEDNormaisDeclarado para futura reprogramação de alarme após reinicialização

A permissão POST_NOTIFICATIONS é solicitada em tempo de execução de MainActivity.onCreate() em dispositivos que executam Android 13 (API 33) ou superior. Nas versões anteriores a permissão é concedida automaticamente. O aplicativo ainda funciona sem essa permissão, mas não envia notificações de lembrete.

A conectividade de rede é essencial para o funcionamento da aplicação, uma vez que todas as operações de dados são remotas.