Files
Reminder-app/README.md

221 lines
7.1 KiB
Markdown
Executable File

# Recordatorios
App Android de notas y recordatorios con Material 3 Dynamic Colors (Monet).
## Funcionalidades
- **Notas** con título y contenido multilínea
- **Recordatorios** con fecha y hora exacta (AlarmManager)
- **Recurrencia**: diaria, semanal, mensual, anual
- **Notificaciones** push al cumplirse la fecha, incluso con la app cerrada
- **Tabs**: Hoy (tareas del día), Pendientes (futuros), Eliminados (papelera)
- **Check**: completa una nota y la envía a Eliminados; si es recurrente, adelanta al próximo período
- **Buscador** por título y contenido en tiempo real
- **Papelera** con restauración y borrado permanente
## Requisitos
- Android Studio Hedgehog (2023.1.1) o superior
- JDK 17
- Gradle 8.0
- compileSdk 34, minSdk 26
## Cómo ejecutar
```bash
git clone <repo>
cd Recordatorios
./gradlew assembleDebug
```
El APK se genera en `app/build/outputs/apk/debug/app-debug.apk`.
Si el SDK no está en `~/Android/Sdk`, crear `local.properties`:
```
sdk.dir=/ruta/al/Android/Sdk
```
## Estructura del proyecto
```
app/src/main/java/com/recordatorios/app/
├── MainActivity.kt # Actividad principal, maneja tabs, editor, filtros
├── Note.kt # Modelo de datos (data class)
├── NotesManager.kt # Persistencia con SharedPreferences + Gson
├── NoteAdapter.kt # RecyclerView adapter con expand/colapsar
├── ReminderReceiver.kt # BroadcastReceiver para notificaciones + recurrencia
└── ReminderScheduler.kt # AlarmManager (setExactAndAllowWhileIdle)
app/src/main/res/
├── layout/
│ ├── activity_main.xml # Toolbar, tabs, buscador, RecyclerView, FAB
│ ├── item_note.xml # Card con expand, check, fecha, acciones
│ └── dialog_note_editor.xml # Editor: título, contenido, recordatorio, recurrencia
├── drawable/ # Iconos vectoriales (pencil, trash, sun, clock, bell, check)
└── values/
├── themes.xml # Theme.Material3.DynamicColors.DayNight + NoActionBar
├── colors.xml
└── strings.xml # Español
```
## Flujo de desarrollo
1. **Modelo** → modificar `Note.kt` (agregar/quitar campos)
2. **Persistencia**`NotesManager.kt` (SharedPreferences + Gson)
3. **UI** → layout XML + binding en `MainActivity.kt`
4. **Adapter**`NoteAdapter.kt` para cambios en la lista
5. **Recordatorios**`ReminderScheduler.kt` + `ReminderReceiver.kt`
6. **Compilar**`./gradlew assembleDebug`
Si se agrega un campo a `Note.kt`, Gson lo serializa automáticamente. No hay migraciones de base de datos.
## Estilo
- Tema: `Theme.Material3.DynamicColors.DayNight` (colores dinámicos del wallpaper)
- Cards: `MaterialCardView`, 12dp radius, 2dp elevation
- TextFields: `OutlinedBox`
- Tabs con iconos vectoriales
- Sin ActionBar nativa — solo Toolbar personalizada
---
## Guía de Uso
### Introducción
Recordatorios es una aplicación Android para gestionar notas y recordatorios con un diseño moderno usando Material 3 y colores dinámicos.
### Pestañas
#### ☀️ Hoy
Muestra los recordatorios programados para el día actual y los que ya vencieron.
- **Tareas del día**: Recordatorios con fecha de hoy
- **Vencidos**: Recordatorios que ya pasaron su fecha
- Las notas se agrupan en secciones para fácil identificación
#### 🕐 Pendientes
Muestra los recordatorios futuros, aquellos programados para fechas posteriores a hoy.
- Solo muestra recordatorios que aún no han llegado
- Ordenados cronológicamente
#### 📅 Calendario
Vista de calendario mensual con indicadores visuales.
- **Puntos de color**: Indican recordatorios en ese día
- **Tap simple**: Muestra los recordatorios del día seleccionado
- **Triple tap**: Crea un nuevo recordatorio para esa fecha
- **Swipe horizontal**: Cambia entre meses
- **Lista inferior**: Muestra todos los recordatorios del mes actual
#### 🗑️ Basurero
Papelera donde van las notas completadas o eliminadas.
- **Restaurar**: Devuelve la nota a la lista principal
- **Eliminar permanentemente**: Borra la nota definitivamente
- Las notas recurrentes completadas adelantan al próximo período
#### ⚙️ Configuración
Ajustes de la aplicación.
### Funcionalidades Principales
#### Crear una Nota
1. Presiona el botón **+** en la esquina inferior derecha
2. Escribe un título y/o contenido
3. Activa el switch de recordatorio si deseas una notificación
4. Selecciona fecha y hora
5. Elige la recurrencia (diaria, semanal, mensual, anual)
6. Selecciona una categoría (opcional)
7. Agrega una foto (opcional)
8. Presiona **Guardar**
#### Nota por Voz
1. Presiona el botón de **micrófono** junto al botón +
2. Di tu recordatorio
3. La app parseará automáticamente lo dicho
#### Editar una Nota
1. Expande la nota presionando la flecha ▼
2. Presiona **Editar**
3. Modifica los campos necesarios
4. Presiona **Guardar**
#### Completar una Nota
- Presiona el botón de **check** ✓ en la card
- La nota se mueve al basurero
- Si es recurrente, se programa automáticamente para el próximo período
#### Eliminar una Nota
1. Expande la nota
2. Presiona **Eliminar**
3. Confirma la eliminación
4. La nota va al basurero
#### Buscar Notas
- Usa el campo de búsqueda en la parte superior
- Busca por título o contenido en tiempo real
#### Filtrar por Categoría
- En la pestaña de Pendientes, selecciona las categorías deseadas
- Los filtros se guardan automáticamente
### Categorías
#### Crear Categoría
1. En el editor de notas, presiona **Administrar categorías**
2. Presiona **Agregar categoría**
3. Escribe un nombre
4. Selecciona un color
5. Presiona **Guardar**
#### Editar/Eliminar Categoría
- En el administrador de categorías, usa los botones de lápiz o basura
### Configuración
#### Biometría
- Activa el desbloqueo con huella dactilar o reconocimiento facial
- Solo se solicita una vez al abrir la app
#### Tema
- **Sistema**: Sigue el tema del dispositivo
- **Claro**: Siempre tema claro
- **Oscuro**: Siempre tema oscuro
#### Fondo Personalizado
- Selecciona una imagen de tu galería como fondo
- Se aplica un efecto de blur para mejor legibilidad
#### Notificaciones
- Mostrar imagen en notificaciones (activado por defecto)
#### Limpieza Automática de Basurero
- Configura cuánto tiempo permanecen las notas en el basurero
- Opciones: Desactivado, 1 día, 3 días, 7 días, 30 días
#### Datos
- **Exportar**: Guarda todas las notas y categorías en un archivo JSON
- **Importar**: Restaura desde un archivo de backup
### Gestos
- **Swipe horizontal**: Cambia entre pestañas
- **Swipe en calendario**: Cambia de mes
### Consejos
1. **Recurrencia**: Usa recordatorios recurrentes para tareas periódicas
2. **Categorías**: Organiza tus notas por colores para identificarlas rápidamente
3. **Bordes de color**: Las cards muestran el color de su categoría en el borde
4. **Backup**: Exporta regularmente tus datos para no perder información
5. **Búsqueda**: Usa la búsqueda para encontrar notas antiguas rápidamente
---
## Repositorio Oficial
**[https://git.nakano47.com/nino/Reminder-app](https://git.nakano47.com/nino/Reminder-app)**