碎阅:一款基于douban及ONE API开发的资讯类App

2,985 阅读2分钟

一款基于douban及ONE API开发的资讯类的开源项目。项目采取的是okhttp + MVP架构开发。Github地址:github.com/LRH1993/Sui…

一、效果图

文章页面
图书页面
电影页面
文章详情页
图书详情页
电影详情页
搜索页面
扫描页面
电影列表页面

二、简介

碎阅分为三个主要模块:

  • 文章
  • 图书
  • 电影

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。

三、开源库

四、技术点

在实现项目过程中,学到的一些知识,及遇到的一些技术问题。

  • 豆瓣及ONE的相关API的了解

  • Kotlin语言的使用及语法特性

  • MVP模式的特点及使用

  • Fresco的使用细节

  • okhttp的使用细节及简单封装

  • ZXing的接入以及在android中的使用

  • 代码混淆的简单了解及学习

  • SwipeRefreshLayout结合RecyclerView下拉刷新上拉加载

  • CoordinatorLayout + Behavior的简单学习与使用

  • ScrollView嵌套RecyclerView的使用及问题分析

五、总结

由于时间原因以及相关API数据的限制,有些实现上比较粗糙,同时存在一些潜在的bug,欢迎在Github上提issue。如果觉得不错,对你有帮助,希望多多fork,star。

Github地址:github.com/LRH1993/Sui…

可以通过扫描二维码,下载apk体验。