Kotlin
unicorn97
不积跬步,无以至千里
展开
-
Kotlin协程和在Android中的使用总结(三 将回调和RxJava调用改写成挂起函数)
本文主要介绍以下,对于现有项目中的接口回调逻辑,和Rxjava中的订阅逻辑代码,修改成suspend挂起函数的形式。文章目录1 接口回调的改写(1)使用suspendCoroutine(2)使用suspendCancellableCoroutine2 RxJava的订阅回调转换成挂起函数总结:1 接口回调的改写一般接口回调的场景,我们都可以改成挂起函数的形式,比如网络接口的成功与失败的回调...原创 2020-03-28 17:21:49 · 3434 阅读 · 1 评论 -
Kotlin协程和在Android中的使用总结(一 基础知识)
1 在Android中引入协程implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2’implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2’implementation “org.jetbrains.kotlinx:kot...原创 2020-03-27 23:27:52 · 1237 阅读 · 0 评论 -
Kotlin协程和在Android中的使用总结(二 和Jetpack架构组件一起使用)
官网:https://www.kotlincn.net/docs/reference/coroutines/coroutines-guide.html一 协程的使用1. Android中引入implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3’...原创 2020-03-27 18:39:40 · 1215 阅读 · 0 评论 -
Kotlin协程和在Android中的使用总结(七 一些使用协程的三方库)
文章目录1 依赖注入[Kodin](https://github.com/Kodein-Framework/Kodein-DI)2 图片加载框架 [Coil](https://github.com/coil-kt/coil/)3 权限申请4 网络请求5 数据库6 更多1 依赖注入Kodin实际上这部分跟协程没有什么关系,只是觉得这篇文章主要介绍一些Kotlin的三方库,所以将其纳入。如果...原创 2020-04-01 17:04:22 · 1699 阅读 · 0 评论 -
Kotlin协程和在Android中的使用总结(六 通道Channel)
ChannelDeferred对象提供了一种在协程间传递值的简便方式,Channel就是用于在协程间传递一个stream的值流。Channel有点类似于BlockingQueue,不同的是,BlockingQueue的put 和take 操作都是阻塞式的,而Channel的send和receive都是可挂起的非阻塞式。fun main() = runBlocking { val ch...原创 2020-03-31 22:19:04 · 2647 阅读 · 0 评论 -
Kotlin协程和在Android中的使用总结(五 Collection、Sequence、Flow与RxJava对比(下))
文章目录flow的扁平化flatMapConcatflatMapMergeflatMapLatestFlow exceptions使用try-catch捕获collector的异常flow中的任何异常都可以被捕获Exception transparencyFlow completionLaunching flowFlow and Reactive Streamsflow的扁平化假设现在有这样...原创 2020-03-31 11:22:32 · 2434 阅读 · 0 评论 -
Kotlin协程和在Android中的使用总结(五 Collection、Sequence、Flow与RxJava对比(上))
0 Collection和Sequence在Kotlin中表示多个值时,我们会使用集合Collection和序列Sequence来表示,现在说一下这两者的区别和使用注意事项。首选这两者的调用都会阻塞当前的线程。如果是在主线程调用,那就会阻塞主线程,可能会引起卡顿。关于Sequence操作符的一些基础知识点,中间操作符intermediate operator和末端操作符terminal o...原创 2020-03-30 21:54:01 · 1180 阅读 · 0 评论 -
Kotlin协程和在Android中的使用总结(四 协程和Retrofit、Room、WorkManager结合使用)
文章目录0 设计一个全新Android app架构的思考1 Coroutines in Room & Retrofit2 在高阶函数中使用协程3 将协程和WorkManager结合使用4 关于协程取消和超时的处理Timeout超时控制5 关于测试用例的编写0 设计一个全新Android app架构的思考以前有看到过这样的一些文章,如果让你重新设计一个app,你会用什么架构,用哪些三方...原创 2020-03-29 17:51:50 · 2430 阅读 · 2 评论 -
用Kotlin封装一个自定义SpannableString
参考自:https://github.com/jaychang0917/SimpleText使用Kotlin进行了改写,保留了大部分功能,现不支持点击时的文字颜色和背景色(感觉用到的场景不多,所以就没加)Github上有更详细介绍 :https://github.com/chenyucheng97/SpannableStringBuilder欢迎star原创 2018-11-05 22:13:25 · 1906 阅读 · 0 评论 -
用Kotlin封装一个Android中View的BackgroundDrawableBuilder
参考自:https://github.com/jaychang0917/SimpleText 一个自定义的TextView,对background的设置进行了简单封装。同时包含了一个ShapeBuilder,可以用于设置给所有View添加背景简化View的background创建,支持在xml和代码中设置backgroundDrawable, 代码中支持链式调用,或者DSL创建支持在...原创 2018-11-07 20:40:12 · 946 阅读 · 0 评论 -
KTX 和 Kotlin android extension 都到底是个啥?
1. KTX是什么 Android官网对于KTX的介绍:https://developer.android.com/kotlin/ktxKTX 是被称为Android之光的 JakeWharton 写的,GitHub地址:https://github.com/android/android-ktx/A set of Kotlin extensions for Android app...原创 2018-10-30 16:51:43 · 2189 阅读 · 0 评论 -
Kotlin系列之let、with、run、apply、also函数的使用
转载自:https://blog.csdn.net/u013064109/article/details/78786646 标签: Kotlin      常用技巧 目录:一、回调函数的Kotin的lambda的简化二、内联扩展函数之let三、内联函数之with四、内联扩展函数之run五、内联扩展...转载 2018-08-31 00:36:58 · 290 阅读 · 0 评论 -
Kotlin学习资源汇总
有关Kotlin的好文已经越来越多,初学者实在没有必要去自己写一些文档,但是文档的搜集和分类还是要做,所以就有了本篇博客 本文不再更新,最新更新在 GitHub:https://github.com/chenyucheng97/Kotlin-Index欢迎大家star 在学习Kotlin语言的过程中,发现了很多不错的学习资源,包括基本语法、一些惯例或者好的用法、RxKot...原创 2018-08-27 18:13:55 · 566 阅读 · 0 评论 -
Kotlin笔记2-操作符和扩展方法
1. kotlin的操作符可以重载,在方法前面加 operator 关键字,如下面的重载 + 运算符data class Counter(var index: Int)operator fun Counter.plus(increment: Int): Counter { return Counter(index + increment)}fun main(args: A...原创 2018-07-30 23:16:46 · 290 阅读 · 0 评论 -
Kotlin笔记6-Object Expressions and Declarations 对象表达式和声明
目录 1. Object Expressions 对象表达式2. Object declarations--Kotlin中的单例模式3. Companion Objects 伴生对象1. Object Expressions 对象表达式在Java中,有时候需创建一个已有的类的对象,但是需要对该类做一点修改,又不希望明确定义一个子类,这时可以使用匿名内部类,形式如下:n...原创 2018-08-04 21:20:08 · 222 阅读 · 0 评论 -
Kotlin笔记9-Inline functions 内联函数 和 noinline crossinline修饰符
目录一、 Inline functions二、noinline三、Non-local returns四、Reified type parameters 具体参数类型五、内联属性 Inline properties (since 1.1)一、 Inline functions参考官网对于Inline functions的介绍:http://kotlinlang.org/...原创 2018-08-09 20:23:01 · 771 阅读 · 0 评论 -
Kotlin笔记3-类、属性(成员变量)和接口
目录一、 类1. 类的定义2. 类的构造函数3. 类的继承和方法、属性的复写4. Interfaces接口一、 类1. 类的定义通常如下所示:class Invoice { ... }可以省略参数和函数体,最简单形式如 : class Empty 但是目前还不知道这样定义的类有什么应用场景。2. 类的构造函数其中主构造函数primary c...原创 2018-08-02 20:09:54 · 1383 阅读 · 0 评论 -
Kotlin笔记7-Delegation 和 Delegated Properties
一、Delegation 类的代理代理模式被证明是实现继承的一个很好替代方案,代理模式使得我们可以用聚合来替代继承,将代理和真实实现分离开来,以达成解耦的目的。Kotlin对代理模式内置支持,且零模版代码化。下面代码中代理类Derived通过实现Base接口,把其所有public的成员代理给一个指定的对象binterface Base { fun print()}cla...原创 2018-08-05 18:14:51 · 465 阅读 · 0 评论 -
Kotlin笔记8-Higher-Order Functions and Lambdas 高阶函数和Lambda表达式
目录1. Higher-Order Functions 高阶函数2. function types 函数式类型3. 实例化函数式类型 Instantiating a function type4. 调用一个函数类型变量 Invoking a function type instance5. Lambdas表达式和匿名函数Anonymous Functions(1)Lambd...原创 2018-08-06 10:17:51 · 597 阅读 · 0 评论 -
Kotlin笔记10- Destructuring Declarations 解构声明
参考官网对于解构声明的介绍:http://kotlinlang.org/docs/reference/multi-declarations.html 借助于解构声明的语法,可以很方便的将一个对象解构成几个变量,比如:val (name, age) = personprintln(name)println(age)解构声明会创建相应个数的变量,编译为以下代码:val na...原创 2018-08-11 15:39:28 · 363 阅读 · 0 评论 -
Kotlin笔记5-Data Classes数据类、Sealed Classes密封类、Nested Classes嵌套类、Enum Classes枚举类
目录1. Data Classes数据类(1) copy()函数(2) 数据类的解构(3) 标准数据类 Pair 和 Triple2. Sealed Classes密封类3. Nested Classes嵌套类4. Enum Classes枚举类1. Data Classes数据类数据类的作用主要就是用来存储数据。在class类名前用data修饰符data...原创 2018-08-04 17:40:37 · 866 阅读 · 0 评论 -
Kotlin笔记11-类型检查和转换'is' and 'as'
在运行时可以通过 is 和 !is 来检测一对象的类型。智能的类型转换 Smart Casts在很多情况下,我们不需要在kotlin中显示地使用类型转换操作,因为编译器会追踪 is 检查和显示的类型转换,并会自动为不可变类型的值进行类型转换,如:fun demo(x: Any) { if (x is String) { print(x.length) // x...原创 2018-08-18 18:14:16 · 888 阅读 · 0 评论 -
Kotlin笔记4-可见性修饰符和扩展函数
参考自官网介绍:http://kotlinlang.org/docs/reference/extensions.html 1. Visibility Modifiers 可见性修饰符可见性修饰符有四种:private, protected, internal and public,默认是public可以用于修饰类、伴生对象object、接口、构造函数、一般函数、属性和其setter...原创 2018-08-03 17:58:10 · 342 阅读 · 0 评论 -
Kotlin笔记12-Java和Kotlin中的范型对比(一)
Kotlin中的范型和Java中的比较相似,可以参考我的关于介绍Java范型的文章 :Java范型那些事(一)Java范型那些事(二)Java范型那些事(三)Java范型那些事(四)在上述博文中,讲述了为什么Java要在1.5版本中引入范型,以及一些有关Java范型的基本知识点。如果把一个对象分为声明、使用两部分的话。泛型主要是侧重于类型的声明的代码复用,通配符则侧重于使用...原创 2018-08-30 14:24:54 · 553 阅读 · 0 评论 -
Kotlin笔记1-变量和流程控制
历史:2011年7月,JetBrains推出Kotlin项目 2016年2月15日,Kotlin V1.0发布 2017年 Google I/O大会,Kotlin成功官方Android开发语言。建议学习网站:kotlin中文网: https://www.kotlincn.net/ 官网: http://kotlinlang.org/ 官方在GitHub上的文档说明:https://gi...原创 2018-07-22 23:47:12 · 228 阅读 · 0 评论