基于Material-Design的Gank-IO客户端


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 的客户端。

先上个效果图:
gank

简单说下项目架构,项目分为 coreapp 两个 module。

屏幕快照 2017-03-13 上午8.31.45

core 是无业务逻辑无关的库,包含一些基类,如:BaseActivityBaseFragment等,这里封装好了 ButterKnife ,使用注解真的可以极大的加快开发效率。
BaseImage 是临时封装 ImageViewGlide 的,封装的很差,待改进。

app 是基于 GankIO 的客户端,设计到具体的业务逻辑,其项目结构大致如下:
屏幕快照 2017-03-13 上午8.35.39
其中,modules 包下是客户端的界面,由于界面不多,所以没有细分,contract 是 MVP 模式的契约类,具体可以参考 Google 开源的 MVP 项目:android-architecturepresenter 包下则是 P 层的实现,只涉及业务、数据,不涉及 UI ,UI 的操作全部封装在 V 层。

如果对 MVP 模式不是很理解,可以切换到 master 分支,master 分支使用传统的 Android 架构开发。

存在的问题

  1. SwipeRefreshLayout 与 WebView 的滑动冲突
  2. ViewPager 的状态保存

项目写的比较匆忙,如有问题欢迎指出~

posted @ 2017-03-14 12:13  登天路  阅读(459)  评论(0编辑  收藏  举报