WEBVTT

1
00:00.680 --> 00:03.200
Continuiamo con il modello della vista
post.

2
00:03.230 --> 00:05.720
Qui creerò un blocco init.

3
00:05.750 --> 00:12.590
Il blocco init in una classe Kotlin è un
blocco inizializzatore speciale che viene
eseguito quando viene creata

4
00:12.590 --> 00:20.630
un'istanza della classe; in questo caso,
quando viene creata un'istanza del modello
di vista post, serve come inizializzatore

5
00:20.630 --> 00:28.040
in cui è possibile impostare qualsiasi
operazione o stato necessario per il
modello di vista al suo interno.

6
00:28.070 --> 00:31.130
Inizieremo con l'ambito ViewModel.

7
00:31.130 --> 00:36.290
L'ambito ViewModel è un ambito coroutine
legato al ciclo di vita del ViewModel.

8
00:36.290 --> 00:43.700
Quando si lancia una coroutine nell'ambito
ViewModel, si

9
00:43.700 --> 00:44.660
assicura che la coroutine venga annullata
automaticamente.

10
00:44.660 --> 00:48.710
Se il ViewModel viene cancellato, è
necessario richiamare il lancio.

11
00:48.740 --> 00:53.030
Il lancio avvia una nuova coroutine in
questo ambito.

12
00:53.030 --> 00:59.990
È una funzione di sospensione che consente
di

13
00:59.990 --> 01:00.980
eseguire operazioni asincrone senza
bloccare il thread principale.

14
01:01.010 --> 01:10.930
Dobbiamo recuperare i dati, quindi val
fetched posts Pose equivale a repository
dot getposts all'interno della coroutine.

15
01:10.960 --> 01:17.770
Il ViewModel chiama il metodo Getposts del
repository per recuperare i post.

16
01:17.770 --> 01:22.150
Si tratta di una funzione di sospensione,
cioè può essere chiamata all'interno.

17
01:22.150 --> 01:28.120
Una coroutine sospende la coroutine mentre
esegue le operazioni di rete.

18
01:28.120 --> 01:36.340
Poiché Getposts è una funzione di
sospensione, questa funzione viene

19
01:36.340 --> 01:43.600
chiamata solo nell'ambito di un'altra
coroutine e l'ambito del ViewModel

20
01:43.630 --> 01:44.410
ci offre la possibilità di chiamare altre
funzioni di coroutine.

21
01:44.440 --> 01:46.630
Ora aggiorniamo lo stato.

22
01:46.630 --> 01:49.270
Abbiamo creato questa variabile, i post.

23
01:49.270 --> 01:52.480
È uno stato mutevole dell'elenco di
messaggi.

24
01:52.510 --> 01:54.370
Ora dobbiamo aggiornare lo stato.

25
01:54.370 --> 01:57.910
Quindi i post equivalgono a recuperare i
post.

26
01:57.940 --> 02:06.850
Poiché posts è uno stato mutabile di
aggiornamento,

27
02:06.850 --> 02:14.230
il suo valore innescherà automaticamente
una ricomposizione di

28
02:14.230 --> 02:16.330
qualsiasi funzione componibile che legga
questo stato.

29
02:16.330 --> 02:26.590
Quindi, qualsiasi variabile composta, che
è uno stato mutevole, innescherà la
ricomposizione.

30
02:26.590 --> 02:27.130
Di nuovo.

31
02:27.130 --> 02:32.230
Ragazzi, voglio che vi concentriate con me
e che scriviate queste note.

32
02:32.230 --> 02:38.050
A proposito, potete trovare tutti i codici
sorgente nella cartella delle risorse
sotto ogni sezione.

33
02:38.050 --> 02:44.050
Ho bisogno di aggiornare il post con i
post recuperati e otteniamo i post dal
repository.

34
02:44.050 --> 02:52.780
Qualsiasi aggiornamento della variabile
posts si attiverà automaticamente alla

35
02:52.780 --> 02:54.460
composizione di qualsiasi componibile che
legga questo stato.

36
02:54.460 --> 03:02.950
Pertanto, qualsiasi composito nella nostra
applicazione che dipende dai post per

37
03:02.950 --> 03:05.110
visualizzare il suo contenuto sarà
ricomposto se il post viene aggiornato.

38
03:05.110 --> 03:08.170
Questa è la chiave della nostra
applicazione.

39
03:08.200 --> 03:11.830
Ok, questo è il nostro post view modale.


