240 发简信
IP属地:上海
  • 极简信息管理工具-WorkFlowy,告别工具选择困难症,一站式搞定GTD+PKM

    核心理念 建立思维的秩序,减少思维的混乱度-精神熵: 一切皆大纲,实现结构化思考和渐进式写作:为什么说 Workflowy 重塑了我的知识管理 ...

    0.1 81 0 1
  • Resize,w 360,h 240
    极简耗时方法检测器

    原理 开启一个异步线程,每过一段时间(比如100ms)就去获取主线程的栈帧如果当前栈帧和上一个栈帧一样,就说明主线程阻塞了,就打印当前的栈帧 注...

  • kotlin DSL 简单示例

    案例场景 当接口的方法过多,而我们只需要其中一个方法时,例如TextView.addTextChangedListener,我们只需要它的onT...

  • 一个简单的响应式用例

    一个简单的响应式用例 背景 今天在重构网络库初始化的时候,发现每次用户cookie变化,都会重新初始化网络库 究其原因,是因为网络库的网络拦截器...

  • Flutter踩坑记录

    1.Flutter的UI开发【1+1+0.5=2.5】轮播图和自定义指示器【耗时1天】布局越界问题,布局的宽度高度无效等问题【耗时1天】Flut...

  • 异步任务的极简处理

    使用示例 实现机制:泛型方法+高阶函数 它有默认的错误处理,也可以自定义错误处理,默认的话,只是打印一下错误,可以自己重写errorHandle...

  • 使用拓展方法+内联函数,干掉模板代码

    使用拓展方法+内联函数前 使用拓展方法+内联函数后 实现原理 看上面的简化写法,你一定会有两个疑问: viewPager哪来的addListen...

  • 像对象一样操作SP

    像对象一样操作SP 一、使用示例 1.在PreferenceManager中添加需要存进SP的字段 2.存值 3.取值 二、原理 1.使用属性代...

  • 告别臃肿的Contract接口,kotlin实现极简MVP

    以前,我们参考google的官方示例实现MVP,需要定义一个Contract契约类,View和Presenter之间都通过契约类来进行通讯。 例...

个人介绍
全栈工程师,量化交易者,关注读书、徒步、效能,希望做一个生活记录家。