0.6.0 blocco 3: copertina, versione, documenti e anteprime nelle due lingue
@@ -231,3 +231,52 @@ andrebbe disegnata a mano.
|
||||
parsing delle statistiche e alla formattazione di importi e mesi (61/61), versione,
|
||||
README e `docs/PROTOCOL.md` aggiornati.
|
||||
- Nessun comando nuovo all'impianto: tutto questo è **sola lettura**.
|
||||
|
||||
---
|
||||
|
||||
## 9. Studio UX/UI e riordino delle schermate — v0.6.0
|
||||
|
||||
Prima di scrivere codice è stato fatto lo studio in `docs/UX-STUDIO.md`: dieci
|
||||
problemi rilevati nelle schermate della 0.5.0, la proposta, i wireframe
|
||||
(`docs/ux/`, generati da `scripts/render_wireframes.py`) e il piano di verifica.
|
||||
Le quattro scelte di design sono state prese dall'autore: la frase di stato
|
||||
lunga va in Impianto, "Altri comandi" diventa "Comandi impianto", le azioni
|
||||
rapide sono pulsanti visibili, le azioni sulla copertina restano per dopo la
|
||||
prova di `CoverAction` sul kit.
|
||||
|
||||
**Home** (`MainPage.qml`, riscritta): una schermata da guardare, non un modulo.
|
||||
Stato in una riga con il pallino colorato (verde regolare, ambra modo attivo o
|
||||
numeri vecchi, rosso errore), le due letture che contano — casa e acqua calda,
|
||||
con obiettivo e barra di carica — affiancate e **toccabili**, e tre azioni
|
||||
rapide: boost, assenza, comandi. Escono dalla Home i due slider, i sette
|
||||
pulsanti e i tre pulsanti di navigazione ridondanti col menù a tendina. Sotto,
|
||||
in una riga toccabile che porta a Impianto: esterna, termostato, zone.
|
||||
|
||||
**Regolazioni** (`SetpointsPage.qml`, nuova): un blocco per grandezza, con il
|
||||
valore vero dell'impianto sempre visibile, slider (la proposta), fila di valori
|
||||
rapidi per le dita fredde e pulsante di conferma che si attiva solo se c'è
|
||||
davvero qualcosa da cambiare. Il boost ha qui i suoi due pulsanti.
|
||||
|
||||
**Comandi impianto** (`CommandsPage.qml`): da 12 pulsanti in quattro sezioni
|
||||
(otto in coppie acceso/spento) a **4 interruttori `TextSwitch` + 3 pulsanti**.
|
||||
Gli interruttori non anticipano l'impianto: `automaticCheck: false`, `checked`
|
||||
sull'ultimo dato vero, e se il comando non riesce restano dov'erano. La
|
||||
diagnostica (verifica impianto) si sposta in Impianto, insieme alle letture che
|
||||
non avevano posto: pompa, modi consentiti, modalità manuale, sbrinamento, luci
|
||||
di firma.
|
||||
|
||||
**Feedback e dati vecchi**: i messaggi dei comandi passano in `ApiClient`
|
||||
(`api.notice`) e si mostrano nel nuovo `NoticeBar`, **ancorato al bordo
|
||||
inferiore della pagina** invece che dentro il contenuto che scorre: prima,
|
||||
premendo un pulsante in fondo alla pagina, il messaggio nasceva fuori schermo.
|
||||
In più `stale` e `lastUpdate`: la Home scrive "aggiornato alle HH:MM" e spegne i
|
||||
numeri quando l'ultima lettura non è recente. Dopo un comando riuscito lo stato
|
||||
si rilegge da solo (2 s): l'aggiornamento automatico, prima, non esisteva.
|
||||
|
||||
**Stato breve ed esteso in C++** (`AiraJson::stateShort/stateLong/statusLevel`):
|
||||
logica pura, verificabile senza SDK e non duplicata fra Home e Impianto. Test
|
||||
del nucleo: **79/79** (erano 61). Stringhe: **190/190** tradotte. Anteprime
|
||||
rigenerate (nuova `regolazioni.png`) in italiano e inglese.
|
||||
|
||||
- Nessun comando nuovo all'impianto: anche questa versione resta **sola
|
||||
lettura** finché non si prova l'invio dal telefono.
|
||||
|
||||
@@ -8,6 +8,33 @@ Immagini di questo studio (schemi, non anteprime): `docs/ux/`.
|
||||
|
||||
---
|
||||
|
||||
## 0. Cosa è stato deciso e cosa è stato fatto (0.6.0)
|
||||
|
||||
Le quattro scelte, applicate:
|
||||
|
||||
1. La frase di stato lunga sta nella pagina **Impianto**; in Home resta la riga
|
||||
compatta con il pallino colorato.
|
||||
2. "Altri comandi" è diventata **"Comandi impianto"**.
|
||||
3. Le azioni rapide sono **pulsanti visibili** in Home.
|
||||
4. Azioni sulla copertina: **rimandate** a dopo la prova di `CoverAction` sul kit.
|
||||
|
||||
Problemi risolti: P1 (Home di consultazione), P2 (feedback ancorato), P3
|
||||
(interruttori), P4 (un solo percorso per pagina), P5 (un blocco per
|
||||
grandezza, valori rapidi), P6 (numeri vecchi spenti + ora), P7 ("esterna"),
|
||||
P9, P10 (diagnostica in Impianto), P11.
|
||||
|
||||
Rimandato: P8 (azioni sulla copertina), in attesa della prova sul telefono.
|
||||
|
||||
Verifiche fatte qui: **79 verifiche del nucleo** (erano 61), `qmllint` pulito su
|
||||
tutti i file QML, 190/190 stringhe tradotte, anteprime rigenerate in inglese e
|
||||
italiano, contratto dei dati fra UI e bridge rispettato
|
||||
(`tests/ui_contract_check.py`).
|
||||
Da provare sul telefono: che `TextSwitch` si istanzi davvero, l'altezza reale
|
||||
della Home (riga di log con `contentHeight` contro l'altezza dello schermo) e
|
||||
l'uso con una mano sola.
|
||||
|
||||
---
|
||||
|
||||
## 1. Metodo
|
||||
|
||||
Tre riferimenti, in quest'ordine:
|
||||
|
||||
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 73 KiB |