WEBVTT

1
00:01.220 --> 00:02.870
Congratulazioni, ragazzi.

2
00:02.870 --> 00:05.750
Abbiamo terminato la sezione del database
delle stanze.

3
00:05.750 --> 00:09.080
Ora creeremo il repository.

4
00:09.110 --> 00:17.000
Un repository viene utilizzato per gestire
le operazioni sui dati

5
00:17.000 --> 00:17.810
e per astrarre le fonti di dati dal resto
dell'applicazione.

6
00:17.810 --> 00:23.570
Serve come unica fonte di verità per i
dati dell'applicazione.

7
00:23.570 --> 00:30.680
Il repository gestisce tutte le operazioni
sui dati, come il recupero dei dati dalla
rete,

8
00:30.680 --> 00:34.820
il caricamento dei dati da un database
locale o la combinazione di entrambe le
fonti.

9
00:34.850 --> 00:42.830
Fornisce un'API pulita per l'accesso ai
dati al resto dell'applicazione,
facilitando

10
00:42.830 --> 00:45.140
la gestione e il riutilizzo del codice
relativo ai dati.

11
00:45.140 --> 00:49.700
Passiamo ad Android Studio e iniziamo a
costruire il nostro repository.

12
00:49.730 --> 00:52.130
È necessario creare un nuovo pacchetto.

13
00:52.130 --> 00:59.600
Lo chiamerò repository e all'interno del
pacchetto repository

14
00:59.600 --> 01:02.960
creerò una nuova classe Kotlin chiamata
Notes Repository.

15
01:04.220 --> 01:11.050
Il repository gestisce tutte le operazioni
sui dati, come il recupero dei dati dalla
rete,

16
01:11.080 --> 01:14.170
il caricamento dei dati da un database
locale o la combinazione di entrambe le
fonti.

17
01:14.170 --> 01:20.290
Fornisce un'API pulita per l'accesso ai
dati al resto dell'applicazione,
facilitando

18
01:20.290 --> 01:22.210
la gestione e il riutilizzo del codice
relativo ai dati.

19
01:22.240 --> 01:28.480
Il repository astrae le fonti di dati dal
ViewModel e dai componenti
dell'interfaccia utente.

20
01:28.480 --> 01:34.690
Questa astrazione consente di cambiare
l'origine dei dati, ad esempio passando da
un database locale

21
01:34.690 --> 01:40.420
a un dato remoto o a un'API remota, senza
impattare su altre parti
dell'applicazione.

22
01:40.420 --> 01:47.590
Gestendo le operazioni sui dati nel
repository, si separa la logica dei dati

23
01:47.590 --> 01:50.890
dalla logica dell'interfaccia utente,
rendendo il codice più modulare, leggibile
e manutenibile.

24
01:50.890 --> 01:59.290
All'interno di questa classe dobbiamo
passare il costruttore private val note
dao.

25
01:59.320 --> 02:02.890
E qui dobbiamo creare due cose.

26
02:02.890 --> 02:05.680
E dobbiamo chiamare le due funzioni.

27
02:05.680 --> 02:09.940
Creiamo nel Dao l'inserto e otteniamo
tutti i nodi.

28
02:09.940 --> 02:18.720
Quindi tutte le funzioni dell'applicazione
devono essere richiamate all'interno del
repository delle note per

29
02:18.720 --> 02:24.540
unificare e organizzare tutte le possibili
fonti di dati in un unico repository.

30
02:24.540 --> 02:31.380
In questo caso, abbiamo un solo database
di stanze che recupera i dati da esso,

31
02:31.380 --> 02:38.640
e all'interno di questo database di stanze
abbiamo il Dio che contiene tutti i

32
02:38.640 --> 02:40.170
metodi da eseguire sul database, che sono
due metodi insert e get all notes.

33
02:40.170 --> 02:48.420
Se ne abbiamo cinque qui, dovremmo
menzionarle qui nel repository, in modo
che tutte le note siano di

34
02:48.420 --> 02:58.950
tipo live data di tipo list di tipo note
uguale a note dao dot get all notes.

35
02:58.950 --> 03:01.530
Qui chiamiamo questa funzione.

36
03:01.530 --> 03:08.370
Ottenere tutte le note dal Dao e
memorizzare l'elenco delle note in un dato
live.

37
03:08.400 --> 03:15.420
Perché se torniamo indietro, otteniamo il
get all notes return live data dell'elenco
di note.

38
03:15.450 --> 03:17.910
Ok, quindi lo stesso tipo di ritorno.

39
03:17.940 --> 03:22.350
La seconda funzione è insert, che è una
funzione di sospensione.

40
03:22.350 --> 03:27.750
A tale scopo, è necessario creare una
funzione di sospensione e chiamarla
insert.

41
03:27.750 --> 03:33.900
È possibile inserire il nodo insert o
qualsiasi cosa si desideri nell'oggetto
parametro e nell'oggetto nodo.

42
03:33.930 --> 03:42.810
Il nodo di ritorno fa il punto, inserisce
e passa il nodo solo chiamando le funzioni
dal Dao.

43
03:42.840 --> 03:45.210
Se abbiamo più DAO.

44
03:45.210 --> 03:51.570
Se abbiamo due DAO e ogni Dao contiene, ad
esempio, quattro metodi.

45
03:51.570 --> 03:55.620
Quindi dovremmo citare otto metodi nel
repository.

46
03:55.650 --> 03:56.100
Ok.

47
03:56.130 --> 04:00.810
Prestate quindi attenzione al ruolo del
repository.

48
04:00.810 --> 04:07.560
Il repository nell'architettura MVVM funge
da mediatore tra il ViewModel e le fonti
di dati,

49
04:07.560 --> 04:14.730
fornendo un'API pulita per le operazioni
sui dati e garantendo una chiara
separazione delle preoccupazioni.

50
04:14.730 --> 04:21.300
Migliora la testabilità, la riusabilità e
la flessibilità, rendendo

51
04:21.300 --> 04:22.680
il codice più manutenibile e adattabile
alle modifiche.


