В чем разница между rxjava2 и rxkotlin? - PullRequest
4 голосов
/ 12 апреля 2019

В чем разница между 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'

Ответы [ 3 ]

5 голосов
/ 12 апреля 2019

дело в том, что RX обозначает Reactive Extensions, а Rx Java, Rx Kotlin или Rx Swift все являются реализацией Reactive Расширения на этом конкретном языке.

Что такое RxJAVA? RxJava - это реализация Reactive Extensions на Java VM. где мы можем создать асинхронный поток данных в любом потоке, преобразовать его, и эти асинхронные потоки данных могут использоваться наблюдателями в любом потоке.

Что такое RxKotlin? RxKotlin - это реализация реактивных расширений Kotlin.

Что такое RxAndroid? Он специфичен для платформы Android с некоторыми добавленными классами поверх RxJava.

для получения более подробной информации посетите мою коллекцию простых примеров rxjava https://github.com/myJarvis/Intro_to_RxJava.

и, что еще более важно, RxKotlin имеет несколько удобных функций расширения, которые поставляются вместе с Kotlin.

Вы можете использовать {RxJava & RxAndroid} или {RxKotlin}

Вы можете использовать RxJava с Kotlin из коробки

3 голосов
/ 12 апреля 2019

Как вы можете видеть на https://mvnrepository.com/artifact/io.reactivex.rxjava2/rxkotlin/2.3.0, rxkotlin зависит от rxjava. Так что он автоматически добавляется как транзитивная зависимость , если вы специально не исключаете его.

Неудивительно, что rxkotlin не не зависит от rxandroid, поэтому вам нужно добавить его, если вы хотите его использовать. И rxandroid, и rxkotlin используют одинаковые типы rxjava, поэтому они могут свободно взаимодействовать.

2 голосов
/ 12 апреля 2019

Поскольку Kotlin на 100% совместим с Java, вы можете без проблем использовать большинство библиотек Java в своих проектах Kotlin - и библиотека RxJava не является исключением.

Существует выделенная библиотека RxKotlin , который является оболочкой Kotlin для обычной библиотеки RxJava.Эта оболочка предоставляет расширения, которые оптимизируют RxJava для среды Kotlin и могут еще больше уменьшить количество шаблонного кода, который вам нужно написать.

Если вы используете 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

Подробнее см. эту ссылку

...