Planeta · En App Store y Google Play

Luupy

Suscripciones y gastos recurrentes

Luupy reúne tus suscripciones digitales y pagos recurrentes (streaming, software, gimnasio, recibos del hogar) en una vista limpia. Sumas mensuales y anuales, recordatorios antes de cada renovación y categorías para detectar lo que ya no usas.

Caso de estudio

Tecnologías: Flutter (Dart), go_router y Provider · Firebase Auth, Firestore, Cloud Functions (Node.js), Cloud Messaging, App Check y Crashlytics · Compras dentro de la app · Widgets de pantalla de inicio · Notificaciones locales.

El problema

Las suscripciones se acumulan sin que te des cuenta: streaming, software, gimnasio, recibos del hogar… Cada una cobra en un día distinto y en una app distinta. Luupy las reúne en una sola vista y avisa antes de cada renovación, para que ninguna te pille por sorpresa.

Decisiones

  • Flutter para iOS y Android a la vez: una sola base de código para llegar a las dos tiendas con la misma experiencia, sin duplicar el trabajo.
  • Firebase como backend: autenticación con Google, Apple o email, datos sincronizados en Firestore y lógica sensible en Cloud Functions, sin mantener servidores propios.
  • Recordatorios en el propio dispositivo: las notificaciones de cada renovación se programan en local, con su zona horaria, para que lleguen aunque no haya conexión.
  • Detección de suscripciones desde el correo: con permiso del usuario, la app puede leer los recibos de Gmail para proponer las suscripciones que encuentra.

Arquitectura

La app usa go_router para la navegación y Provider para el estado. Los datos de cada usuario viven en Firestore, protegidos por reglas de seguridad y por App Check. En el servidor, varias Cloud Functions se encargan de lo que no debe decidir el móvil: validar las compras, recibir las notificaciones de Apple y Google sobre cada suscripción, revisar caducidades, actualizar los tipos de cambio para varias monedas, avisar de los próximos pagos y borrar la cuenta y sus datos cuando el usuario lo pide.

El reto: pagos en los que se pueda confiar

La suscripción Premium era la parte más delicada. El objetivo era que nadie pague sin recibir Premium y que nadie obtenga Premium sin pagar. Para eso:

  • Cada compra se valida en el servidor antes de activarse, y la app solo la confirma a la tienda después de esa validación.
  • Las notificaciones de Apple y Google mantienen el estado de la suscripción al día (renovaciones, cancelaciones, reembolsos) aunque el usuario no abra la app.
  • Antes de cada publicación hice una auditoría del flujo de pagos y otra de seguridad, documentando cada riesgo y su solución.

Resultado

Luupy está publicada en App Store y Google Play. Fue además mi Trabajo de Fin de Ciclo del Grado Superior en Desarrollo de Aplicaciones Multiplataforma (DAM) en la Universidad Alfonso X el Sabio, curso 2025–2026.

Lo que aprendí

Publicar es solo el principio: los pagos, las revisiones de Apple y Google, los avisos que llegan en el momento justo y la privacidad pesan tanto como el código. Y documentar cada decisión ahorra muchísimo tiempo cuando hay que volver a ella.