Blog
Build in Public
26 marzo 20268 min

Sprint qualità: correggere i bug silenziosi che portano alla disinstallazione

Quando sviluppi un'app da solo, ci sono settimane in cui aggiungi funzionalità che brillano. E ci sono settimane in cui passi le tue serate a cacciare bug che nessuno ti ha segnalato — perché li hai trovati tu stesso usando la tua app. Questa settimana, è stata la seconda opzione.

Ecco il riassunto di quattro correzioni che, individualmente, sembrano piccole. Ma messe insieme, cambiano davvero l'esperienza quotidiana.

I promemoria che scomparivano in silenzio

Lo scenario: crei un'attività con tre promemoria — uno tra 10 minuti, uno domani mattina, uno venerdì. Solo che il primo promemoria è già nel passato (ci hai messo troppo tempo a convalidare). TAMSIV mostrava un avviso: "Questo promemoria è nel passato". Fin qui, logico.

Il problema? Chiudendo questo avviso, tutti i promemoria venivano eliminati. I due promemoria futuri, perfettamente validi, se ne andavano con esso. Una pulizia un po' troppo zelante nel codice di validazione.

La correzione ora separa chiaramente i promemoria passati da quelli futuri. L'avviso riguarda solo ciò che è effettivamente scaduto, e i promemoria futuri rimangono intatti. Ne ho anche approfittato per rafforzare la validazione globale — i casi limite relativi ai fusi orari sono gestiti meglio.

Le email di promemoria che non arrivavano mai

TAMSIV supporta due canali di notifica per i promemoria: il push (notifica sul telefono) e l'email. In teoria. In pratica, quando un utente creava un promemoria, solo il canale push era attivato per impostazione predefinita. L'email? Disattivata. Silenziosamente.

Se non andavi a spuntare manualmente "email" nelle impostazioni del promemoria, non ricevevi mai nulla nella tua casella di posta. Nessun errore, nessun messaggio — solo il silenzio.

Ora, entrambi i canali sono attivati per impostazione predefinita. Ricevi un push e un'email. Se vuoi disattivarne uno dei due, è sempre possibile, ma almeno il comportamento predefinito è quello che tutti si aspettano.

L'errore fantasma all'avvio

Questo è il tipo di bug che non rompe nulla ma mina la fiducia. Apri l'app dopo qualche ora di inattività, e per una frazione di secondo, un errore "Invalid Refresh Token" lampeggia sullo schermo. Poi tutto funziona normalmente.

Cosa succedeva: all'avvio a freddo, Supabase tentava di aggiornare il token di autenticazione. Se il token era scaduto, l'SDK sollevava un errore prima che il meccanismo di riconnessione automatica avesse il tempo di fare il suo lavoro. L'errore risaliva all'UI anche se non aveva motivo di esserci — la riconnessione finiva sempre per avere successo.

La correzione intercetta questo errore specifico al livello giusto e lo rimuove dalla visualizzazione. L'aggiornamento della sessione continua a funzionare esattamente come prima, ma l'utente non vede più un messaggio di errore ansiogeno che non lo riguarda.

La guida ai badge tradotta in 6 lingue

TAMSIV è disponibile in francese, inglese, tedesco, spagnolo, italiano e portoghese. Il sistema di gamification — livelli, badge, streak — fa parte delle funzionalità che gli utenti scoprono progressivamente. Solo che la guida esplicativa dei badge esisteva solo in francese e inglese.

È corretto. I 10 badge, le loro condizioni di sblocco e le loro descrizioni sono ora tradotti nelle 6 lingue. Non è una correzione spettacolare, ma è il tipo di dettaglio che fa sentire un utente germanofono o lusofono a casa nell'app.

E adesso?

Queste quattro correzioni rappresentano una giornata di lavoro. Nessuna avrebbe fatto un titolo di changelog entusiasmante. Ma insieme, eliminano attriti reali — promemoria persi, email mancate, un errore che fa dubitare, una funzionalità tradotta a metà.

Lo sprint qualità continua. La prossima sessione sarà probabilmente altrettanto poco affascinante — e altrettanto necessaria.