Una aplicación Android que escucha notificaciones de Yape y registra automáticamente tus transacciones en Firebase Realtime Database. ¡Sin intervención manual, sin registros manuales! Todo se sincroniza automáticamente para que lleves un control preciso de tus finanzas.
- 📲 Captura automática de notificaciones de Yape.
- 💰 Extracción inteligente de montos, nombres y tipo de transacción.
- ⚡ Sincronización en tiempo real con Firebase Realtime Database.
- 🔐 Identificación única por dispositivo para múltiples usuarios.
- 🎯 Detección precisa del tipo de transacción (Ingreso, Egreso, Pago, Retiro).
- 🧹 Procesamiento limpio de nombres (solo primer nombre y primer apellido).
- 🎨 UI moderna con Jetpack Compose y Material Design 3.
- 🌗 Tema claro y oscuro adaptativo.
- ⏯️ Control del servicio - Activa/desactiva la captura de notificaciones.
📹 Video de demostración:
- Android 7.0 (API 24) o superior
- Permisos de acceso a notificaciones habilitados
- Cuenta de Firebase con Realtime Database configurada
- Android Studio Iguana o superior (recomendado)
git clone https://github.com/pierre-juarez/yapelistener.gitcd yapelistener- Ve a la Consola de Firebase
- Crea un nuevo proyecto o selecciona uno existente
- Añade una aplicación Android con el package name:
dev.pierrejuarez.yapelistenero cambia a uno existente - Descarga el archivo
google-services.json - Coloca el archivo en la carpeta
app/ - Habilita Firebase Realtime Database en tu proyecto
Abre el proyecto en Android Studio y sincroniza las dependencias:
./gradlew buildConecta tu dispositivo Android o usa un emulador y ejecuta:
./gradlew installDebug- Abre la app
- Ve a Configuración → Notificaciones → Acceso a notificaciones
- Activa YapeListener
- Instala y configura la aplicación siguiendo los pasos anteriores
- Abre la app y activa el servicio desde el toggle principal
- Recibe o envía un Yape - La transacción se registrará automáticamente
- Verifica en Firebase - Los datos aparecerán en
transacciones_yape/
Cada transacción se almacena con el siguiente formato:
{
"transacciones_yape": {
"push_id_generado": {
"id_envio": "uuid-generado",
"monto": "100.50",
"persona": "Juan Perez",
"tipo": "INGRESO",
"fecha": "26/10/2025 15:30:45",
"timestamp": 1730000000000,
"mensaje_completo": "Yape! Juan Perez te envió S/ 100.50",
"dispositivo_id": "android_id_del_dispositivo"
}
}
}- INGRESO: Cuando recibes dinero
app/src/main/
├── java/dev/pierrejuarez/yapelistener/
│ ├── MainActivity.kt # Actividad principal con UI
│ ├── YapeNotificationListener.kt # Servicio de escucha de notificaciones
│ └── ui/theme/ # Tema y estilos de Compose
│ ├── Color.kt
│ ├── Theme.kt
│ └── Type.kt
└── AndroidManifest.xml # Configuración de permisos y servicios
El proyecto utiliza los siguientes permisos:
<uses-permission android:name="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />| Tecnología | Versión/Descripción |
|---|---|
| Kotlin | Lenguaje principal |
| Jetpack Compose | UI moderna y declarativa |
| Material Design 3 | Sistema de diseño |
| Firebase Realtime DB | Base de datos en tiempo real |
| NotificationListener | API de Android para escuchar notificaciones |
| SharedPreferences | Almacenamiento local de configuración |
¡Las contribuciones son bienvenidas! Si deseas mejorar este proyecto:
- Haz un fork del repositorio
- Crea una rama para tu feature:
git checkout -b feature/nueva-caracteristica- Realiza tus cambios y haz commit:
git commit -m 'Agrega nueva característica'- Sube tus cambios:
git push origin feature/nueva-caracteristica- Abre un Pull Request 🚀
- Esta aplicación está diseñada únicamente con fines educativos y de gestión personal.
- Respeta la privacidad y los términos de servicio de Yape.
- Los datos se almacenan en tu propia base de datos de Firebase.
- No compartas tu archivo
google-services.jsonpúblicamente.
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Desarrollado con
¿Tienes preguntas o sugerencias? ¡Contáctame!
- LinkedIn: Pierre Juarez
- GitHub: @pierre-juarez
Si este proyecto te fue útil, no olvides darle una ⭐ en GitHub. ¡Tu apoyo motiva a seguir creando!