Cliente GitHub para android construído usando padrão de design MVVM, programação reativa com LiveData, padrão de repositório, Room Persistence Library.
Características: Paginação, cache de resultados de pesquisa e opção para adicionar marcadores.
Código é empacotado por recurso. O pacote de dados contém classes de modelo de banco de dados locais, serviço da web e repositório que é usado como uma única fonte de verdade.
O pacote de interface do usuário contém o código VIEW (Activities) e VIEW MODEL (AndroidViewModel) para cada tela no aplicativo. VIEW MODEL não possui nenhuma referência às classes VIEW ou MODEL no pacote de dados, portanto o código é modular e é fácil alterar as telas e adicionar recursos.
O LiveData é usado para se comunicar entre camadas de aplicativos. Quaisquer alterações na camada MODEL são propagadas via LiveData para VIEW MODEL e, em seguida, para a camada VIEW.
Na classe Utils, há a interface Configureetion, na qual você pode configurar o termo de pesquisa padrão, os resultados por página e por quanto tempo os resultados devem ser mantidos no cache local, antes de tentar atualizar com novos.
Confira o código-fonte em: https://github.com/giantturtle/RepoExplorerMVVM