遊戲/程序/更新/二次開發/小作品相關發佈
Aug 12
ItemDecoration是我们在使用RecyclerView的时候常常会提到的,惟一的可插拔的样式性的拓展。我们一般经常会下载一些现成的ItemDecoration来完成一些特定的功能,比如官方提供的DividerItemDecoration来实现RecyclerView的分割线,第三方的PinnedItemDecoration来完成item吸顶效果。

深究

通过类名我们就可以知道,使用它可以为item进行样式上的装饰,这么宽泛的概念,我们到底怎么使用它,或者说它究竟本设计出来做什么的比较好呢?
  
Aug 5
在上文中我们已经将RecyclerView拆分称为了数个基本结构,其中仔细观察的话,最重要且最复杂的部分就是dataSource和adapter的相互结耦和交互了。而这两个元素拆分来看,dataSource已经是功能完善的现成的对象了,可以取来直接使用,而adapter则需要复杂的绑定操作才能完成配置。因此,我们首要要进行封装的说简单点就是一个adapterBuilder了。
Jul 26
最近花费了两周的时间对RecyclerView进行了再解耦和结耦封装,以达到以更优雅的方式满足业务需求,并且能方便的应用到之后的业务中去。最终目标是对于不复杂的列表,可以在数行代码内搞定列表配置与数据绑定;对于较为复杂的列表,可以以非常清晰的代码完成工作。
Jul 6
在做比较复杂的界面交互的时候,不可避免的会遇到用户手势识别和处理。最简单的触控事件处理当然是对touch事件获得的MotionEvent对象进行记录与分析即可。当然,这种较为原始的方法并不适合复杂的交互处理,应该安卓sdk也提供了比较高级的手势(Gesture)处理机制。

1.GestureDetector

GestureDetector是最方便的处理手势的方式,创建它的时候需要实现一个listener,这是GestureDetector的核心处理接口。这个listener有两种,一种是:
Jun 17
反射是在初学java的过程中反复提及的概念与操作方式。浅显的理解反射的话,它是一组api,让你可以在程序运行时了解并获得程序内部结构,就像镜子一样,在镜子中看到程序自己本身。然后,动态的对程序本身进行修改与操作。当然,这种看起来另辟蹊径的程序运行方式一般来说并不推荐,适用场景往往出现在需要动态注入代码,调用非可见属性方法等需要高灵活性的使用场景中。那么在oc中,是否也有类似的功能呢?有过之而无不及,oc的runtime库就可以完全做到这些东西。
Jun 12
前几日为已经配置好cocoapods的项目配置单元测试,本来事前已经做好单测的准备工作,甚至单测的demo都写好了,一往项目中搭,却遇到了很多意外的问题,折腾了整整一天,特此记录。

1.一开始,什么也没做,就直接放入了准备好的单测程序,然后运行。当然,gg,编译不通过。仔细一看编译失败的原因,它告诉我是“Libraries not found”。原来如此,可以想想确实并没有通过pods把那么多第三方库引入嘛。好,那么参考这篇问答(http://stackoverflow.com/questions/14512792/libraries-not-found-when-using-cocoapods-with-ios-logic-tests,注意,这是本文最大的坑)的最佳答案,我把我们的podfile改成了其中推荐的形式即:
Jun 6
链式编程,形如instance.do1().do2().do3().dolast();大家都知道是怎么实现的,即每个实例方法的返回值均为this,以保障可以继续进行方法调用。这样的编程方式对比较连贯的操作中,能有效提升代码可读性,使用起来也非常舒服。在比较复杂的链式编程,比如rxjava,参数包涵lambda表达式或者其它复杂的运算的时候,我们为了代码的可读性,一般会对每个方法进行提行编写,比如下面这段java代码:

FPHttp.call()
.userInfo(String.valueOf(user.id), user.token)
.map(rider -> {
    rider.data.uid = user.id;
    RiderModel.getInstance().saveRider(rider.data);
    return rider.data;
})
.map(rider -> rider != null)
.distinctUntilChanged()
.subscribe(hasRider);
May 26
0.简介

代码静态分析从广义上讲,是指在不运行计算机程序的条件下,进行程序分析的方法。具体分析的包括语法错误,可能出现的程序错误,代码样式规范等内容。大部分的静态程序分析的对象是针对源代码的,也有些静态程序分析的对象是中间代码或者目标代码的,总之以不同的目的会有不同的需求。
对代码进行静态分析,主要目的还是通过这一种辅助手段,减少代码出错的可能性,提升代码间接性,可读性等多方面工程化性质,间接提升工程质量,降低开发成本。