kotlin出来的时间也不短了,相信很多猿哥猿姐们都已经入坑。
在使用了kotlin之后,尝试的使用了一下协程,之后就果断的抛弃了之前使用的rxjava+retrofit
这一套。之所以抛弃rxjava,是因为 协程+retrofit
会让代码更加的清晰简洁,它可以做到 以 同步
的方式写出 异步
的代码。
什么是协程:其实网上很多高大上的解释,看了之后反而更加迷糊了。其实协程我个人的理解,他就是一套线程切换的框架。
下面看一下代码片段:
override fun singlePoetry() {
mView?.showLoading()
mainScope.launch {
//网络请求
val singlePoetry = ApiServices.instance.singlePoetry().response()
//singlePoetry是网络请求的结果
if (singlePoetry != null) {
mView?.showResult(singlePoetry)
}
mView?.hideLoading()
}
}
这段代码
val singlePoetry = ApiServices.instance.singlePoetry().response()
是进行网络请求并返回请求结果。然后进行相应的业务逻辑处理。是不是特别清爽,没有之前做线程切换的迷之回调,也没有需要记忆rxjava各种操作符的烦恼。
当然这里也可以优化一下,使用kotlin的高阶函数,省判断null的逻辑。
这里我封装了一个kotlin + mvp + 协程 + retrofit的快速开发库,欢迎大家莅临现场 ,给小弟一个star,同时也希望大佬给出一些宝贵的建议。