Sprint de qualidade: corrigir os bugs silenciosos que fazem desinstalar
Quando tu desenvolves uma aplicação sozinho, há semanas em que adicionas funcionalidades que brilham. E há semanas em que passas as tuas noites a caçar bugs que ninguém te reportou — porque os encontraste tu mesmo ao usar a tua própria aplicação. Esta semana, foi a segunda opção.
Aqui está o resumo de quatro correções que, individualmente, parecem pequenas. Mas juntas, elas realmente mudam a experiência diária.
Os lembretes que desapareciam em silêncio
O cenário: tu crias uma tarefa com três lembretes — um em 10 minutos, um amanhã de manhã, um na sexta-feira. Exceto que o primeiro lembrete já está no passado (demoraste muito tempo a validar). TAMSIV exibia um aviso: "Este lembrete está no passado". Até aí, lógico.
O problema? Ao fechar este aviso, todos os lembretes eram eliminados. Os dois lembretes futuros, perfeitamente válidos, iam junto. Uma limpeza um pouco zelosa demais no código de validação.
A correção agora separa claramente os lembretes passados dos lembretes futuros. O aviso diz respeito apenas ao que efetivamente expirou, e os lembretes futuros permanecem intactos. Aproveitei também para reforçar a validação global — os casos limite em torno dos fusos horários são melhor geridos.
Os e-mails de lembrete que nunca chegavam
TAMSIV suporta dois canais de notificação para lembretes: o push (notificação no telefone) e o e-mail. Em teoria. Na prática, quando um utilizador criava um lembrete, apenas o canal push era ativado por padrão. O e-mail? Desativado. Silenciosamente.
Se tu não fosses manualmente marcar "e-mail" nas configurações do lembrete, nunca receberias nada na tua caixa de e-mail. Sem erro, sem mensagem — apenas o silêncio.
Agora, ambos os canais são ativados por padrão. Tu recebes um push e um e-mail. Se quiseres desativar um dos dois, ainda é possível, mas pelo menos o comportamento padrão é o que todos esperam.
O erro fantasma ao iniciar
Este é o tipo de bug que não quebra nada, mas mina a confiança. Tu abres a aplicação depois de algumas horas de inatividade, e por uma fração de segundo, um erro "Invalid Refresh Token" pisca na tela. Depois tudo funciona normalmente.
O que acontecia: ao iniciar a frio, Supabase tentava atualizar o token de autenticação. Se o token tivesse expirado, o SDK levantava um erro antes que o mecanismo de reconexão automática tivesse tempo de fazer o seu trabalho. O erro subia até à UI, embora não tivesse razão para estar lá — a reconexão sempre acabava por ser bem-sucedida.
A correção interceta este erro específico no nível certo e o remove da exibição. A atualização da sessão continua a funcionar exatamente como antes, mas o utilizador não vê mais uma mensagem de erro ansiosa que não lhe diz respeito.
O guia dos emblemas traduzido em 6 idiomas
TAMSIV está disponível em francês, inglês, alemão, espanhol, italiano e português. O sistema de gamificação — níveis, emblemas, sequências — faz parte das funcionalidades que os utilizadores descobrem progressivamente. Exceto que o guia explicativo dos emblemas existia apenas em francês e inglês.
Está corrigido. Os 10 emblemas, as suas condições de desbloqueio e as suas descrições estão agora traduzidos nas 6 línguas. Não é uma correção espetacular, mas é o tipo de detalhe que faz com que um utilizador germanófono ou lusófono se sinta em casa na aplicação.
E agora?
Estas quatro correções representam um dia de trabalho. Nenhuma delas teria feito um título de changelog emocionante. Mas juntas, elas eliminam atritos reais — lembretes perdidos, e-mails perdidos, um erro que causa dúvida, uma funcionalidade meio traduzida.
O sprint de qualidade continua. A próxima sessão provavelmente será tão pouco glamorosa — e igualmente necessária.