WEBVTT

1
00:01.720 --> 00:02.840
Bentornati.

2
00:02.880 --> 00:05.440
In questo video testeremo i nostri codici.

3
00:05.480 --> 00:06.720
Andare al file principale.

4
00:06.720 --> 00:17.840
All'interno della funzione principale,
creare una nuova istanza di componente
dell'applicazione uguale a dagger app
component dot create.

5
00:17.960 --> 00:26.800
Si può notare che c'è una freccia rossa
che indica un riferimento non risolto al
componente dagger app.

6
00:27.040 --> 00:29.960
Qui c'è una nota molto importante.

7
00:30.120 --> 00:36.840
Hilt o dagger genera la classe del
componente app dagger in fase di
compilazione.

8
00:37.000 --> 00:38.600
Che cosa significa? Se eseguiamo

9
00:38.600 --> 00:42.920
l'applicazione, dagger genererà questa
classe.

10
00:43.280 --> 00:50.920
Per verificarlo, andare alla scheda
Costruisci progetto pulito, quindi
ricostruire il progetto.

11
00:50.920 --> 00:54.200
Attendere che il processo di costruzione
di Gradle finisca.

12
00:54.400 --> 00:55.120
Eccoci qua.

13
00:55.400 --> 01:04.560
L'errore del componente dell'app Dagger
viene risolto se andiamo nel progetto qui
all'interno del

14
01:06.120 --> 01:12.990
codice generato da Java nell'app, si può
notare che c'è una nuova classe creata

15
01:12.990 --> 01:16.510
chiamata componente dell'app Dagger e
anche queste classi vengono create in fase
di esecuzione.

16
01:16.550 --> 01:16.990
Ok.

17
01:17.270 --> 01:21.070
Voglio quindi che notiate questo.

18
01:21.350 --> 01:30.070
Se faccio clic su Pulisci progetto, si può
notare che l'errore viene nuovamente
visualizzato.

19
01:30.230 --> 01:40.110
E se andiamo su IO dot master dot
generated, si può notare che questo
pacchetto è stato rimosso ed è apparso
questo.

20
01:40.230 --> 01:48.550
Se poi eseguiamo la ricostruzione del
progetto, si può notare che viene creato

21
01:48.550 --> 01:53.150
un nuovo pacchetto che contiene tutte le
classi generate per il nostro progetto.

22
01:53.190 --> 01:55.270
Ancora una volta, un progetto pulito.

23
01:55.270 --> 02:02.430
Si può notare che il pacchetto è scomparso
e che l'errore del componente
dell'applicazione Dagger viene nuovamente
visualizzato.

24
02:02.470 --> 02:08.630
Ricostruendo il progetto, si può notare
che Hilt and Dagger genera

25
02:08.630 --> 02:10.510
la classe del componente dagger app solo
in fase di compilazione.

26
02:10.870 --> 02:14.390
Il secondo passo consiste nel recuperare
l'istanza dell'auto.

27
02:14.390 --> 02:16.510
Iniziamo con la val car.

28
02:16.550 --> 02:21.770
È di tipo car uguale a app Component.get
car.

29
02:22.450 --> 02:30.010
Abbiamo creato un'istanza di auto
utilizzando il componente app, che è la
classe del componente

30
02:30.010 --> 02:35.090
app di dagger, e get car, che è un metodo
fornito dal componente app interface.

31
02:35.290 --> 02:41.210
In realtà, stiamo creando un'istanza di
questa interfaccia e chiamando get car per
ottenere un'istanza di auto.

32
02:41.490 --> 02:46.770
Poi dobbiamo usare la macchina usando
print.

33
02:46.810 --> 02:49.730
Aggiungerò il punto di guida dell'auto.

34
02:50.050 --> 02:52.050
Eseguiamo il nostro progetto.

35
02:52.370 --> 02:55.250
Il nostro file principale ed eccoci qui.

36
02:55.290 --> 02:59.770
Come previsto, il progetto si sta
svolgendo molto bene.

37
02:59.770 --> 03:08.050
Quello che abbiamo fatto prima è stato
creare un'istanza della classe del
componente app usando il componente app di
dagger.

38
03:08.050 --> 03:17.330
Poiché stiamo usando il progetto standard
e quello solo Kotlin, usiamo il componente
dagger app.

39
03:17.410 --> 03:26.910
Inoltre, abbiamo usato un'istanza di auto
per ottenere un'auto dal componente

40
03:26.910 --> 03:28.430
app e usiamo l'istanza di auto per
chiamare la funzione drive.

41
03:28.430 --> 03:34.230
Per fare un rapido riepilogo del progetto,
abbiamo creato le classi motore e auto.

42
03:34.230 --> 03:40.630
Abbiamo usato l'annotazione inject per
iniettare il costruttore con il motore e
iniettare il costruttore qui.

43
03:40.910 --> 03:42.710
Qui si tratta di aggiungere dipendenza.

44
03:42.950 --> 03:46.190
Questa classe dipende dalla classe del
motore.

45
03:46.390 --> 03:48.630
Poi abbiamo creato il modulo
dell'applicazione.

46
03:48.630 --> 03:52.070
Il modulo dell'applicazione definisce come
vengono fornite le dipendenze.

47
03:52.070 --> 03:54.830
Abbiamo un motore e una macchina.

48
03:54.830 --> 03:57.310
Quindi dobbiamo fornire un motore e una
macchina.

49
03:57.630 --> 04:04.190
E abbiamo passato qui, all'interno
dell'auto provide, il parametro del motore
all'interno del componente dell'app.

50
04:04.190 --> 04:11.630
Questo componente è un ponte tra i moduli
e le classi che hanno bisogno di queste
dipendenze.

51
04:11.670 --> 04:19.230
Ok, questa interfaccia definisce l'API per
recuperare le dipendenze dal grafo delle
dipendenze di dagger

52
04:19.230 --> 04:26.750
e all'interno del file principale, abbiamo
creato l'istanza del componente app e
recuperiamo l'istanza dell'auto

53
04:26.750 --> 04:32.190
utilizzando la funzione dot del componente
app get car e abbiamo stampato la funzione
drive.


