Una lista senza schede
Un'applicazione senza schede deve comunque lasciar vedere quello che ha trattenuto. Invece di aggiungere una barra di navigazione, la schermata di conversazione è diventata la pagina centrale di un carosello di tre: i memo e le attività da un lato, l'agenda dall'altro, ciascuno raggiungibile con un solo scorrimento. Nello stesso movimento, la scheda ha smesso di essere descritta dal modello e ora viene assemblata dal server.
Una contraddizione, messa in chiaro
Il principio di partenza sta in una frase: niente schede, niente liste da scorrere. Tu parli, la memoria organizza, e ciò che deve essere visto risale al momento giusto. È quello che rende la schermata principale leggibile da chiunque, senza istruzioni per l'uso.
Solo che c'è un'abitudine che torna di continuo, ed è perfettamente legittima: voler guardare. Vedere cosa è rimasto in sospeso tra le attività, rileggere un memo dettato la settimana scorsa, verificare che una cosa sia stata davvero trattenuta. Rifiutare questo uso in nome di un principio significa trasformare una scelta in ostinazione.
La domanda non era quindi se dare accesso a una lista, ma come farlo senza reintrodurre quello che avevamo passato mesi a togliere.
La risposta era già sullo schermo
L'agenda viveva già a destra della schermata di conversazione, raggiunta con uno scorrimento. Il gesto esisteva, era compreso, e non costava un solo pixel di interfaccia permanente. Non c'era motivo di inventarne un altro.
La schermata di conversazione è quindi passata dalla prima alla seconda posizione, al centro di un carosello di tre pagine. A sinistra, un pannello Memo e Attività. Al centro, la conversazione, che resta quello che vedi all'apertura. A destra, l'agenda, invariata.
Questo spostamento sembra innocuo. Non lo è, perché cambia la posizione di riposo di tutto lo schermo: la pagina centrale deve comparire all'avvio, il gesto deve agganciarsi a tre posizioni invece che a due, e la resistenza alle due estremità deve restare percepibile, così da sentire il bordo senza superarlo. Un carosello che parte nel posto sbagliato, o che scivola troppo in là, dà subito l'impressione che l'applicazione si sia mossa da sola.
Il pannello in sé resta volutamente povero: un titolo, due schede interne per passare dai memo alle attività, un campo di ricerca che filtra sul contenuto, e una lista ordinata per ultima menzione. Quest'ultimo punto conta più di quanto sembri: l'ordine non è la data di creazione, è l'ultima volta che quella cosa è stata evocata. Ciò che vive risale, ciò che è ricaduto scende, esattamente come nella memoria a livelli.
Toccare un elemento non apre una schermata nuova. Il tocco prende la strada già usata dall'agenda e apre la scheda alla riga giusta. Una sola logica di navigazione, non due che tra sei mesi finirebbero per divergere.
La scheda che non arrivava mai
Lo stesso lavoro ha risolto un difetto più profondo, e senza alcun legame apparente.
Fino ad allora, quando il modello voleva mostrare una scheda, ne descriveva lui stesso il contenuto. Annunciava la scheda e forniva di seguito i dati da disegnare. È comodo da scrivere, ed è una cattiva idea: presuppone che il modello si ricordi esattamente di quello che è appena stato registrato, nel formato giusto, senza omettere niente. Quando sbagliava, l'applicazione mostrava diligentemente una scheda vuota. Il difetto non stava nella visualizzazione, stava nell'aver affidato il dato a chi non ne è la fonte.
La chiamata ha quindi cambiato natura. Il modello non descrive più niente: indica. Dà un identificatore di neurone, una lista di identificatori, oppure un filtro. Il server va a cercare il dato reale e assembla quello che verrà mostrato. La scheda vuota non viene più corretta, è diventata impossibile, che è l'unica forma di correzione capace di reggere nel tempo.
Due aggiustamenti completano il quadro. La scheda ora si apre da sola dopo la creazione di un memo, di un'attività, di un promemoria o di un evento, perché sono i casi in cui vuoi vedere il risultato. Non si apre per i fatti e i contatti, che restano memoria silenziosa, né quando un'informazione si limita a rafforzare una cosa già nota. E l'apertura aspetta tre decimi di secondo: quando una sola frase crea più neuroni di fila, questo ritardo evita che lo schermo lampeggi accumulando aperture.
Quello che ne teniamo
Due regole, uscite dallo stesso lavoro.
Una scelta di fondo si difende con un gesto, non con un rifiuto. Non volevamo schede: non ne abbiamo aggiunte, e l'esigenza è comunque servita. Il vincolo ha prodotto una risposta migliore di quella che una scheda avrebbe dato, perché non occupa nessuno spazio finché non la chiedi.
E il dato mostrato deve venire da dove è conservato, mai da chi lo racconta. Vale per il modello come per tutto il resto: tra la memoria e lo schermo, la strada più breve è quella che attraversa meno intermediari.
