Aplicación móvil para registrar y analizar tu sueño. UI en Jetpack Compose, persistencia con Room, preferencias con DataStore.
- Minimal / iterativo: este README es breve y se irá ampliando con cada entrega.
- Registrar noches de sueño: hora de inicio/fin, duración, calidad y notas.
- Evitar duplicados por fecha (validación al guardar).
- Dashboard con último registro y resumen semanal.
- Estadísticas: promedio, mejores/peores noches y análisis por día de la semana.
- Análisis de factores: cafeína, ejercicio, tiempo de pantalla y estrés.
- Perfil de usuario: objetivo de sueño y nombre (guardado en DataStore).
- Uso opcional de sensor de luz para mostrar ambiente al registrar.
app/src/main/java/com/example/sleepwellmain/data/local/:SleepEntry,SleepDao,SleepDatabase(Room)data/repository/:SleepRepository(lógica de negocio, estadísticas)ui/screens/: pantallasHome,Log,Stats,Factors,Profileui/components/: cards y componentes reutilizablesutils/: utilidades (SleepCalculations.kt,UserPreferences,LightSensorManager)MainActivity.kt: entry-point con navegación Compose
build.gradle.kts,settings.gradle.kts,gradle/: configuración de build.gitignore: reglas para no subir archivos sensibles (keystore, local.properties, google-services.json)
Requisitos: JDK 11+, Android SDK, Android Studio o Gradle CLI.
En Windows (PowerShell) desde la raíz del proyecto:
# compilar debug
.\gradlew assembleDebug
# correr tests unitarios
.\gradlew test
# pruebas instrumentadas (requiere dispositivo/emulador conectado)
.\gradlew connectedAndroidTestCon Android Studio: abrir la carpeta SleepWell (o nativas si reestructuraste), sincronizar y ejecutar con un emulador.
Nota: crea local.properties con la ruta del SDK (no cometer):
sdk.dir=C:\Users\TU_USUARIO\AppData\Local\Android\sdk
- NO subir:
local.properties,*.jks/*.keystore,keystore.properties,google-services.json,.env. - Estos ya están excluidos por
.gitignore. Si accidentalmente subiste secretos, contacta para instrucciones de purga del historial.
- Abre un issue para bug o feature request.
- Fork → branch feature/mi-cambio → PR con descripción y screenshots si aplica.
- Mantén cambios pequeños y atómicos; escribe tests para lógica de negocio cuando sea posible.
- Crear un workflow en
.github/workflows/android.ymlque ejecuteassembleDebugytesten PRs. - Guardar keystore/passwords en GitHub Secrets si planeas firmar releases en CI.
- Autor: Angel Joshue Conforme (ver perfil en el repo)
Este README es intencionalmente minimal e iterativo — añadiré ejemplos de uso, badges y flujo de contribución cuando lo indiques.