Bentornati.
In questo video testeremo i nostri codici.
Andare al file principale.
All'interno della funzione principale, creare una nuova istanza di componente dell'applicazione uguale a dagger app component dot create.
Si può notare che c'è una freccia rossa che indica un riferimento non risolto al componente dagger app.
Qui c'è una nota molto importante.
Hilt o dagger genera la classe del componente app dagger in fase di compilazione.
Che cosa significa? Se eseguiamo
l'applicazione, dagger genererà questa classe.
Per verificarlo, andare alla scheda Costruisci progetto pulito, quindi ricostruire il progetto.
Attendere che il processo di costruzione di Gradle finisca.
Eccoci qua.
L'errore del componente dell'app Dagger viene risolto se andiamo nel progetto qui all'interno del
codice generato da Java nell'app, si può notare che c'è una nuova classe creata
chiamata componente dell'app Dagger e anche queste classi vengono create in fase di esecuzione.
Ok.
Voglio quindi che notiate questo.
Se faccio clic su Pulisci progetto, si può notare che l'errore viene nuovamente visualizzato.
E se andiamo su IO dot master dot generated, si può notare che questo pacchetto è stato rimosso ed è apparso questo.
Se poi eseguiamo la ricostruzione del progetto, si può notare che viene creato
un nuovo pacchetto che contiene tutte le classi generate per il nostro progetto.
Ancora una volta, un progetto pulito.
Si può notare che il pacchetto è scomparso e che l'errore del componente dell'applicazione Dagger viene nuovamente visualizzato.
Ricostruendo il progetto, si può notare che Hilt and Dagger genera
la classe del componente dagger app solo in fase di compilazione.
Il secondo passo consiste nel recuperare l'istanza dell'auto.
Iniziamo con la val car.
È di tipo car uguale a app Component.get car.
Abbiamo creato un'istanza di auto utilizzando il componente app, che è la classe del componente
app di dagger, e get car, che è un metodo fornito dal componente app interface.
In realtà, stiamo creando un'istanza di questa interfaccia e chiamando get car per ottenere un'istanza di auto.
Poi dobbiamo usare la macchina usando print.
Aggiungerò il punto di guida dell'auto.
Eseguiamo il nostro progetto.
Il nostro file principale ed eccoci qui.
Come previsto, il progetto si sta svolgendo molto bene.
Quello che abbiamo fatto prima è stato creare un'istanza della classe del componente app usando il componente app di dagger.
Poiché stiamo usando il progetto standard e quello solo Kotlin, usiamo il componente dagger app.
Inoltre, abbiamo usato un'istanza di auto per ottenere un'auto dal componente
app e usiamo l'istanza di auto per chiamare la funzione drive.
Per fare un rapido riepilogo del progetto, abbiamo creato le classi motore e auto.
Abbiamo usato l'annotazione inject per iniettare il costruttore con il motore e iniettare il costruttore qui.
Qui si tratta di aggiungere dipendenza.
Questa classe dipende dalla classe del motore.
Poi abbiamo creato il modulo dell'applicazione.
Il modulo dell'applicazione definisce come vengono fornite le dipendenze.
Abbiamo un motore e una macchina.
Quindi dobbiamo fornire un motore e una macchina.
E abbiamo passato qui, all'interno dell'auto provide, il parametro del motore all'interno del componente dell'app.
Questo componente è un ponte tra i moduli e le classi che hanno bisogno di queste dipendenze.
Ok, questa interfaccia definisce l'API per recuperare le dipendenze dal grafo delle dipendenze di dagger
e all'interno del file principale, abbiamo creato l'istanza del componente app e recuperiamo l'istanza dell'auto
utilizzando la funzione dot del componente app get car e abbiamo stampato la funzione drive.