- 博客(159)
- 收藏
- 关注
原创 破解 Kotlin 协程(3) - 协程调度篇
破解 Kotlin 协程(3) - 协程调度篇关键词:Kotlin 异步编程 协程上一篇我们知道了协程启动的几种模式,也通过示例认识了 launch 启动协程的使用方法,本文将延续这些内容从调度的角度来进一步为大家揭示协程的奥义。1. 协程上下文调度器本质上就是一个协程上下文的实现,我们先来介绍下上下文。前面我们提到 launch 函数有三个参数,第一个参数叫 上下文,它的接口类型...
2019-06-13 09:22:28
1896
2
原创 当Kotlin邂逅设计模式之代理模式(二)
简述: 从这篇文章起,我们将继续Kotlin邂逅设计模式系列篇中的第二篇代理模式。代理模式可以说很多初级中级开发者迷惑的设计模式。但是它确实应用很广,不用多说大家非常熟悉的Retrofit框架,内部使用了动态代理设计模式,以注解的方式简化网络请求参数传递,从而实现更高解耦。然而在Kotlin中有天然支持的属性代理语法特性,可以简化Java中代理模式实现的模板代理。一、介绍代理模式(Proxy ...
2019-06-13 09:15:01
707
原创 破解 Kotlin 协程(8) - Android 篇
破解 Kotlin 协程(8) - Android 篇关键词:Kotlin 协程 Android AnkoAndroid 上面使用协程来替代回调或者 RxJava 实际上是一件非常轻松的事儿,我们甚至可以在更大的范围内结合 UI 的生命周期做控制协程的执行状态~本文涉及的 MainScope 以及 AutoDispose 源码:kotlin-coroutines-android1. 配...
2019-06-11 11:35:53
2935
原创 破解 Kotlin 协程(7) - 序列生成器篇
破解 Kotlin 协程(7) - 序列生成器篇关键词:Kotlin 协程 序列 Sequence说出来你可能不信,Kotlin 1.1 协程还在吃奶的时候,Sequence 就已经正式推出了,然而,Sequence 生成器的实现居然有协程的功劳。1. 认识 Sequence在 Kotlin 当中,Sequence 这个概念确切的说是“懒序列”,产生懒序列的方式可以有多种,下面我们介绍...
2019-06-11 11:34:46
1220
原创 Kotlin和Flutter,我全都要!
说到Android开发领域,现在最火的话题莫过于Kotlin和Flutter。从百度搜索指数也可以看到I/O大会之后,这两个关键词搜索热度直线上升。虽说Kotlin早已被...
2019-05-29 06:30:00
11269
7
原创 当Kotlin邂逅设计模式之单例模式(一)
简述: 从这篇文章开始,我将带领大家一起来探讨一下Kotlin眼中的设计模式。说下为什么想着要开始这么一个系列文章。主要基于下面几点原因:说下最终的目标吧,最终目标是有基础能力在分析的源码时候能够站在一个全局角度去思考,而不是一头扎入茫茫源码中无法自拔迷失自我。后面也会随即出一些有关源码分析的文章。所以请暂时先好好掌握这些基础的工具。一、介绍单例模式是开发者最为常见的一种设计...
2019-05-27 23:14:11
564
原创 新视频 破解 Retrofit
收看视频请直接点击“阅读原文”年初上了一门新课 《破解 Android 高级面试》,后来跟同学们讨论的时候,发现大家对于框架的深入剖析比较感兴趣,并且市场上目前没有特别好...
2019-05-14 08:03:03
496
原创 如何看待 Google 将 Kotlin 作为 Android 开发首选语言?
关键词:Android Kotlin Google Java如果你觉得天气热不舒服,那一定是享受过凉爽之后才会有的感觉。你没有意识到 Java 的问题,那正说明你应该试试...
2019-05-11 09:43:57
1396
原创 破解 Kotlin 协程(6) - 协程挂起篇
关键词:Kotlin 协程 协程挂起 任务挂起 suspend 非阻塞协程的挂起最初是一个很神秘的东西,因为我们总是用线程的概念去思考,所以我们只能想到阻塞。不阻塞的挂起到底是怎么回事呢?说出来你也许会笑~~(哭?。。抱歉这篇文章我实在是没办法写的更通俗易懂了,大家一定要亲手实践!)1. 先看看 delay我们刚刚学线程的时候,最常见的模拟各种延时用的就是 Thread.sleep...
2019-05-09 12:24:50
2177
原创 破解 Kotlin 协程(5) - 协程取消篇
关键词:Kotlin 协程 协程取消 任务停止协程的任务的取消需要靠协程内部调用的协作支持,这就类似于我们线程中断以及对中断状态的响应一样。1. 线程的中断我们先从大家熟悉的话题讲起。线程有一个被废弃的 stop 方法,这个方法会让线程立即死掉,并且释放它持有的锁,这样会让它正在读写的存储处于一个不安全的状态,因此 stop 被废弃了。如果我们启动了一个线程并让它执行一些任务,但很...
2019-04-30 15:31:48
4724
1
原创 破解 Kotlin 协程(4) - 异常处理篇
关键词:Kotlin 协程 异常处理异步代码的异常处理通常都比较让人头疼,而协程则再一次展现了它的威力。1. 引子我们在前面一篇文章当中提到了这样一个例子: typealias Callback = (User) -> Unit fun getUser(callback: Callback){ ... } 我们通...
2019-04-23 12:53:14
6134
3
原创 破解 Kotlin 协程(2) - 协程启动篇
破解 Kotlin 协程 - 入门篇现在你已经知道协程大概是怎么回事了,也应该想要自己尝试一把了吧。本文将为大家详细介绍协程的几种启动模式之间的不同,当然,我不打算现在就开始深入源码剖析原理,大家只需要记住这些规则就能很好的使用协程了。1. 回想一下刚学 Thread 的时候我相信现在接触 Kotlin 的开发者绝大多数都有 Java 基础,我们刚开始学习 Thread 的时候,一...
2019-04-08 07:30:00
2232
2
原创 一条生活馆招人啦
APP业务研发:任职要求:1. 参与公司相关 Android 客户端产品软件开发全过程(架构、实现、维护)。2. 熟练掌握 Android 应用层开发,熟悉 Kotlin...
2019-04-08 07:30:00
1293
原创 破解 Kotlin 协程 - 入门篇
假定你对协程(Coroutine)一点儿都不了解。 通过阅读本文看看是否能让你明白协程是怎么一回事。1. 引子我之前写过一些协程的文章,很久以前了。那会儿还是很痛苦的,毕竟 kotlinx.coroutines 这样强大的框架还在襁褓当中,于是乎我写的几篇协程的文章几乎就是在告诉大家如何写这样一个框架——那种感觉简直糟糕透了,因为没有几个人会有这样的需求。这次准备从协程用户(也...
2019-04-01 22:44:41
2156
5
原创 == 与 equals 居然结果不一样!
== 与 equals 意见不一致的情况Kotlin 当中 == 和 equals 是等价的,所以所有用 equals 的地方都可以用 == 来替换。一般情况下这种说法是...
2019-03-23 09:00:00
609
原创 基于 Node.js 环境的 KotlinJs 工程的完美搭建
为什么需要这样一篇文章我们知道 Kotlin 对 Jvm 的支持实在是太好了,以至于我们创建一个 Java 工程,配置一下 Kotlin 的编译插件和标准库就可以很轻松愉...
2019-03-11 09:00:00
1950
1
原创 Kotlin Suppress 的非常规用法
在 Java 中,有个叫 SuppressWarnings 的注解,用于忽略特定的编译器警告。Kotlin 中也有一个类似功能的注解,叫做 Suppress,本文主要讲讲...
2019-03-04 08:00:00
2322
原创 父类返回子类类型的函数写法
今天的话题很简单,分享下也许对大家可以有帮助或者有启发。1. 背景一看题目,有点儿晕。看个例子马上就明白了:abstract class EventBuilder() {...
2019-02-18 12:54:24
3308
原创 新年 Flag 以及论坛的一个所谓 "Kotlin 不完全兼容 Java" 的问题
0. 新年立个 Flag首先祝各位小伙伴在新的中国年里找到属于自己的奋斗方向,凝聚自己的奋斗方法,实现自己的奋斗目标。每年春节 0 点之后都喜欢随便做点儿自己喜欢的事情。...
2019-02-05 08:00:00
1919
1
原创 2018 JetBrains Beijing 演讲视频来啦(1~3)
感谢 JetBrains 组织了这样一场活动,当天参加活动的小伙伴们纷纷表示收获很大。那么错过这样的机会的小伙伴,也不用担心,官方已经把视频上传到腾讯视频,下面给大家列出...
2019-01-08 08:01:00
472
原创 2018 JetBrains Beijing 演讲视频来啦(4~6)
(续上篇)4.Ktor-Kotlin多平台异步Web框架实践-贾彦伟5.将Coroutine整合至Android 应用 - 钟辉6.mPaaS 借助 Intelli...
2019-01-08 08:01:00
170
原创 2018 JetBrains Beijing 演讲视频来啦(7~9)
(续上篇)7. IntelliJ IDEA 开发进阶 - Hadi8.Kotlin 随处开发 - Hadi下午:Web 开发专场9.简洁高效的 PHP 编程指南 -...
2019-01-08 08:01:00
181
原创 2018 JetBrains Beijing 演讲视频来啦(10~12)
(续上篇)10.JetBrains 的无痛 DevOps 解决方案 -范聖佑11.在真实世界中进行 Go性能优化 -Florin12.用TDD学习高效开发 ...
2019-01-08 08:01:00
196
原创 2018 JetBrains Beijing 演讲视频来啦(13)
(续上篇)13.JetBrains IDE 的使用秘笈讲 -Mikhail好,所有的视频都在这里了。再次感谢强大的 JetBrains。我是脑残粉我自豪~转载请注明出...
2019-01-08 08:01:00
162
原创 Kotlin 协程版的 AutoDispose
大家一定用过 RxJava,也一定知道用 RxJava 发了个任务,任务还没结束页面就被关闭了,如果任务迟迟不回来,页面就会被泄露;如果任务后面回来了,执行回调更新 UI...
2019-01-07 12:27:53
778
原创 Kotlin Native 写 Jni 第二弹:动态绑定 Native 方法
上一篇文章我讲了用 @CName 这个神奇的注解,可以配置 Kotlin Native 函数在符号表中的名字,进而根据 Jni 静态绑定的规则来对应到 Java nat...
2018-12-31 07:54:38
1831
原创 年末来碗毒鸡汤
年底,大家都在写鸡汤。然而,作为一个坚持写技术干货的人,写鸡汤,我不太擅长的。更何况还得投du。  ̄□ ̄||这篇文章就跟大家分享下这一年我的所见所想,不一定对你有...
2018-12-31 07:54:38
327
原创 用 Kotlin Native 写 Jni,以后写 Android 基本上要没有别的语言什么事儿了的节奏
我在之前写过一篇文章,讲如何用 Kotlin Native 编写 Native 代码通过 JNI 让 Java 调用。当时因为完全没有注意到 CName 这个神奇的东西的...
2018-12-17 08:00:00
2627
2
原创 也许你需要这个为数据类生成 DeepCopy 方法的库
前不久 JetBrains 在北京搞了一次技术大会,我在演讲当中提到了一个叫 DeepCopy 的库,那么我们今天就来详细说说它。我们有什么拷贝的需求?我们知道 Kotl...
2018-12-03 08:00:00
952
1
原创 ReleasableVar,可以为空的 Kotlin 非空类型 var
0. 题外话:Hadi 的插件上周的 JetBrains 开发者大会,Hadi 的两个插件比较亮眼,这里有小伙伴如果没有听到最后一场,可能不知道它们是啥,它们分别是:Ny...
2018-11-26 07:40:55
305
原创 Kotlin 1.3 网络研讨会
Kotlin 1.3 网络研讨会将在 12月5日、12日北京时间 23:00~次日00:30 举行,主要涉及的内容是 Coroutine、Native、Multiplat...
2018-11-26 07:40:55
158
原创 庆祝 Ktor 1.0 发布,分享 JetBrains 日讲稿及代码
本文转载自公众号:“灰蓝天际”,文中链接较多,可以到文章来源处(文章底部进入“灰蓝天际”公众号找到本文来源)点击“阅读原文”获取。非常值得庆祝的是,
2018-11-25 22:01:37
164
原创 Ktor 1.0 正式发布:JetBrains 出品的互联应用框架
Ktor 1.0 终于发布,官方博客也已经更新,中文博客光速跟进,所以大家可以不用再忍受英文来,直接点原文查看中文 Ktor 1.0 发布详情! ...
2018-11-20 12:00:00
183
原创 2018 JetBrains 开发者大会见闻
难得取了这么正经的一个题目,根本不是我的风格啊︿( ̄︶ ̄)︿。话说昨天去参加了一下 JetBrains 的开发者大会,因为我把钱都充点券买皮肤了,买不起门票( ̄. ̄),所...
2018-11-19 07:30:00
233
原创 1.3 发了,说两句关于 Kotlin SAM 的
1.3 RC 刚出来的时候,有人就不乐意了:说好的 Kotlin 的 SAM 呢?这个曾经存在于 1.3 的谣言当中的特性最终没有被加入到这个版本当中,群里有不少小伙伴表...
2018-11-12 07:35:00
693
原创 NoArg 插件的 invokeInitializers 配置
上周的时候 Kotlin 1.3 发布了,由于之前 RC 版本以及 KotlinConf 造势很多,所以正式版出来之后大家就改个版本号,把协程的 experimental...
2018-11-05 06:56:24
329
原创 When 表达式的参数可以声明变量啦
话说,之前我们如果有下面的情况:val value = calcValue()when(value){ is Int -> println("Value is...
2018-10-29 06:54:25
268
原创 重新审视 Kotlin 反射,我觉得可以合理使用
我之前每次跟别人分享 Kotlin 反射的时候,都会让大家小心点儿它,因为它一方面体积大,另一方面性能也差,不仅如此,还有一些小毛病,这些内容在我很久之前的一篇文章详细讨...
2018-10-22 07:17:46
984
原创 邀请您参加JetBrains开发者日-2018中国巡演
JetBrains开发者日-2018中国巡演敬邀您参加在2018年11月12日~17日的“JetBrains开发者日-2018中国巡演”活动,我们将为广大开发者带来实用的...
2018-10-19 08:00:00
212
原创 前面的注解处理器教程涉及到的 Tieguanyi 框架现在怎么样了?
前不久我录制了一套讲解注解处理器的视频,当中用到了一个叫 “Tieguanyin” 的框架的简化版,这篇文章主要介绍下完整版。项目是做什么的?我们遇到了怎样的问题我们先来...
2018-10-15 10:24:00
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人