EasyReader
一款模仿网易云音乐UI,使用Retrofit + RxJava + dagger2 + MVP的阅读类开源项目。本项目对网络返回进行了统一处理,抽取BaseActivity和BaseFragment非常具有学习意义,dagger2的分包结构以及使用都是教科书级别的。
github项目地址:易读
效果图
- 截图
- GIF
项目结构
- 首页:首页由知乎日报,知乎热门等几个知乎接口组合而成。由4个接口经过拼接而来的。
- 头条:网易新闻不过由于API不全所以详情页的时候不是完整的。
- 豆瓣电影TOP250和最新电影: 由豆瓣提供的接口一小时一个IP只能访问20次,如果出错了可能是次数到达上限了。
- Android:gankio的API有上拉加载更多和下拉刷新,这里有很多Android的知识可以学习。
- 最值得学习的:本项目最值得学习的是框架的搭建,大家可以必须认真看Base的抽取以及页面的几种状态,网络返回也做了统一处理。最好可以看着项目自己在敲一遍。
项目用到的知识点
- 遵循Material Design设计风格。
- Rxjava+Retrofit2网络请求,并进行封装错误可以进行统一处理。
- Dagger2将M层注入P层,将P层注入V层,无需new,直接调用对象。
- 抽取BaseActivity和BaseFragment,非常值得学习。
- BaseRecyclerViewAdapterHelper+RecyclerView完成下拉刷新,上拉加载更多。
- Glide做图片的处理和加载
- 使用CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout。
End
后期有时间会写下本项目的研发过程,以及细节帮助大家理解。
这是一个非常值得学习的项目,希望大家可以多多star、fork、issue,
如果您有什么好的意见可以及时向我反馈,您可以在GitHub的Issues处说明问题原因,也可以通过以下方式联系我,我将根据情况尽量处理哦 ~
Thanks:
云阅项目部分UI从该项目中获取,非常感谢作者,作者对我也有很大的帮助
GeekNews学习了他的degger2的思路
looklook参考了他的网易API。