title: 基于Material Design的Gank IO客户端
date: 2017-03-13 12:58:03
tags:
- Android
- Material Design
- RxJava
- Retrofit
- ButterKnife
- MVP
categories:
- Android
版权声明:本文为博主原创文章,未经博主允许不得转载。
微博:厉圣杰
源码:GankIO
文中如有纰漏,欢迎大家留言指出。
据说去年 RxJava + Retrofit 很火,但是自己一直没有接触,周末闲来无事,使用 MVP + RxJava + Retrofit + ButterKnife 写了一个简单的基于 GankIO 提供的 API 的 Material Design 的客户端。
先上个效果图:
简单说下项目架构,项目分为 core 和 app 两个 module。
core 是无业务逻辑无关的库,包含一些基类,如:BaseActivity
、BaseFragment
等,这里封装好了 ButterKnife ,使用注解真的可以极大的加快开发效率。
BaseImage
是临时封装 ImageView
和 Glide
的,封装的很差,待改进。
app 是基于 GankIO 的客户端,设计到具体的业务逻辑,其项目结构大致如下:
其中,modules
包下是客户端的界面,由于界面不多,所以没有细分,contract
是 MVP 模式的契约类,具体可以参考 Google 开源的 MVP 项目:android-architecture。presenter
包下则是 P 层的实现,只涉及业务、数据,不涉及 UI ,UI 的操作全部封装在 V 层。
如果对 MVP 模式不是很理解,可以切换到 master
分支,master
分支使用传统的 Android 架构开发。
存在的问题
- SwipeRefreshLayout 与 WebView 的滑动冲突
- ViewPager 的状态保存
项目写的比较匆忙,如有问题欢迎指出~