碎阅:一款基于 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体验。

(0)

相关推荐