rxjava2
依赖和rxkotlin
依赖之间有什么区别。如果我使用rxkotlin
依赖项,我是否需要添加rxjava2
依赖项。
implementation 'io.reactivex.rxjava2:rxkotlin:x.y.z'
// do i need to add the below dependencies also?
implementation 'io.reactivex.rxjava2:rxjava:2.2.4'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
事情是RX代表Reactive Extensions,而Rx Java,Rx Kotlin或Rx Swift都是该特定语言的Reactive Extensions的实现。
什么是RxJAVA? RxJava是Reactive Extensions的Java VM实现。我们可以在任何线程上创建异步数据流,转换它,Observers可以在任何线程上使用这些异步数据流。
什么是RxKotlin? RxKotlin是Reactive Extensions的Kotlin实现。
什么是RxAndroid?它特定于Android平台,在RxJava之上添加了一些类。
有关更多详细信息,请访问我的rxjava简单示例https://github.com/myJarvis/Intro_to_RxJava的集合。
更进一步说明,RxKotlin有一些方便的扩展功能,与Kotlin一起提供。
您可以使用{RxJava&RxAndroid}或{RxKotlin}
你可以使用RxJava和Kotlin开箱即用
正如你在https://mvnrepository.com/artifact/io.reactivex.rxjava2/rxkotlin/2.3.0看到的那样,rxkotlin
依赖于rxjava
。因此除非您明确排除它,否则它会自动添加为transitive dependency。
不出所料,rxkotlin
不依赖于rxandroid
所以你需要添加它,如果你想使用它。 rxandroid
和rxkotlin
都使用相同的rxjava
类型,因此它们可以自由地互操作。
由于Kotlin与Java 100%可互操作,因此您可以毫无困难地在Kotlin项目中使用大多数Java库 - 而RxJava库也不例外。
有一个专用的RxKotlin library,它是常规RxJava库周围的Kotlin包装器。此包装器提供了针对Kotlin环境优化RxJava的扩展,并可进一步减少您需要编写的样板代码量。
如果您使用的是rxkotlin
,则只需添加以下行
implementation 'io.reactivex:rxkotlin:x.y.z'
如果你想使用rxjava2
,你需要包括其他依赖项,即
implementation 'io.reactivex.rxjava2:rxjava:2.2.4'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
但如果您使用Kotlin作为编程语言,我会建议您使用rxkotlin
更多细节参考this link