Cliente GitHub para Android creado con un patrón de diseño MVVM, programación reactiva con LiveData, patrón de repositorio, biblioteca de persistencia de salas.
Características: Paginación, resultados de búsqueda en caché y opción para agregar marcadores.
El código está empaquetado por característica. El paquete de datos contiene clases de modelo de base de datos local, servicio web y repositorio que se utiliza como una única fuente de verdad.
El paquete de la interfaz de usuario contiene el código VIEW (Actividades) y VIEW MODEL (AndroidViewModel) para cada pantalla de la aplicación. VIEW MODEL no contiene ninguna referencia a las clases VIEW o MODEL en el paquete de datos, por lo que el código es modular y es fácil cambiar las pantallas y agregar características.
LiveData se utiliza para comunicarse entre las capas de la aplicación. Cualquier cambio en la capa MODELO se propaga a través de LiveData para VER MODELO y luego a la capa VER.
En la clase Utils, hay una interfaz de configuración en la que puede configurar el término de búsqueda predeterminado, los resultados por página y durante cuánto tiempo deben mantenerse los resultados en la memoria caché local, antes de intentar actualizarlos con otros nuevos.
Consulte el código fuente en: https://github.com/giantturtle/RepoExplorerMVVM