Abbiamo terminato la sezione dell'origine dati remota.
Ora passiamo al repository.
Lo scopo principale di un repository in un'applicazione Android è gestire
le operazioni sui dati e astrarre le fonti di dati.
Agisce come mediatore tra diverse fonti di dati, come database
locali, servizi di rete e cache, e il resto dell'applicazione.
Utilizzando un repository, è possibile centralizzare e incapsulare la logica di
recupero dei dati, rendendola più facile da gestire e testare.
Il repository fornisce un'API pulita per l'accesso ai dati al resto dell'applicazione.
Il ViewModel o altri componenti non devono sapere da dove provengono i dati.
Rete, database e così via.
La separazione delle preoccupazioni è lo scopo principale del repository.
Separa la logica di recupero dei dati dalla logica dell'interfaccia utente, aderendo alla singola responsabilità Il
repository principale rende il codice più testabile, consentendo di prendere in giro il repository nei test.
Centralizza tutta la logica relativa ai dati, facilitando la gestione della
cache, della sincronizzazione e di altre attività di gestione dei dati.
Passiamo ad Android Studio.
Creare un nuovo pacchetto.
Lo chiamerò repository.
All'interno di questo pacchetto di repository, creare una nuova classe Kotlin e chiamarla movie repository o repository.
Qui, all'interno della classe repository, all'inizio recupererò i dati dall'API.
Poi si recuperano i dati dal database locale.
Dobbiamo elencare tutte le funzioni disponibili nelle nostre applicazioni
e la nostra applicazione relativa al recupero dei dati.
Se torniamo al servizio API, abbiamo solo una funzione relativa al recupero dei dati.
Si chiama "ottenere film popolari".
Dobbiamo iniziare con la funzione di sospensione.
Poiché questa funzione è una funzione di sospensione, non è possibile chiamare le funzioni di sospensione da funzioni normali,
solo le funzioni di sospensione possono essere chiamate da funzioni di sospensione o da un ambito di coroutine.
Funzione di sospensione.
Ottenere film popolari da API online.
Questa funzione accetta una chiave API come parametro e restituisce un elenco di film alt plus.
Inserite per importare il filmato dal nostro pacchetto.
Restituisce l'istanza di retrofit dot API dot.
Trovate qui i film più popolari.
È necessario passare la chiave API e ottenere i risultati che restituiscono un elenco di film.
Lasciate che ve lo spieghi in dettaglio.
Funzione di sospensione La parola chiave sospensione viene utilizzata per definire una funzione di sospensione.
In Kotlin, le funzioni di sospensione possono essere messe in pausa e riprese in un secondo momento, il
che le rende adatte a operazioni di lunga durata come le richieste di rete; abbiamo parlato di funzioni
di sospensione e di coroutine negli esempi precedenti e le sezioni precedenti eseguono questa funzione in background.
Questo aiuta a mantenere il thread principale sbloccato, garantendo un'esperienza utente più fluida.
Le funzioni di sospensione possono essere chiamate solo da altre funzioni di sospensione o all'interno di una coroutine.
Quindi, se notate che get popular movies è una funzione di
sospensione, la chiamiamo all'interno di un ambito di funzione di sospensione.
Questo è il nome della funzione e questa è la chiave API del parametro.
È di tipo stringa.
Questo parametro accetta una chiave API come stringa,
necessaria per autenticare la richiesta all'API di Tmdb.
Il tipo di ritorno è di tipo.
Elenco dei film.
Questa funzione restituisce un elenco di oggetti filmati.
La classe movie è una classe di dati che rappresenta la struttura del filmato come
restituito dall'API di Tmdb e che abbiamo creato negli esempi e nei video precedenti.
Nel corpo di questa funzione, abbiamo la parola chiave return che restituisce un elenco di film.
L'istanza di retrofit è un oggetto singleton che fornisce un'istanza di retrofit configurata.
API è una proprietà che rappresenta l'interfaccia del servizio API, il servizio MDB.
Questa interfaccia definisce gli endpoint dell'API e i rispettivi metodi di richiesta.
Se torniamo all'istanza di retrofit, possiamo vedere che
abbiamo due variabili, l'URL di base e l'API.
Stiamo accedendo all'istanza di retrofit e stiamo accedendo a questa variabile API.
Questa API restituisce un'istanza di retrofit.
Ottenere film popolari.
Stiamo accedendo a un oggetto di questa interfaccia di servizio API e stiamo chiamando questa
funzione get popular movies, fornendo la chiave API come parametro, e stiamo accedendo ai risultati.
Questo metodo è definito nel servizio Tmdb, qui nell'interfaccia del servizio API, e viene
utilizzato per effettuare una richiesta di rete per recuperare i film più popolari.
Prende la chiave API come parametro e restituisce un
oggetto movie response, che contiene i dati restituiti dall'API.
Il metodo Get Popular Movies restituisce un oggetto di risposta
film, strutturato in modo da corrispondere alla risposta JSON dell'API.
Se torniamo a Get Popular movies, si può notare che la risposta del film è il
tipo di ritorno di questa funzione, che corrisponde esattamente alla struttura di questa risposta JSON.
Se approfondiamo la risposta del filmato, notiamo che contiene quattro campi.
Siamo interessati a ottenere il campo dei risultati, quindi non
otterremo le pagine, le pagine totali e i risultati totali.
Siamo interessati a ottenere i risultati.
Quindi abbiamo accesso al campo dei risultati all'interno di questo repository.
Anche in questo caso si tratta di un'istanza di retrofit.
Otteniamo l'API, chiamiamo i film popolari fornendo la chiave API
e otteniamo i risultati, ovvero un elenco di film.
Quindi il tipo di ritorno di questa funzione sarà un elenco di film in seguito.
Torniamo a questo repository.
Quando si tenta di recuperare i dati da un database offline o locale