wzyjojo的gravatar头像
wzyjojo 2016-07-14 11:07:27

安卓开发MD版的花瓣网App客户端

运行效果:

安卓开发MD版的花瓣网App客户端安卓开发MD版的花瓣网App客户端安卓开发MD版的花瓣网App客户端安卓开发MD版的花瓣网App客户端

使用说明:

项目代码结构

安卓开发MD版的花瓣网App客户端

架构

这个项目在写在很久之前,当时MVP架构网络上各种分析描述,但是感觉都是各说各的。不确定项目是否采用MVP架构就先动手写代码,随时准备重构项目。就在不久前Google发布Android Architecture Blueprints [beta] ,终于感觉这事有点靠谱了,我现在已经在动手重构项目了。 分析博文在这里:MVP架构-官方MVP项目和MVP-RxJava项目架构对比分析解读

目前的架构:

  • 基本思想是采用模板方法模式,父类控制代码结构,子类实现,部分具有相同功能的再提供父类实现。 例如BaseSwipeViewPagerActivity是所有具有上拉刷新SwipeRefreshLayout和左右滑动ViewPager的子Activity类的父类。BaseRecyclerHeadFragment是所有具有能够添加头尾View的RecyclerView的父类Fragment,内部主要实现向下滑动自动加载数据。

  • 每个Activity负责逻辑控制,其中会包含都会有一至多个Fragment负责UI显示,尽可能的不在Activity有网络操作

技术点

由于是个人项目所以全部采用目前最新的和最热门技术。

RxJava

很多基本的逻辑使用RxJava/RxAndroid来实现异步响应,简化了很多异步回调的代码。比如欢迎界面的实现,详解点这里RxAndroid项目实践-使用RxJava响应式编码实现知乎日报的欢迎界面

Retrofit

网络模块使用Retrofit,搭配RxJava实在是爽。 同时还很简洁的实现了Https的网络访问。功能强大。Retrofit整体框架主要采用代理模式,使得简化我们的网络调用操作,真正的内部还是采用OkHttp,这就导致实现下载上传进度监听会有点麻烦。目前也已经实现不会有内存泄露,具体参考看DownloadService.java后台服务单线程图片下载实现。

Fresco

图片加载框架使用的是Fresco,同样的功能强大,但是使用复杂。我包装了一个类ImageLoadFresco,采用生成器模式,配置很多的默认实现,同时能够实现复杂操作,具体代码和介绍Fresco的封装和使用说明以及获取缓存中的Bitmap对象

其他

其他方面,每个功能模块都会提供工具类或者包装类,分化代码使得相同功能代码能够重用,减少代码量。


打赏

文件名:huabanDemo.zip,文件大小:9562.763K 下载
最代码最近下载分享源代码列表最近下载
李亮  LV19 2023年4月6日
sks666  LV5 2023年2月19日
stdtta  LV8 2022年6月2日
萌了个乖乖  LV12 2022年5月22日
张恺祺  LV6 2022年5月21日
17岁的孩子想糖吃  LV7 2022年3月1日
宁海  LV2 2021年12月25日
cy2015  LV3 2021年6月19日
Flipped  LV2 2021年4月16日
quiyian  LV4 2021年2月26日
最代码最近浏览分享源代码列表最近浏览
guodongdong321 3月6日
暂无贡献等级
不止是六位数  LV7 2023年12月21日
苏拉德666  LV4 2023年12月17日
森sdfgf  LV8 2023年11月1日
wsgwly  LV5 2023年10月24日
Yanguu 2023年7月11日
暂无贡献等级
200171  LV9 2023年6月1日
杜宇林  LV2 2023年5月30日
倾城之恋1  LV5 2023年5月21日
123181531  LV1 2023年5月7日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友