领券联盟
效果图
效果图在蓝湖上面
地址:lanhuapp.com 账号:lanhu@sunofbeaches.com 密码:lanhu123
api地址
需要准备的知识
android基础知识 p1~p9,详情请移驾到学院
功能
领券联盟,当然是领取优惠券滴
功能:
- 浏览商品
- 领取优惠券
- 搜索商品
- 网站商品扫码领券
目的
把前面学到的知识综合起来,运用到项目里,实现一个领取优惠券的项目。
知识
- 使用Retrofit+OkHttp进行网络请求
- 使用ButterKnife
- 二维码的扫描,生成
- MVP架构
- 处理网络请求的多种网络状态,把我们喜马拉雅里学的UILoader进行改造
- 多种方式实现导航栏
- 多种方式实现Indicator
- 轮播图
- RecyclerView的多种布局方式
- 常用的几种图片加载框架
- 刷新/加载更多(分页处理)
- 动态请求权限
- 粘贴板的使用
- 第三方应用的检查以及打开
使用到的框架
- 图片加载框架:Glide
- 网络请求框架:Retrofit、okhttp
- UI注入框架:ButterKnife
- 二维码框架:Zxing、RxTool
- 刷新/加载更多UI框架:tkrefreshlayout
- 导航和指示器:MaterialDesign
结构
基本结构,我们采用MVP的架构
大体上的一个依赖关系如上图所示。
UI依赖Presenter层,这样UI就可以调用一些presenter的方法了,比如说加载数据。而Presenter依赖UI的话则耦合度太高了,所以在Presenter与UI间通过接口通讯。则UI实现接口,Presenter调用接口方法,所以你还会看到这样的图:
mvp就这么简单。
对于一般的应用业务来说,已经够用了。如果对于常变的需求,其实还可以扩展一下,连Presenter跟Model也用接口进行通讯,如果业务变了,presenter层往上的代码不动,添加多一个modle去实现接口即可。
比如说以前我做蓝牙电话,为了考虑到公司可能会换方案,但是功能是不变的。所以我就要考虑到在底层做适配层,即使换一套硬件,换一个方案商我也可以很快地接入。同学们在编码以及工作过程中慢慢体会吧。需求是一直变更的,每一个程序员总能遇到那么几个没什么能力的产品经理的。
总结
Api文档有了,UI有了,没有需求文档和交互同学们就看已经上传的demo吧,大体的架构也定了,同学们可以去动手创建项目了,下一步我们继续去设计相关的类和接口。
源码地址
代码地址:
github:
https://github.com/TrillGates/TicketUnion
码云
https://gitee.com/sunofbeaches/TicketUnion