Clientul GitHub pentru Android a construit modelul de design MVVM, programarea reactivă cu LiveData, modelul de depozitare, Biblioteca de persistență a camerei.
Caracteristici: Paginare, cache rezultatele căutării și opțiunea de a adăuga marcaje.
Codul este ambalat în funcție de caracteristică. Pachetul de date conține clase de modele locale de baze de date, servicii web și depozit care este folosit ca o singură sursă de adevăr.
Pachetul UI conține VIEW (Activități) și VIEW MODEL (AndroidViewModel) pentru fiecare ecran din aplicație. VIEW MODEL nu conține nici o referință la clasele VIEW sau MODEL din pachetul de date, astfel încât codul este modular și este ușor să modificați ecrane și să adăugați caracteristici.
LiveData este folosit pentru a comunica între straturile aplicației. Orice modificări în stratul MODEL sunt propagate prin LiveData la VIEW MODEL și apoi pe stratul VIEW.
În clasa Utils există o interfață de configurare în care puteți configura termenul de căutare prestabilit, rezultatele pe pagină și durata de păstrare a rezultatelor în memoria cache locală, înainte de a încerca să actualizați cu cele noi.
Verificați codul sursă la: https://github.com/giantturtle/RepoExplorerMVVM