一个Android恋爱社交APP采用Dagger2 + Rxjava + LeanCloud +环信+ MVP +工匠进行开发。
Dagger2 MVP Rxjava入门练手项目。
版本1.6
- 1.加入廷克热修复
- 2.更新部分依赖
- 3.修复大量细节问题,加入部分注释
版本1.5
- 1.bug修复
- 更新
版本1.4
- 1.增加长按删除功能
- 2.优化Rxbus订阅加载数据
- 3.外国友人优化的一些细节
- 4.等等
版本1.3
- 1.增加了评论功能
- 2.优化了相册加载
- 3.修复了一些内存泄漏
- 4.等等
版本1.2
- 1.修复了一些错误
- 2.把登陆注册事件换了个邮编操作符更符合流的思想
版本1.1
- 1.修复了主页背景无法切换的问题
- 2.修复了聊天推送的问题
- 3.修了语音视频的问题
- 4.做了一些细节修改
下载
- http://fir.im/b9u8
特征
- 开屏页的登录和注册
- 首页的瞬间
- 相册页面
- 编辑个人信息
- 等等....
开发环境和图书馆
MVP
这个项目是基于MVP框架写的(大体上,聊天那块直接用环信的了),大部分基础类参考FastAndroid里边的基类,参考这个很快就能布好基本的MVP架构。本来是有考虑过MVVM后来想想还是先学习一下MVP吧,看过几个MVVM项目感觉还是挺好用的,不过还是BETA版不知道有没有什么坑。
材料设计
早就手痒想体验一把V7包里边的各种控件了,特喜欢coordinatorlayout和collapsingtoolbarlayout的互动让Tollbar隐藏又现的感觉,但是看起来好看还是要点代价的,在这里捣鼓了不少时间,尤其是collapsingtoolbarlayout的Expanded固定让我Google了好久,因为用英文搜索可能我表达的不太好,最后竟然是一句nestedScroll(false)就可以了....还是感谢Stackoveflow里边的大腿吧。
Dagger2
依赖注入Dagger2,也是我早就想用的一个框架了,理由是各种配合Mvp十分方便和好用,渐渐也能体会到一次注入到处可用的快感。不过一个新技术真的学习成本,国内没什么中文文档介绍,看国外的看的云里雾里。原理看的明白,用起来好像不太知道如何使用,尤其是在@注入之后对象,也可以在别的地方进样,原本是被进样方后来也成了模块提供方。虽然到最后原理还不是特别明白这里,但还是不阻碍用起来的快感。
领域
一开始被新技术吸引到的是不会放过任何新东西的包括Realm,不过进了坑不代表这个坑可以跳阿。由于我这次用到了leacncloud,Realm感觉会和LeanCloud的子类化冲突让你只能选择其中之一,不过这个也算了,Leancloud提供了类似地图的放置方法也可以接受就是麻烦了点。但是被坑到的地方是领域所谓的自动数据同步竟然是一改就是改真实的数据,并不是数据的拷贝......感觉和我使用到要缓存的数据有点冲突,因为这个时刻里边的项是有点赞的,点赞要修改当前Recycleview的数据(修改数据要开事务) 。修改数据后会出现一些很奇怪的现象,不在Recycleview当前项目会跳到当前项目,点赞的动画也会消失......真的是想破脑袋也解决不了,就直接跳坑了。最后感觉这个领域在保存不跟服务器需要同步的数据会好点。
LeanCloud
用LeanCloud是因为在知乎太多吹它的人了而且它的确在BAAS这方面功能比较多(后来才发现即时通信没有语音和视频),所以就尝试使用了,SDK整体来说是不错的都挺好用的,满足了我对存储方面的要求。不过就在我开发的这几天,貌似稳定性没有想象中那么好,好几次上传个头像都会了socketTimeout,查询也会有点慢,不过还好都在接受范围内(不过要是到了收费的标准我就接受不了)。
环信
其实环信在知乎黑的人真的很多最,但是用起来却没有试过出过什么特别大的问题,在发送消息这块倒是挺稳定的,不稳定在语音和视频这块,不过这两个实时性这么强的服务对环境应该也苛刻,不过倒无大碍(毕竟免费)。集成块这方面真的环信做的不错,尤其是有了EaseUi这个包,基本上一天就能集成完毕。
Rxjava,RxAndroid
Rxjava我从第一眼看到了就喜欢上了(个人特喜欢那种通过。设置完成的感觉),接触也有几个月,一开始就和Retrofit,Okhttp一起使用。学习成本还是要有的阿,看了不知道多少篇关于Rxjava使用的文章和例子,对里边的操作符也仅仅停留在那几个最常用的,其他一大堆好多都没用过,看来还用得不够。
滑行
Glide也是一个后来居上让我喜欢的图片加载库,一开始我喜欢picasso是觉得轻巧而且好用有保证(主要是我偶像Jake Wharton主导,有加成),慢慢觉得Picasso对内存没有Glide来的友好,滑翔在加载速度方面也领先,虽然整个库代码量是毕加索的几倍,但是比起重要的内存和用户体验来说还是滑翔的领先一筹。
Butterknife,Ucrop等等
当让还有其他的一些润色的轮子啦,不过不是那么重要就不一一感谢啦。
资源均来自第三方,谨慎下载,前往第三方网站下载