Bentornati.
Abbiamo terminato il modulo repository e abbiamo detto che questo modulo è usato per dire
a hilt come fornire le dipendenze che non è in grado di capire da solo.
Aiuta a capire come legare le interfacce alle loro implementazioni.
Ora passiamo a creare il pacchetto ViewModel.
All'interno di questo ViewModel, creare una nuova classe denominata weather UI state.
Questa è una classe sigillata.
Una classe sigillata in Kotlin è come un enum con gli steroidi.
Permette di definire un insieme fisso di sottoclassi, tutte note al momento della compilazione.
Perché è utile.
Si possono usare tranquillamente le dichiarazioni when senza bisogno di un
else case e sono perfette per presentare diversi stati dell'interfaccia utente.
E qui abbiamo tre casi.
Caricamento.
Successi ed errori.
Grazie per Android Studio.
Completamento del codice che è attivo in questo stato.
Questo ci suggerisce il codice.
Quindi, se faccio clic sulla scheda, possiamo ottenere questo o quei codici.
Ok.
Alt più Invio per importare la classe Info meteo.
Ed eccoci qui.
Abbiamo quindi tre Stati.
Stato di successo e di errore del caricamento mostrato quando i dati sono ancora in fase di caricamento.
Ad esempio, l'oggetto Attesa di una chiamata di rete e dati viene utilizzato
perché non ha bisogno di dati, ma è solo uno stato singleton.
Si può quindi notare che, se viene utilizzato il costruttore UI state empty, il secondo stato viene utilizzato con successo.
Quando i dati meteorologici vengono caricati con successo, vengono trasportati gli oggetti delle
informazioni meteorologiche con la temperatura, la città e la condizione o la descrizione.
L'ultimo stato è quello di errore, utilizzato quando qualcosa va storto.
L'assenza di internet o la città non valida comportano un messaggio di errore da mostrare all'utente.
Ancora una volta, ragazzi, questo è lo stato che mostra i progressi o il successo del caricamento dello spinner.
Mostra l'errore dei dati meteo.
Mostra un messaggio di errore all'utente.
Perché questo modello è fantastico.
Rende la gestione degli stati dell'interfaccia utente pulita, sicura e leggibile.
Nessun rischio di avere stati non validi o non corrispondenti.
Riduce i bug nelle dichiarazioni when, perché il compilatore controlla tutti i casi possibili.