Blog
Build in Public
26 de marzo de 20268 min

Sprint de calidad: corregir los errores silenciosos que provocan la desinstalación

Cuando desarrollas una aplicación en solitario, hay semanas en las que añades funcionalidades que brillan. Y hay semanas en las que pasas tus noches persiguiendo errores que nadie te ha reportado, porque los encontraste tú mismo usando tu propia aplicación. Esta semana, fue la segunda opción.

Aquí tienes el resumen de cuatro correcciones que, individualmente, parecen pequeñas. Pero juntas, realmente cambian la experiencia diaria.

Recordatorios que desaparecían en silencio

El escenario: creas una tarea con tres recordatorios — uno en 10 minutos, uno mañana por la mañana, uno el viernes. Excepto que el primer recordatorio ya está en el pasado (tardaste demasiado en validar). TAMSIV mostraba una advertencia: "Este recordatorio está en el pasado". Hasta ahí, lógico.

¿El problema? Al cerrar esta advertencia, todos los recordatorios eran eliminados. Los dos recordatorios futuros, perfectamente válidos, se iban con él. Una limpieza un poco demasiado celosa en el código de validación.

La corrección ahora separa claramente los recordatorios pasados de los futuros. La advertencia solo concierne a lo que realmente ha expirado, y los recordatorios futuros permanecen intactos. También aproveché para reforzar la validación global — los casos límite relacionados con las zonas horarias se gestionan mejor.

Correos electrónicos de recordatorio que nunca llegaban

TAMSIV soporta dos canales de notificación para los recordatorios: el push (notificación en el teléfono) y el correo electrónico. En teoría. En la práctica, cuando un usuario creaba un recordatorio, solo el canal push se activaba por defecto. ¿El correo electrónico? Desactivado. Silenciosamente.

Si no ibas manualmente a marcar "correo electrónico" en la configuración del recordatorio, nunca recibías nada en tu bandeja de entrada. Sin errores, sin mensajes — solo el silencio.

Ahora, ambos canales están activados por defecto. Recibes un push y un correo electrónico. Si quieres desactivar uno de los dos, siempre es posible, pero al menos el comportamiento por defecto es el que todo el mundo espera.

El error fantasma al iniciar

Este es el tipo de error que no rompe nada pero que socava la confianza. Abres la aplicación después de unas horas de inactividad, y durante una fracción de segundo, un error "Invalid Refresh Token" parpadea en la pantalla. Luego todo funciona normalmente.

Lo que sucedía: al iniciar en frío, Supabase intentaba refrescar el token de autenticación. Si el token había expirado, el SDK lanzaba un error antes de que el mecanismo de reconexión automática tuviera tiempo de hacer su trabajo. El error llegaba hasta la interfaz de usuario cuando no tenía ninguna razón para estar allí — la reconexión siempre terminaba por tener éxito.

La corrección intercepta este error específico en el nivel adecuado y lo elimina de la visualización. El refresco de sesión sigue funcionando exactamente como antes, pero el usuario ya no ve un mensaje de error ansioso que no le concierne.

La guía de insignias traducida a 6 idiomas

TAMSIV está disponible en francés, inglés, alemán, español, italiano y portugués. El sistema de gamificación — niveles, insignias, rachas — es una de las funcionalidades que los usuarios descubren progresivamente. Excepto que la guía explicativa de las insignias solo existía en francés e inglés.

Está corregido. Las 10 insignias, sus condiciones de desbloqueo y sus descripciones están ahora traducidas a los 6 idiomas. No es una solución espectacular, pero es el tipo de detalle que hace que un usuario germanoparlante o lusoparlante se sienta como en casa en la aplicación.

¿Y ahora qué?

Estas cuatro correcciones representan un día de trabajo. Ninguna habría sido un título emocionante en un registro de cambios. Pero juntas, eliminan fricciones reales — recordatorios perdidos, correos electrónicos omitidos, un error que genera dudas, una funcionalidad a medio traducir.

El sprint de calidad continúa. La próxima sesión probablemente será igual de poco glamurosa — y tan necesaria.