← Diario
Tecnica·12 mag 2026

La scheda che si può correggere a mano

Una scheda di ricetta scritta a mano su un piano di lavoro di cucina, una matita che cancella una riga, una casella spuntata al bordo della pagina, luce di cucina in tarda mattinata

Una scheda dettata ha sempre qualcosa di storto, e fino al 12 maggio l'unica correzione possibile era ridire tutto. Quel giorno ogni parola della scheda è diventata toccabile e riscrivibile, i passaggi di una ricetta si spuntano, e la scheda si elimina da sé stessa. È stato necessario ridisegnare una casella che Android non mostrava, e recuperare tre volte l'ultima frase che il pulsante «Fatto» inghiottiva.

Una scheda che si poteva solo ridettare

Il giorno prima, la scheda aveva imparato a riempirsi in campi dichiarati: un titolo, dei badge, sezioni di ingredienti, passaggi. Si mostrava pulita. Aveva un difetto che nessuno vedeva finché non la si usava davvero: era in sola lettura.

E una scheda dettata non è mai del tutto giusta. «Ottocento grammi» diventa «otto grammi». Un passaggio scivola nel posto sbagliato. Il badge della preparazione dice trenta minuti quando l'impasto ne richiede sessanta con il riposo. Sono errori da un secondo, e l'unica risposta disponibile era riprendere la parola per ridire tutto, sperando che la seconda dettatura non sbagliasse altrove.

È il tipo di difetto che decide l'uso reale di un oggetto. Una scheda che non si può correggere è una scheda che alla fine si smette di aprire, perché non ci si fida più di quello che dice.

La mattina: una ricetta che si cucina davvero

La giornata è cominciata dal caso d'uso più concreto: cucinare con la scheda aperta.

Gli ingredienti avevano già le loro caselle. I passaggi, invece, erano solo un elenco numerato. Li abbiamo resi toccabili: un dito su un passaggio, e il suo numero passa dal blu al grigio, il testo si barra e si attenua. I passaggi rimasti conservano il numero blu, così l'occhio trova da solo la prossima cosa da fare. I due contatori sono separati di proposito: quello che si è tirato fuori dal frigo e quello che si è già fatto non si mescolano.

Un dettaglio ha richiesto più riflessione di quanto sembri. Una seconda barra di avanzamento, per i passaggi, compare solo nel momento in cui si spunta il primo. Finché non si è cominciato a cucinare, la scheda resta calma, con una sola barra per gli ingredienti. Una scheda che mostra due indicatori vuoti all'apertura somiglia a un cruscotto, e nessuno vuole un cruscotto in cucina.

Sono seguite due regolazioni. La scheda poggia ora su uno sfondo leggermente crema mentre le sue card di ingredienti restano di un bianco puro, perché le card galleggino invece di fondersi nella pagina. E la memoria ha ricevuto una consegna rigida per le sue ricette: gli ingredienti si raggruppano per famiglia, carne, pesce, verdure, carboidrati, latticini, spezie, finitura, mai in un'unica lista piatta. Una lista piatta di diciotto ingredienti si legge male al supermercato. Sette liste corte si leggono corsia per corsia.

La casella che non esisteva su Android

Il primo intoppo della giornata era visivo, ed è stato istruttivo.

La casella spuntata doveva mostrare una piccola sfumatura, dal ciano al blu, con un segno bianco dentro. Era disegnata con una libreria di grafica vettoriale, inserita in una cornice che tagliava ciò che sporgeva dai suoi angoli arrotondati, e appoggiata su un'ombra leggera. Su iPhone, perfetto. Su Android, la casella spuntata mostrava il suo alone blu e niente all'interno: né sfumatura, né segno. Un quadrato vuoto con un'ombra.

La causa è una combinazione nota a chi fa applicazioni Android e sconosciuta a tutti gli altri. Su Android, un'ombra viene calcolata dal sistema a partire da un'elevazione, e quell'elevazione non va d'accordo con una cornice che ritaglia il proprio contenuto. Il disegno vettoriale all'interno semplicemente non veniva mai renderizzato. Niente si bloccava, niente avvisava.

Invece di cercare la combinazione di impostazioni che accontenti entrambe le piattaforme, la casella è stata ridisegnata in un blocco solo con un motore grafico che dipinge direttamente sullo schermo: il rettangolo arrotondato, la sfumatura e il tratto del segno sono tracciati in un'unica tela, in un solo passaggio nativo. La cornice che ritagliava è sparita, l'ombra è rimasta sulla vista esterna, dove Android se l'aspetta. Il segno è una curva tracciata a mano, tre punti uniti da un tratto arrotondato, invece di un carattere di font il cui aspetto cambia da un telefono all'altro.

La lezione è semplice: quando due strati di un'interfaccia si contendono lo stesso pixel, è meglio che lo dipinga uno solo.

Toccare una parola per cambiarla

Poi è arrivato l'editor, che è il cuore della giornata.

Un piccolo menu in alto a destra della scheda propone due cose: modifica, elimina. «Modifica» non fa comparire un modulo. La scheda resta esattamente la stessa, solo che tutto ciò che si può cambiare viene sottolineato con un tratteggio discreto: il titolo, la citazione d'origine, la nota di memoria, ogni badge, ogni titolo di sezione, ogni nome di ingrediente e la sua quantità, ogni titolo di passaggio, il suo testo, la sua durata. Si tocca una parola, si trasforma in un campo di testo con il cursore dentro. Si scrive, si esce dal campo, è salvato.

La scelta di un solo campo attivo alla volta non è soltanto estetica. Un campo di testo costa molto di più da mostrare di un semplice testo, soprattutto su Android e soprattutto se accetta più righe. Una scheda di ricetta con quaranta campi tutti attivi insieme comincia a scattare allo scorrimento, e la tastiera salta fuori appena la si sfiora. Un campo alla volta significa una scheda che resta una scheda fino al momento preciso in cui ci si vuole scrivere.

Attorno a questo gesto di base, qualche aggiunta: un badge in più, una croce per toglierne uno, un ingrediente o un passaggio in più in qualsiasi sezione, una sezione intera in meno, una lista o una sequenza di passaggi nuova in fondo alla scheda. E una pillola «Fatto» in alto a sinistra per uscire dalla modalità di modifica.

Ogni modifica parte immediatamente verso il server. La rotta che fino ad allora accettava solo un cambio di stato di un ricordo, attivo, archiviato, silenziato, accetta ora anche il suo contenuto, i suoi metadati e i suoi temi, con la stessa regola di prima: si modifica solo ciò che ci appartiene, e il server lo verifica da sé. La trasformazione profonda di un ricordo, quella che ne conserva la storia nella memoria neuronale, passa ancora dalla conversazione. Questa rotta è fatta per i ritocchi, non per le revisioni.

Eliminare, infine, chiede una conferma, poi cancella la scheda per sempre e chiude il pannello. È l'unica operazione davvero distruttiva di tutta la giornata, ed è l'unica a fare una domanda prima di agire.

Il titolo che tornava indietro

Il secondo intoppo era più subdolo, perché somigliava a un guasto mentre tutto funzionava.

Si tocca il titolo, lo si corregge, si esce dal campo: ricompare il vecchio titolo. Si chiude la scheda, la si riapre: il nuovo titolo è lì. La modifica era stata salvata, si rifiutava solo di mostrarsi subito.

La spiegazione sta in chi possiede il dato sullo schermo. La scheda teneva una copia locale del suo contenuto per mostrare la correzione senza aspettare il server, e si riallineava su ciò che le passava il suo elemento padre ogni volta che questo cambiava. Ma il padre si ridisegna per mille ragioni che non hanno nulla a che fare con il contenuto, e ogni volta porgeva alla scheda un oggetto tecnicamente nuovo, dal contenuto identico. La scheda prendeva quel nuovo oggetto per un vero aggiornamento e sovrascriveva la correzione appena fatta con la versione precedente. La correzione tornava solo alla riapertura, quando il padre aveva finalmente ricaricato il dato reale.

La soluzione non è una toppa, è un trasloco. La copia locale ha lasciato la scheda ed è salita di un piano, nel pannello che la mostra: è lui che applica la correzione sullo schermo prima, invia il salvataggio poi, e si risincronizza solo quando si passa davvero a un altro ricordo. La scheda è tornata a essere ciò che avrebbe sempre dovuto essere, un puro visualizzatore di ciò che le viene dato.

Nello stesso passaggio, una quantità un po' lunga, «quattro pezzi, ottocento grammi» accanto a un nome di ingrediente anch'esso un po' lungo, traboccava dalla sua riga e usciva dalla card. Nome e quantità sono stati impilati in colonna invece di stare allineati fianco a fianco: la quantità passa sotto il nome, e più niente sporge.

«Fatto» inghiottiva l'ultima frase

Il terzo intoppo ha resistito tre volte, ed è il più interessante della giornata per chi costruisce interfacce.

Lo scenario: si modifica la durata di un passaggio, si scrive «quaranta minuti», e senza uscire dal campo si tocca direttamente «Fatto». La scheda torna in modalità lettura. La durata mostra il vecchio valore. Niente è partito verso il server.

Quello che succedeva: il campo di testo salva il suo valore nel momento in cui perde il focus. Ma «Fatto» smonta la modalità di modifica in un colpo solo, e il campo viene tolto dallo schermo prima di aver perso il focus. I caratteri digitati vivevano in una bozza, e la bozza spariva con il campo.

Prima risposta: il campo sorveglia ora il segnale di modifica del suo padre. Se passa a «lettura» mentre il campo ha ancora il focus, questo salva la sua bozza prima di essere tolto. Seconda risposta, cintura e bretelle: il pulsante «Fatto» comincia con l'abbassare la tastiera, cosa che fa perdere naturalmente il focus al campo attivo, e cambia modalità solo dopo.

È bastato per il titolo, i badge, gli ingredienti. Non per i passaggi.

I passaggi avevano una particolarità: in modalità lettura, ogni riga di passaggio è un elemento toccabile, per poterla spuntare. In modalità di modifica, è un semplice contenitore. Due nature diverse. Quando si passa dall'una all'altra, il sistema di visualizzazione non aggiorna la riga, la distrugge e ne fabbrica una nuova. Il campo di testo all'interno viene distrutto con lei, prima ancora che la sua sorveglianza del segnale di modifica abbia avuto il tempo di reagire. La prima risposta era giusta, arrivava troppo tardi.

La terza risposta si esegue nel momento stesso della distruzione del campo: se il campo aveva il focus e la sua bozza differisce dal valore d'origine, salva la bozza nel suo ultimo respiro. Un punto tecnico conta qui: in quell'istante, lo stato catturato all'ultimo rendering non è più affidabile, bisogna leggere i valori da riferimenti tenuti aggiornati di continuo. Lo stesso meccanismo copre di passaggio l'eliminazione di una sezione mentre ci si scrive dentro, e ogni altro caso in cui l'albero di visualizzazione cambia forma attorno a un campo attivo.

Due briciole per finire. Un badge di preparazione che diceva «trenta minuti, più riposo» era bloccato a ventotto caratteri e rifiutava la digitazione: il limite è salito a sessanta. E il server scrive ora una riga nel suo registro a ogni ritocco ricevuto, e un'altra se il database lo rifiuta. La prossima volta che una modifica «non sembra salvata», si saprà con una sola lettura se la richiesta non è mai partita o se è stata respinta all'arrivo. Sono due guasti diversi, e fino ad allora avevano lo stesso volto.

Cosa ha cambiato la giornata

Questi lavori sembrano bricolage d'interfaccia. Stanno insieme grazie a un'idea.

Una scheda che la memoria riempie al posto tuo vale qualcosa solo se puoi riprenderla in mano. Dettare è veloce, ed è proprio per questo che ci si lasciano errori. Il giorno in cui correggere un errore costa meno che lasciarlo, la scheda diventa un oggetto di cui ci si fida. Il giorno in cui una lista si spunta passaggio dopo passaggio con le mani piene di farina, ha lasciato il telefono per entrare in cucina.

Il resto, la casella invisibile, il titolo che arretrava, la frase inghiottita, è il costo di quella promessa. Ciascuno dei tre difetti aveva lo stesso sintomo, «la mia modifica non viene presa», e tre cause senza alcun rapporto. È questo che ha reso lunga la giornata: ogni volta che la questione sembrava chiusa, lo stesso sintomo tornava da un'altra porta. Abbiamo imparato a non fidarci più del sintomo, e a cercare la causa ogni volta come se fosse la prima.

Da leggere dopo
XNeuronal è disponibile su AndroidUna memoria che deduce sta per arrivare