SuperMvp
Introduction: MVP“美”图+新闻+天气预报+Material+Rx2+Retrofit2+Glide+leakcanary+butterknife
Tags:
MVP + RxJava3 + Retrofit + Glide + Material Design
简介
一款遵循Material Design风格的新闻,美图,天气查询应用
- 引入最新 android X,Rxjava3 等最新三方库
- Android 一些次新的技术的一个合集示例
- API 来自网络免费 API(感谢提供 api 的服务商)
- MVP 模式(使用 ViewDelegate 解耦,非常感谢kymjs提供的 mvp 思想,在他的基础上我有一些改动,希望能在这个应用上做个最佳实践)
- leakcanary 引入检测内存泄漏
- Retrofit2(+RxJava3)网络请求,使用 retrofit-url-manager 处理 baseURL 的切换问题
- Glide 加载缓存图片(瀑布流卡片显示)
- 使用 RecyclerView 展示新闻列表
其他项目
Kotlin+MVVM+LiveData+Coroutine 协程
版本
V0.9.1
- 升级 android X
- 升级 rxjava3(rxandroid3) rxlifecycle4 glide4 butterknife10 等
- 处理 baseURL 的切换问题
- 更换美图和新闻接口(免费的额度有限,提示资源不足代表当天调用次数达上限)
V0.9
- 美图接口更换啦,可以继续看了,找免费接口真是煞费苦心啊( ̄▽ ̄)~*
- 后期会对这个项目做一些优化,包括框架的修改和网络请求的二次封装,并且加入一些新的模块
V0.8.1
- 因为项目确实时间有点长了,美图的接口现在已经没有维护了,所以请求可能会没有数据,但是完全不影响整个项目的结构。
- 这里没有更新代码,主要是一句话说一说本项目的 MVP 跟其他普遍使用的 MVP 有何不同?
- 大部分 MVP:Activity 作为 View
- SuperMvp:Activity 作为 presenter,使用 ViewDelegate 来管理 View 层
V0.8
- 更新所有主要第三方库的版本(2018.2.12)
- sdk 版本升级为27 gradle3.1.0-beta1
V0.7
- 修改百度 API 为易源官方 API(仅修改了新闻)
- 修复“最新新闻”模块没有数据的问题
V0.6
- 解决美图 api 请求失败问题
- ╮(╯▽╰)╭续费“美图大全”,收费支持更多并发,嘿嘿,急需 star 来弥补金钱上的损失
V0.5
- 美图支持类型切换,“清纯”,“气质”,“萌女”,“校花”...(接口还有更多类型未用,喜欢的自己尝试一下)
V0.4
- 修改第二个 tab 为美图大全,瀑布流显示,“美图”看个够。。。
- 支持图片点击放大,双指缩放,旋转
- 抽取出一个公共的 recyclerview 代理类(grid,list 合二为一),并支持下拉刷新
V0.3
- 天气预报查询,弹窗提醒
- 修改新闻列表为 cardview 展示
- 支持新闻查看详情,CollapsingToolbarLayout + NestedScrollView
- 支持右滑返回
- 增加离线缓存机制(使用 Retrofit 和 Okhttp 实现网络缓存)
- 崩溃捕捉并写入本地文件(有存储卡写到存储卡,没有保存到内存),目录:/data/data/com.ly.supermvp/cache//Log/log.txt,基于此功能可以后期做一个友好的应用 crash 提示
V0.2
- 整体框架搭建完毕,新闻列表功能已经实现,各功能正常
- 下拉刷新与加载更多的解耦
截图
美图

新闻

天气预报

深受以下文章影响,感谢大神们的无私讲解
开源项目
RengwuxianRxjava
扔物线《给 Android 开发者的 RxJava 详解》文章中的例子
Github 地址:https://github.com/androidmalin/RengwuxianRxjava
SimpleNews
基于 Material Design 和 MVP 的新闻客户端
Github 地址:https://github.com/liuling07/SimpleNews
About me
引入的第三方库
squarup 出品,必属精品, 不用过多介绍
Rx 系列
其他热门
- Glide(Google 官方推荐图片加载库)
- Butter Knife(专注于控件的注解,Dagger 太全面)
- Logger(打印 log 现在可以好看多了,使用 so easy)
- Material(一系列 meterial 的控件,不过用起来有点差强人意,wiki 写得不是很全面)
- SwipeBackLayout(从未想过右滑返回可以做得这么简单,非常强大!)
- PhotoView(支持旋转的 photoview,不过没发现有设置单击图片的回调,直接设置 OnclickListener 不行,chrisbanes/PhotoView提供 onPhotoTapListener 是可以的)

