碎阅:一款基于 douban 及 ONE API 开发的资讯类 App
作者:Ruheng
链接:https://www.jianshu.com/p/598fbebbc0db
声明:本文是 Ruheng 原创,转发等请联系原作者授权。
地址
一款基于douban及ONE API开发的资讯类的开源项目。项目采取的是okhttp + MVP架构开发。Github地址:https://github.com/LRH1993/SuiYue
一、效果图
二、简介
碎阅分为三个主要模块:
文章
图书
电影
1.文章
API使用的是ONE API,关于具体API参考该项目的REAMDE。
文章列表:支持上拉加载更多下拉刷新,列表使用RecyclerView,每日推荐新的文章。
文章详情页:主要分为短文、问答及连载三种类型文章,布局采用CoordinatorLayout。
2.图书
API使用的是豆瓣图书 API,关于具体API参考该项目的REAMDE。
图书列表:列表使用RecyclerView,添加浮动按钮刷新图书,该按钮支持任意拖拽。
搜索界面:采用DialogFragment实现,支持历史搜索及热门搜索,具有Circular Reveal动画效果。
扫描界面:采用Zxing进行二维码扫描,支持图书扫描,获取图书详情信息。
3.电影
API使用的是豆瓣电影 API,关于具体API参考该项目的REAMDE。
电影列表:由影院热映、院线即将上映及豆瓣Top250三部分组成,点击全部跳转到显示所有列表信息。
电影详情页:影片的具体介绍及评分信息,采用CardView卡片控件,评分控件采用MaterialRatingbar。
三、开源库
Fresco,好用的图片加载库。
okhttp,快速实现网络请求。
EventBus,方便实现组件间通信。
MaterialRatingBar,符合material design的评分控件。
zxing,google出品的二维码库。
zxing-android-embedded,快速适用于android二维码使用的库。
ImmersionBar,简单实现各种状态栏管理。
四、技术点
在实现项目过程中,学到的一些知识,及遇到的一些技术问题。
豆瓣及ONE的相关API的了解
Kotlin语言的使用及语法特性
MVP模式的特点及使用
Fresco的使用细节
okhttp的使用细节及简单封装
ZXing的接入以及在android中的使用
代码混淆的简单了解及学习
SwipeRefreshLayout结合RecyclerView下拉刷新上拉加载
CoordinatorLayout + Behavior的简单学习与使用
ScrollView嵌套RecyclerView的使用及问题分析
五、总结
由于时间原因以及相关API数据的限制,有些实现上比较粗糙,同时存在一些潜在的bug,欢迎在Github上提issue。如果觉得不错,对你有帮助,希望多多fork,star。
Github地址:https://github.com/LRH1993/SuiYue
可以通过扫描二维码,下载apk体验。