易读
一款模仿网易云音乐UI,使用Retrofit + RxJava + dagger2 + MVP的阅读类开源项目。本项目对网络返回进行了统一处理,抽取BaseActivity和BaseFragment非常具有学习意义,dagger2的分包结构以及使用都是教科书级别的。
<big>github项目地址:易读</big>
APP下载地址或者github中APP下载地址大家觉得项目构建慢的话,可以先下载来玩玩看,支持5.0以上,本项目可以支持4.0以上不过部分动画会失效,如果要用4.0-5.0的自己去gradle里面修改。
效果图
-
截图
首页图片
- GIF
项目结构
- 首页:首页由知乎日报,知乎热门等几个知乎接口组合而成。由4个接口经过拼接而来的。
- 头条:网易新闻不过由于API不全所以详情页的时候不是完整的。
- 豆瓣电影TOP250和最新电影: 由豆瓣提供的接口一小时一个IP只能访问20次,如果出错了可能是次数到达上限了。
- Android:gankio的API有上拉加载更多和下拉刷新,这里有很多Android的知识可以学习。
- 最值得学习的:本项目最值得学习的是框架的搭建,大家可以必须认真看Base的抽取以及页面的几种状态,网络返回也做了统一处理。最好可以看着项目自己在敲一遍,BaseActivity还添加了侧滑关闭哦,而且完全是作者自己想出来的。
项目用到的知识点
- 遵循Material Design设计风格。
- Rxjava+Retrofit2网络请求,并进行封装错误可以进行统一处理。
- Dagger2将M层注入P层,将P层注入V层,无需new,直接调用对象。
- 抽取BaseActivity和BaseFragment,非常值得学习。
- BaseRecyclerViewAdapterHelper+RecyclerView完成下拉刷新,上拉加载更多。
- Glide做图片的处理和加载
- 使用CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout。
APP:
云阅项目部分UI从该项目中获取,非常感谢作者,作者对我也有很大的帮助
GeekNews学习了他的degger2的思路
looklook参考了他的网易API。
End
后期有时间会写下本项目的研发过程,以及细节帮助大家理解。
这是一个非常值得学习的项目,希望大家可以多多star、fork、issue,
如果您有什么好的意见可以及时向我反馈,您可以在GitHub的Issues处说明问题原因,也可以通过以下方式联系我,我将根据情况尽量处理哦 ~
网友评论
不过有个问题想请教一下
你在NBADetail和TopNewsDetai都用的okhttp作为网络请求,其他用的retrofit
这样做有啥好处吗,为啥只单独这两个地方用okhttp而不用retrofitl
Error:(43, 33) No resource found that matches the given name (at 'background' with value '@drawable/home_adjust_background').
楼主是不是忘记同步上去了?