使用MVVM设计模式构建的GitHub客户端,使用LiveData进行反应式编程,存储库模式,房间持久性库。
功能:分页,缓存搜索结果和添加书签的选项。
代码按功能打包。数据包包含本地数据库模型类,Web服务和存储库,它们被用作单一事实来源。
UI包包含应用程序中每个屏幕的VIEW(活动)和VIEW MODEL(AndroidViewModel)代码。 VIEW MODEL不对数据包中的VIEW或MODEL类进行任何引用,因此代码是模块化的,可以轻松更改屏幕和添加功能。
LiveData用于在应用层之间进行通信。 MODEL层中的任何更改都通过LiveData传播到VIEW MODEL,然后传播到VIEW图层。
在Utils类中,您可以配置默认搜索项,每页结果以及在尝试使用新缓存更新之前将结果保留在本地缓存中的时间。
查看源代码:https://github.com/giantturtle/RepoExplorerMVVM