# 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 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/Recordatorios-app](https://git.nakano47.com/nino/Recordatorios-app)**