MD版的花瓣网App

[复制链接]
来自: hellokenken 分类: Android精品源码 上传时间: 2017-5-19 14:06:18
Tag:

项目介绍:

MD版的花瓣网App

介绍

作为一个花瓣网用户实在受不了Android版的崩溃而且已经一年多没有更新。工作之余网络抓包和反编译,要自己写一个App,因为毕竟是别人的项目也不指望能上架,就直接开源放到github上,如果侵权请联系我及时删除。
源代码放在GitHub:项目地址
下面介绍目前的工作内容

更新记录

现在兼容包升级导致API-20以下Fresco使用异常,目前已经统一使用CompatUtils工具类,内部使用VectorDrawableCompat获取VectorDrawable资源,保证低版本的运行。

UI

Main Drawer

Image User

架构 这个项目在写在很久之前,当时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对象。

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

相关源码推荐:

我来说两句
所有评论(534)
Frank_z 2017-5-19 14:06:21
相当不错,感谢无私分享精神!
回复
subsoil 2017-5-19 14:06:25
mark,收藏了
回复
tylz 2017-5-19 14:06:27
感谢分享,安卓巴士有你更精彩:lol
回复
东西南北 2017-5-19 14:06:35
相当不错,感谢无私分享精神!
回复
柠檬lemon 2017-5-19 14:06:38
感谢分享,楼主V5~
回复
深思 2017-5-19 14:06:55
感谢大神~
回复
孙林 2017-5-19 14:10:45
学习学习!
回复
提取码:  下载次数:257 状态:已购或VIP 售价:10(原价:10)金钱 下载权限:初级码农 
7052 5 257
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿
帖子代码编辑/版权问题
QQ:435399051,1294855032
如何获得代码达人称号?
如何成为签约作者?
领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )