Клиент GitHub для андроида, построенный с использованием шаблона проектирования MVVM, реактивное программирование с LiveData, шаблон репозитория, библиотека сохранения пространства.
Особенности: разбиение на страницы, кеширование результатов поиска и возможность добавления закладок.
Код упакован по функции. Пакет данных содержит локальные классы модели базы данных, веб-сервис и репозиторий, которые используются как один источник правды.
Пакет UI содержит VIEW (действия) и код VIEW MODEL (AndroidViewModel) для каждого экрана в приложении. VIEW MODEL не содержит ссылок на классы VIEW или MODEL в пакете данных, поэтому код является модульным и легко менять экраны и добавлять функции.
LiveData используется для связи между слоями приложений. Любые изменения в слое MODEL распространяются через LiveData для VIEW MODEL, а затем на слой VIEW.
В классе Utils есть интерфейс Configuretion, в котором вы можете настроить критерий поиска по умолчанию, результаты на страницу и как долго должны сохраняться результаты в локальном кеше, прежде чем пытаться обновлять их новыми.
Проверьте исходный код по адресу: https://github.com/giantturtle/RepoExplorerMVVM