Клієнт GitHub для Android, побудований за моделлю MVVM, реактивне програмування за допомогою LiveData, шаблон сховища, Library Room Persistence.
Особливості: Pagination, кешування результатів пошуку та можливість додавання закладок.
Код упакований за функцією. Пакет даних містить класичні класи моделей баз даних, веб-сервіс та сховище, яке використовується як єдине джерело істини.
Пакет інтерфейсу містить код VIEW (Діяльність) та VIEW MODEL (AndroidViewModel) для кожного екрана в додатку. VIEW MODEL не містять жодних посилань на класи VIEW або MODEL в пакеті даних, так що код є модульним, тому легко змінювати екрани та додавати їх.
LiveData використовується для спілкування між шаблонами додатків. Будь-які зміни в шасі MODEL поширюються за допомогою LiveData на VIEW MODEL, а потім на шар VIEW.
У класі Utils є інтерфейс Configuretion, в якому ви можете налаштувати пошуковий термін за замовчуванням, результати на сторінці та тривалість зберігання результатів у локальному кеш-пам'яті, перш ніж намагатись оновлювати їх з новими.
Перевірте вихідний код на сторінці https://github.com/giant/2015/RepoExplorerMVVM