De qué se trata
Birthdays es una app para Android que guarda cumpleaños y te los recuerda a tiempo. No hay cuenta, ni nube, ni sincronización a través de servidores ajenos. Todas las entradas se guardan en una base de datos en el móvil y solo salen de él si tú mismo compartes una copia de seguridad. He creado la app con ayuda de la IA, siguiendo el modelo de mis apps Shopping List y My Notes.
La versión actual está disponible directamente como archivo APK:
https://github.com/netperformance/birthdayreminder/releases/download/v1.0.6/Birthdays-1.0.6.apk
El proyecto es de código abierto con licencia MIT y está disponible en GitHub:
github.com/netperformance/birthdayreminder
Por qué una app de cumpleaños propia
Una colección de cumpleaños es una lista de personas: nombres, fechas de nacimiento, a menudo una foto y una nota como “le gustaría un libro de cocina”. A la mayoría de estas personas nadie les ha preguntado si sus datos se pueden guardar en algún sitio. Aun así, muchas apps de cumpleaños guardan estos datos en los servidores de su proveedor. Así, esa información queda en manos de otra empresa.
Además, quien apunta los cumpleaños en el calendario del móvil suele recibir el aviso el mismo día. Para un regalo ya es demasiado tarde. Yo quería decidir para cada persona cuándo me llega el recordatorio, también con días o semanas de antelación.
La app de un vistazo
Quien cumple años hoy aparece en una tarjeta en la parte superior de la pantalla de inicio. Debajo siguen todas las entradas por meses, empezando por el próximo cumpleaños. Para cada entrada, la app muestra cuántos días faltan para el cumpleaños, cuántos años cumplirá la persona y cuál es su signo del zodiaco. Con el botón más se crea una entrada nueva.

La app está en alemán e inglés. Por eso, los nombres de los botones y ajustes aparecen aquí en inglés, tal como se ven en la app.
- Entradas: una entrada tiene un nombre, un cumpleaños, una nota y una imagen. El año de nacimiento es opcional.
- Recordatorios por persona: para cada entrada se elige si valen los recordatorios estándar de los ajustes, si tiene recordatorios propios o ninguno. Se pueden combinar varios momentos, por ejemplo dos semanas antes, un día antes y el mismo día del cumpleaños. Cada recordatorio tiene su propia hora y, si se quiere, una indicación breve como “Buy a gift” (comprar un regalo).
- Ventana emergente o pantalla completa: un recordatorio aparece como notificación, también en la pantalla de bloqueo. Quien no quiera perderse un recordatorio de ninguna manera, activa además la pantalla completa. Entonces el recordatorio ocupa toda la pantalla como un despertador, incluso con el móvil bloqueado, y suena hasta que reacciones. Si tocas “In 1 hr”, el recordatorio vuelve una hora más tarde. Si tocas “Done”, ese día ya no llega ningún recordatorio más para esa persona.
- Grupos: después de la instalación hay cuatro grupos: “No group” (sin grupo), “Family” (familia), “Friends” (amigos) y “Work” (trabajo). Se pueden crear más. Cada grupo tiene uno de doce colores. Los grupos solo sirven para ordenar y filtrar. No influyen en los recordatorios.
- Búsqueda: la búsqueda encuentra palabras en los nombres y las notas. Mayúsculas y minúsculas dan igual, “muller” también encuentra “Müller”. Si se escribe el nombre de un mes, por ejemplo “March”, la app muestra todos los cumpleaños de ese mes.
- Importar desde los contactos: la app lee los cumpleaños de los contactos del móvil. Solo se importan los contactos que tienen un cumpleaños guardado. Si se importa otra vez, la app no crea a nadie dos veces. Si desde la última importación ha cambiado un nombre o una fecha en la agenda, la app lo muestra aparte y solo aplica el cambio cuando se confirma con una marca.
- Zonas horarias: un cumpleaños dura de medianoche a medianoche en la zona horaria que se fija como “Home” (casa) en los ajustes. Dónde esté el móvil en ese momento da igual. Un ejemplo: casa es Berlín y tú estás ahora en Sídney. Allí ya es medianoche, mientras que en Berlín todavía es por la tarde. Hasta que el cumpleaños empiece en Berlín, la tarjeta dice “Starts soon” (empieza pronto). Si por la diferencia horaria un recordatorio del día del cumpleaños cae en la noche, entre las 22 y las 7 horas, llega a las 7 horas, hora local. El cambio de horario y el reinicio del móvil no desordenan los recordatorios.
- 29 de febrero: quien nació un 29 de febrero celebra su cumpleaños en los demás años el 28 de febrero o el 1 de marzo, según el ajuste.
- Pausa: con el interruptor “All reminders” de los ajustes se desactivan todas las notificaciones de la app y se vuelven a activar cuando haga falta. No se borra nada.
- Alemán e inglés: el idioma de la app se puede cambiar en los ajustes.
- Claro y oscuro: la app se inicia en modo claro. En los ajustes se puede elegir oscuro o “Automatic”.
- Copia de seguridad: todas las entradas, con sus imágenes, se pueden guardar como archivo y volver a cargar, por ejemplo al cambiar a un móvil nuevo.

Permisos y protección de datos
A diferencia de Shopping List y My Notes, Birthdays necesita algunos permisos, porque un recordatorio tiene que aparecer también cuando la app está cerrada. La app pide cada permiso solo cuando lo necesita:
- Notificaciones: sin este permiso la app no puede mostrar ningún recordatorio. A partir de Android 13, Android lo pregunta una vez.
- Hora exacta: así el recordatorio aparece a la hora configurada. Sin este permiso, Android puede retrasarlo. Android lo concede automáticamente.
- Inicio al encender: después de reiniciar el móvil, la app vuelve a programar los recordatorios.
- Pantalla completa: la app solo necesita este permiso para los recordatorios en pantalla completa. A partir de Android 14, Android lo pregunta una vez.
- Vibración: el móvil vibra cuando un recordatorio aparece en pantalla completa.
- Optimización de batería desactivada: este ajuste es opcional. Algunos fabricantes, como Samsung y Xiaomi, cierran las apps en segundo plano tan rápido que, si no, los recordatorios podrían no llegar.
- Contactos: la app solo pide este permiso cuando importas cumpleaños desde los contactos o quieres usar la foto de un contacto para una entrada. La app no modifica los contactos, solo los lee.
- Cámara: la app solo pide este permiso cuando haces una foto para una entrada.
Falta un permiso a propósito: el acceso a internet. Sin él, Android mismo impide cualquier conexión hacia fuera. Por eso, los contactos y las fotos que lee la app no pueden salir del móvil a través de la app. El micrófono, la ubicación y el almacenamiento también siguen bloqueados. Una imagen de la galería se elige con el selector de fotos de Android. La app solo recibe esa imagen y no necesita acceso al almacenamiento para ello.
Además:
- Pantalla de bloqueo: normalmente, una notificación en el móvil bloqueado lo muestra todo, también la nota y la indicación. Con el ajuste “Name only” (solo el nombre), solo aparece una línea como “Julia turned 36 today” (Julia ha cumplido hoy 36). Con el ajuste “Nothing” (nada), solo aparece “Birthday today” (cumpleaños hoy) o “A birthday is coming up” (pronto hay un cumpleaños), sin nombre.
- Sin copia de seguridad en la nube de Google: la copia de seguridad automática de Android está desactivada. Así, las entradas tampoco acaban de paso en Google.
- Sin publicidad ni análisis: la app no contiene publicidad, ni seguimiento, ni componentes de terceros que recopilen datos de uso.
- Copia de seguridad solo si la pides: una copia de seguridad solo se crea si la haces tú mismo. Adónde va el archivo lo decides tú con el menú de compartir de Android.
- Los enlaces a aaron.de y GitHub de los ajustes abren el navegador del móvil. La app en sí no carga nada.
Además de los permisos mencionados, el archivo de instalación de la app (APK) contiene otra entrada, DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION. No es un permiso concedido a la app, sino una protección interna de Android: se encarga de que otras apps no puedan enviar mensajes a la app.
