Как стать автором
Обновить

Комментарии 13

Здравствуйте! Flows основаны на корутинах, и пока не очень понятно, как это всё можно использовать в проде — реальный опыт мало у кого есть, насколько мне известно. Если кто-то знает успешные примеры — поделитесь, пожалуйста. У нас же давно возникла потребность делать Reaktive, еще до того, как появились какие-то слухи о Flows. Мы не стали менять традиции, в Reaktive есть стандартные наборы источников и планировщиков. Планировщики кстати тоже можно заменять на моки в тестах.

С корутинами в проде все хорошо. Flow только-только появился и вообще еще в альфе, так что его действительно в проде не найдешь, впрочем, это относится и к Reaktive.


Никак не хочу преуменьшить качество и полезность Reaktive, просто привел реальную альтернативу, т.к. в статье упомянули только обертку над RxJava

скачал badoo/Reaktive и не нашел тестов и примерных приложений для десктопной явы. И даже в документации нет примеров. А так хотелось поиграться. С чего начать?
Здравствуйте! Тесты у нас в планах, проект ещё молодой. До релиза обязательно напишем. Пример для большой Java (на Kotlin, разумеется) добавим, спасибо за идею! Пока можно посмотреть пример Android приложения, там тоже JVM.

Есть ли в планах перевести MVICore на Reaktive и сделать его тоже мультиплатформенным?

Здравствуйте! Это очень хорошая идея и мы о ней, разумеется, думаем. Я не вижу каких-либо причин не перевести MVICore на Reaktive в будущем.
Здравствуйте! Project Reactor — это очень хороший проект. Но он нас не устраивает тем же, чем и RxJava — это Java-библиотека. У них было желание сделать её мультиплатформенной, но обсуждение недавно закрыли в пользу Kotlin Coroutines Flow.
Здравствуйте, а вы думали/используете ли как-то корутины под капотом? В том же дарте например местный rx тесто интегрирован с местными корутинами, что и зачастую удобнее с точки зрения кода (можно дождаться например какой-нить future внутри map функции, и для этого не нужны особые функции комбинаторы для разных вещей) и лучше с точки зрения перфоманса…
Здравствуйте! Как уже было упомянуто выше в комментариях, мы думали о корутинах. Но не используем. Причина в том, что на момент начала работы над Reaktive не было до конца понятно, как с их помощью можно реализовать холодные стримы. Недавно появилось превью Flows, но и по ним тоже есть вопросы. Классический подход на данный момент выглядит более привлекательным и надёжным.
Привет! Спасибо, что продвигаете kotlin и rx, я прям стал фанатом!
По статье, кажется, есть пара опечаток в примерах про nullable-типы в Reaktive. Поправьте меня пожалуйста, если ошибаюсь.

Например тут (явно две строчки идентичны):
val o3: Observable<String?> = merge(o1, o2) // ошибки нет
val o4: Observable<String?> = merge(o1, o2) // ошибка компиляции, несоответствие типов

и тут (кажется для o2 тип должен быть String):
val o1: Observable<String?> = observableOf(null)
val o2: Observable<String?> = o1 // ошибка компиляции, несоответствие типов
val o1: Observable<String?> = observableOf(null)
val o2: Observable<String?> = o1.notNull() // ошибки нет, значения null отфильтрованы
Привет! Опечатки и вёрстку исправили! Спасибо! Кстати, мы скоро добавим поддержку Linux и сразу после этого iOS!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий