Android-MvvmComponent-App

Introduction: Android 组件化开源 app -开眼短视频(OpenEyes)
More: Author   ReportBugs   
Tags:

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

  • 这是一个完全模仿 开眼视频的开源 Demo,个人非常喜欢这款 app 的 UI 风格,由此第二次模仿该 app 进行相关技术的学习与整合,

  • 废话不多说,直接上图 ,不论是商业项目还是开源 app,首先肯定是看眼缘

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 组件为基本架构进行开发。

  • 项目结构图

app_12.png

  • app 架构图

app_os.png

app 功能介绍

当然由于是个人闲暇时间基于兴趣开发的,没有 UI 小姐姐 和测试小姐姐的陪伴,自然存在许些缺陷,当然写这个项目更多的是为了学习和锻炼 app 架构搭建的思维,希望能够帮到刷到这个博文的小伙伴,一起学习一起进步。

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

app 使用技术介绍

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

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

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

基本最主要使用的就是这些了 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. 评论

  2. 请求地址 :http://baobab.kaiyanapp.com/api/v2/replies/video?videoId=186856

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

apk 下载

安装密码:darryrzhong

项目地址

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

请赏个小红心!因为你的鼓励是我写作的最大动力!

更多精彩文章请关注

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools