距离上一次写博客已经过去了三个多月。终于试用期转正了,所以也该来写写最近究竟在做些什么。

在做了三个月的前端工作后,把工具链,开发流程基本也算建立起来了。最近我开始转向一些 Android 方面的工作。

没错,我又拾起了了老本行,开始写 Android 代码了。其中原因,不外乎很简单,因为团队有需要,然后我可以解决这个需求,那么我就去解决这个问题。当然,这篇随记不是来写我为什么要去做 Android 这回事的,主要还是聊下最近重回 Android 后的一些想法。

关于MVVM

当我还在思考整个 App 的从何入手的时候,看到了这个链接 Data Binding Guide 当时我就好开心,因为之前写前端的时候用 Vue.js 非常的爽。我以为终于可以在 Android 上也很爽的用双向绑定来做开发了。可惜,现实是残酷的,我试用了一下之后感觉不太对,查了资料发现目前只是单向绑定,并且有些地方还是需要自己做一些处理,感觉上还不是那么成熟,便暂且放弃了。

不过还是找到一篇很不错的介绍文档,推荐给有兴趣的人看看:精通 Android Data Binding

好用的库,懒人的福音

我一直坚持认为,不要去重复的造轮子,其实 Android 的环境还是很不错的,有很多很棒的库,在对这些库进行调研和简单的实践后,选择了一些用,确实节省了不少时间。这里简单的列一列,想到什么说什么。

retrofit
okhttp

这两个主要就是网络和处理 Rest API 的请求,非常好用,这里有一点 Retrofit 我用了 2.0 的版本,文档有,但是文章很少,demo 很多都还是老版本,API 有一些变化,需要自己摸索下,不过好在 square 家的项目代码注释都很详细,实在不行就看下源码很容易就懂了。

picasso

这个也是 square 出的,本地,网络图片加载缓存等等,省了很多事。而且还带有很好的压缩剪裁图片的接口,可以根据分辨率去生成 Bitmap 节约内存。

EventBus

又是一个老项目,好有名了。为什么没选择 square 家的 otto 呢?这里有一篇 EventBus 王婆卖瓜的文章EventBus Comparison 不外乎是性能啊,功能啊,等等。我选 EventBus 主要原因还是写起来比较简单,代码好维护,仅此而已。

Realm
这个是 Sqlite 的替代品,基于对象的数据库,真心方便。不过数据库升级有坑,需要自己手动写一坨代码,但是比起它带来的方便,我忍了。

ViewInspector

这是一个调试工具,很方便,可以像 Chrome 的 Dev tool 一样去看应用的 View 层级,而且有非常详细的性能检测和渲染 Log 。截图如下:
截图

Butter Knife

神器,因为 MVVM 那条路没能成功,那么这货就不得不用上了,通过 Annotation 来自动绑定 XML 里面的 View ,代码可读性瞬间上升,不过由于 retrofit 也用到了 Annotation ,记得在 Gradle 里面加上这个

packagingOptions {
  exclude 'META-INF/services/javax.annotation.processing.Processor'
}

想到就那么多,先就写这些。这些库很多都是 Rain 哥推荐,非常感谢 Rain 哥在此对我的帮助。