SSELMOISS STORIES

쓸모있는 이야기를 나누는 블로그

일상에서 발견한 정보와 경험을 읽기 편한 글로 만나보세요.

최신 글

Cómo creé una app de presupuesto personal con vibe coding

La historia de una app Android personal: notificaciones de tarjetas, OCR de extractos, gastos en efectivo, presupuesto, privacidad y pruebas para cuadrar los totales.

Cómo creé una app de presupuesto personal con vibe coding

Existen muchas aplicaciones de finanzas bien terminadas, pero ninguna coincidía exactamente con mi forma de controlar los gastos. Cada tarjeta utiliza un período de aprobación distinto y yo quería ver tarjetas, efectivo y gastos fijos en un mismo lugar. También quería recuperar movimientos antiguos desde capturas de extractos sin enviar información financiera a un servidor externo.

Construí una aplicación Android personal explicando cada función a una IA conversacional, instalando el resultado en un teléfono real y comunicando los problemas encontrados. Fue vibe coding, pero no una aplicación creada con una sola instrucción. El proceso real consistió en dividir los requisitos, ejecutar, comparar totales, encontrar la causa de los errores y añadir pruebas.

En las imágenes de este artículo se eliminaron todos los datos personales y valores monetarios reales. También se cubrieron los gráficos que podían permitir estimar cantidades.

El comienzo: verlo todo de un vistazo

El primer objetivo era mostrar en una sola pantalla el presupuesto mensual, el total del período actual de las tarjetas, el efectivo del mes y el estado general del gasto. La navegación se dividió en resumen, tarjetas, efectivo, presupuesto e importación.

La primera versión detectaba nuevas notificaciones de pago mediante el acceso a notificaciones de Android y procesaba únicamente las entidades seleccionadas. Se excluyeron deliberadamente el inicio de sesión bancario, el acceso a cuentas, la lectura de SMS y contactos, la publicidad y el envío a servidores. Los textos y registros permanecen en el dispositivo. La privacidad se definió antes que la comodidad.

El problema de los períodos de cada tarjeta

Sumar del primer al último día del mes no reflejaba la facturación real. Cada tarjeta tiene su propio período, por lo que añadí cálculos separados y navegación entre períodos.

Una misma compra recibida por notificación e importada desde una imagen debe contarse una sola vez. Sin embargo, dos compras reales con el mismo importe no deben eliminarse. Las reglas terminaron comparando origen, entidad, período, momento e importe. El resumen y el detalle también pasaron a compartir una única lógica de cálculo.

OCR para recuperar movimientos anteriores

Las notificaciones solo ayudan con los avisos nuevos. Para el historial anterior añadí un importador de capturas de extractos. El usuario selecciona primero la tarjeta y el OCR coreano se ejecuta dentro del dispositivo. Nada se guarda antes de la confirmación y el resultado anterior se limpia al cambiar de entidad.

Cada aplicación bancaria presenta diseños distintos. Fue necesario mejorar la asociación visual entre fechas e importes, los menús que ocultan filas y la detección de cancelaciones.

Presupuesto y gastos en efectivo

Las tarjetas no representan todo el gasto. La aplicación lee una hoja de Google Sheets y conserva tanto los totales por categoría como los detalles de cada fila. Los pagos en efectivo se dividen en fijos y puntuales: los fijos continúan en el mes siguiente y los puntuales no. Cualquier alta, edición o eliminación actualiza inmediatamente el resumen y el gráfico mensual.

Finalmente se añadió una comparación de varios meses y un mensaje que indica si el gasto está por debajo o por encima del presupuesto.

Verificar fue más importante que escribir prompts

La IA aceleró la implementación, pero los totales financieros exigían definiciones precisas y revisión humana. Las pruebas automáticas cubrieron los límites de cada período, el análisis de notificaciones, la relación entre fechas e importes del OCR, la eliminación de duplicados entre fuentes, la conservación de compras repetidas legítimas, los gastos fijos, la coherencia entre pantallas y la suma de las filas del presupuesto.

Antes de cada cambio importante hice copias de seguridad y después repetí las pruebas unitarias y la instalación del APK. Un total puede parecer correcto en una pantalla y usar una regla distinta en otra. Por eso hay que comprobar tanto el resultado visible como la lógica.

Una aplicación que evoluciona al usarla

La mayor ventaja del vibe coding no fue solo la velocidad, sino convertir necesidades cotidianas en prototipos comprobables. Aun así, el primer resultado de la IA nunca debía aceptarse sin revisión. La privacidad, la definición de los totales, los duplicados y las regresiones necesitaban comprobaciones constantes.

El producto útil surgió del ciclo de requisitos pequeños, errores reales, copias de seguridad, pruebas y verificación. No es una aplicación financiera universal, sino una herramienta personal adaptada al flujo que realmente necesito. El vibe coding funciona mejor cuando el usuario describe el problema con precisión y verifica el resultado.