Android 组件化开源app -开眼短视频(OpenEyes)

一款模仿 Eyepetizer | 开眼视频的 开源appandroid

  • 这是一个彻底模仿 开眼视频的开源Demo,我的很是喜欢这款app 的UI 风格,由此第二次模仿该app进行相关技术的学习与整合,git

  • 废话很少说,直接上图 ,不管是商业项目仍是开源app,首先确定是看眼缘github

效果图:

app_02.png
app_03.png
app_04.png
app_05.png
app_06.png
app_07.png
app_08.png
app_09.png
app_10.png

项目结构

该开源项目采用组件化的方式开发,使用MVVM + AndroidX + jetpack 组件为基本架构进行开发。segmentfault

  • 项目结构图

app_12.png

  • app 架构图

app_os.png

app 功能介绍

固然因为是我的闲暇时间基于兴趣开发的,没有UI 小姐姐 和测试小姐姐的陪伴,天然存在许些缺陷,固然写这个项目更多的是为了学习和锻炼app架构搭建的思惟,但愿可以帮到刷到这个博文的小伙伴,一块儿学习一块儿进步。api

功能方面,想了想以为仍是没啥好说的,就是UI 上显示的那样,相信在座的各位看官都是熟的不能再熟了,网络

app 使用技术介绍

  • Mvvm 架构设计 关于各类mvx 的区别,我就不一一介绍了,上Google 搜一下就好,关于项目中使用的mvvm设计封装,请移步 这里 ;代码是最好的老师,直接看源码吧。架构

  • Android X 这个也没啥好说的,就是android Support 库的升级迁移版而已,如今新项目确定都是直接androidX了,对Android X 不熟悉的小伙伴,请移步 官方介绍app

  • jetpack 这个也没啥好说的,jetpack就是Google推出的一套组件开发库,直接上图可能更好, 官方介绍框架

基本最主要使用的就是这些了 mvvm

jetpack

app 第三方的依赖

  • RxEasyHttp RxEasyHttp是一款github上开源的RxJava2+Retrofit2实现简单易用的网络请求框架,在本人发现并观摩其源码和设计原理后,发现着实写的不错,各类业务场景基本都设计到了,api 设计的也不错,固然也存在一些瑕疵,因此实际项目中还需根据本身的业务需求进行二次开发,推荐给各位看官RxEasyHttp

  • Loadsir loadsir是一个app 页面状态管理的第三方库,也很是得实用,用来控制app 内的加载页面 、加载错误页面、空页面显示,点击重试等,今后告别本身控制网络加载失败等页面 show 、 hint 操做 和ViewStub等的控制, 能够基于本身的业务进行基类封装,具体请看项目base库中activity 和fragment 基类的封装。推荐给各位看官 Loadsir

  • mmkv mmkv 是腾讯开源的一个轻量级的存储库,用来代替SharedPreferences 再好不过了,具体使用请看官方介绍

  • BaseRecyclerViewAdapterHelper 相信对于这个库你们应该是很是熟悉了吧,基本作android 开发的都用过吧,很少说了

  • SmartRefreshLayout 这个库和上面那个库同样,用的很是多,

  • immersionbar 实现沉浸式状态栏的一个第三方库,也是很是经常使用

  • glide 图片加载库

  • rxpermissions 权限加载库

  • logger 日志打印库,打出来的日志格式看得比较舒服

  • utilcodex 一个android 工具库,里面有很是多的工具类,固然实际项目用不到这么多,因此能够根据需求copy代码就好,不用集成

  • BannerViewPager 一个第三方轮播图的库,这个库比较新,因此start数比较少,可是挺好用,推荐

  • PagerBottomTabStrip 一个第三方导航库,app中的底部导航就是基于这个库,挺好用,自带小红点管理

  • gsyVideoPlayer 一个第三方视频播放库,基于bilibili 开源的 ijkplayer,可自定义性也还不错, 主要使用这个库实现相似微博等视频列表根据滚动判断自动播放,

项目Api

声明 ,项目中全部api接口都是抓取自开眼app,全部版权均归属开眼app全部,仅供学习借鉴使用,请勿用作商业用途,如有侵权,请联系做者删除。

首页

1.发现更多

2.每日推荐

3.日报精选

社区

1.推荐

2.关注

通知

1.主题

2.通知

3.互动

视频详情页

1.相关推荐

参数说明 说明 是否必须 默认值
id 当前播放视频的id,从跳转页面视频item中获取
  1. 评论
参数说明 说明 是否必须 默认值
videoId 当前播放视频的id,从跳转页面视频item中获取

aok下载

安装密码:darryrzhong

项目地址

欢迎关注做者darryrzhong,更多干货等你来拿哟.

请赏个小红心!由于你的鼓励是我写做的最大动力!

更多精彩文章请关注

相关文章
相关标签/搜索