Baby

Project Url: rogerou/Baby
Introduction: 一个私密社交 APP,采用 Dagger2+Rxjava+LeanCloud+环信+MVP+Tinker 进行开发。
More: Author   ReportBugs   
Tags:

一个恋爱社交 APP

Dagger2 MVP Rxjava 入门练手项目。

version 1.6

  • 1.加入Tinker 热修复
  • 2.更新部分依赖
  • 3.修复大量细节问题,加入部分注释

version 1.5

  • 1.bug fix
  • 2.update sth

version 1.4

  • 1.增加长按删除功能
  • 2.优化 Rxbus 订阅加载数据
  • 3.外国友人优化的一些细节
  • 4.等等

version 1.3

  • 1.增加了评论功能
  • 2.优化了相册加载
  • 3.修复了一些内存泄漏
  • 4.等等

version 1.2

  • 1.修复了一些 Bug
  • 2.把登陆注册事件换了个 Zip 操作符更符合流的思想

version 1.1

  • 1.修复了主页背景无法切换的问题
  • 2.修复了聊天推送的问题
  • 3.修了语音视频的问题
  • 4.做了一些细节修改

Download

Features



  • 开屏页的登录和注册
  • 首页的 Moment
  • 相册页面
  • 编辑个人信息
  • 等等....

Development Environment & Library

MVP

这个项目是基于 MVP 框架写的(大体上,聊天那块直接用环信的了),大部分 Base 类参考FastAndroid里边的基类,参考这个很快就能布好基本的 MVP 架构。本来是有考虑过 MVVM 后来想想还是先学习一下 MVP 吧,看过几个 MVVM 项目感觉还是挺好用的,不过还是 BETA 版不知道有没有什么坑。

Material Design

早就手痒想体验一把 V7 包里边的各种控件了,特喜欢 coordinatorlayout 和 collapsingtoolbarlayout 的互动让 Tollbar 隐藏又现的感觉,但是看起来好看还是要点代价的,在这里捣鼓了不少时间,尤其是 collapsingtoolbarlayout 的 Expanded 固定让我 Google 了好久,因为用英文搜索可能我表达的不太好,最后竟然是一句 nestedScroll(false)就可以了。。。。 还是感谢 Stackoveflow 里边的大腿吧。

Dagger2

依赖注入Dagger2,也是我早就想用的一个框架了,理由是各种配合 Mvp 十分方便和好用,渐渐也能体会到一次注入到处可用的快感。不过一个新技术真的学习成本,国内没什么中文文档介绍,看国外的看的云里雾里。原理看的明白,用起来好像不太知道如何使用,尤其是在@inject 之后对象,也可以在别的地方 Inject,原本是被 Inject 方后来也成了 Module 提供方。虽然到最后原理还不是特别明白这里,但还是不阻碍用起来的快感。

Realm

一开始被新技术吸引到的是不会放过任何新东西的包括Realm,不过进了坑不代表这个坑可以跳阿。由于我这次用到了 leacncloud,Realm 感觉会和 LeanCloud 的子类化冲突让你只能选择其中之一,不过这个也算了,Leancloud 提供了类似 Map 的 Put 方法也可以接受就是麻烦了点。但是被坑到的地方是 Realm 所谓的自动数据同步竟然是一改就是改真实的数据,并不是数据的拷贝。。。感觉和我使用到要缓存的数据有点冲突,因为这个 Moment 里边的项是有点赞的,点赞要修改当前 Recycleview 的数据(修改数据要开事务)。修改数据后会出现一些很奇怪的现象,不在 Recycleview 当前 Item 会跳到当前 Item,点赞的动画也会消失。。。真的是想破脑袋也解决不了,就直接跳坑了。最后感觉这个 Realm 在保存不跟服务器需要同步的数据会好点。

LeanCloud

LeanCloud是因为在知乎太多吹它的人了而且它的确在 BAAS 这方面功能比较多(后来才发现即时通信没有语音和视频),所以就尝试使用了,SDK 整体来说是不错的都挺好用的,满足了我对存储方面的要求。不过就在我开发的这几天,貌似稳定性没有想象中那么好,好几次上传个头像都会 SocketTimeOut,查询也会有点慢,不过还好都在接受范围内(不过要是到了收费的标准我就接受不了)。

环信

其实环信在知乎黑的人真的很多,但是用起来却没有试过出过什么特别大的问题,在发送消息这块倒是挺稳定的,不稳定在语音和视频这块,不过这两个实时性这么强的服务对环境应该也苛刻,不过倒无大碍(毕竟免费)。集成块这方面真的环信做的不错,尤其是有了 EaseUi 这个包,基本上一天就能集成完毕。

Rxjava、RxAndroid

Rxjava我从第一眼看到了就喜欢上了(个人特喜欢那种通过.设置完成的感觉),接触也有几个月,一开始就和RetrofitOkhttp一起使用。学习成本还是要有的阿,看了不知道多少篇关于 Rxjava 使用的文章和例子,对里边的操作符也仅仅停留在那几个最常用的,其他一大堆好多都没用过,看来还用得不够。

Glide

Glide也是一个后来居上让我喜欢的图片加载库,一开始我喜欢picasso 是觉得轻巧而且好用有保证(主要是我偶像 Jake Wharton 主导,有加成),慢慢觉得 Picasso 对内存没有 Glide 来的友好,Glide 在加载速度方面也领先,虽然整个库代码量是 Picasso 的几倍,但是比起重要的内存和用户体验来说还是 Glide 的领先一筹。

Butterknife、Ucrop 等等

当让还有其他的一些润色的轮子啦,不过不是那么重要就不一一感谢啦。

Thanks

  • 感谢 Github、LeanCloud、环信、还有造那么多轮子给我们用的 Square FaceBook Google 的大大们。
  • Thanks for improving my code m-ezzat.

Contacts

  • Email:379489343zhi@gmail.com
  • QQ:379489343

License

Copyright 2016 Roger ou

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Android 开发经验分享
随手点击下面广告支持本站吧
 
Android 开发经验分享