и Coroutine?
Кому что нравится. Flow дает больше манипуляций над данными, это считай Rx на котлине
LiveData не нужна в тех же репозиториях, а только мешает. Поэтому в вью моделях юзают лайвдату, а в репозиториях Flow, насколько я знаю
Почему тогда RxJava2 или RxJava3 не использовать?
почему, нельзя разве с помощью LiveData наблюдать над Room?
Потому что не хочу?
Через Flow тоже можно, если что
просто в лайв дате надо в Main поток постить, не хочется таким в репозитории заниматься)
Я могу ошибаться по молодости,но разве нельзя просто принимать данные из репо и хранить их в лайвдате во viewModel. То есть смысл во Flow в репо если его основная функция - вернуть данные для моей лайв даты во viewModel
Ты о чем? Есть же postValue
Кто будет возвращать из бизнес-слоя лайвдату?
https://medium.com/better-programming/no-more-livedata-in-repositories-in-kotlin-85f5a234a8fe лень объяснять
Если ты приверженец например Clean Architecture или тп то LiveData в репе не может быть тк это зависимость андройда, бизнес слой же должен быть без зависимостей платформы
Для этого есть Coroutine
Эм,а причем тут они?я в репозитории работаю с корутинами,там получаю с помощью них данные ,сохраняю и ТД. Далее я просто беру их и кладу в liveData во viewModel
Я задал вопрос: Для чего нужен Flow, если это можно решить с помощью LiveData и Coroutine
Потому что из репо не принято бросать лайв дату
Я могу корутинами выполнять запрос в сеть, при получении данных сохранять в database, а там изменения подхватятся через LiveData
А лайв дата во viewModule прикручена к изменениям в базе данных?
И загадить домэйн андроид-зависимостями. Ну и любые maр-reduce по умолчанию будут у лайвдат на главном потоке работать
В чем проблема сделать?
Никто меня пока не убедил, что Flow, это что-то новое. Тоже самое можно и на RxJava делать
Проблемы нет.это уточняющий вопрос
Тогда да
Не, я не пытаюсь это :) Я против livedata в домене
Ну делай на Rx, Flow более под котлин приспособлен и под корутины
А кому-то это надо?) Делай на чем хочешь
Я правильно понимаю, что flow тоже могёт в те самые "это как потоки, но только легче" - не так ресурсоёмко, как потоки внутри Rx?
ну под корутинами обычные тред пулы, не знаю как там в Rx)
А, хех, я думал, там что-то вроде виртуальных потоков, которые в жаву все грозятся занести. В Rx тоже тред пулы, на сколько я знаю
https://pastebin.com/H5kFH480 не вижу принципиальны отличий, все это можно сделать и через LiveData и Coroutine
liveData(Dispatchers.IO), не знал, что так можно
можно, зависимость implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
А так если нужен не зависимый от андроида код, то Flow, иначе можно и LiveData юзать
Flow, что в Kotlin входит? Даже для корутин нужна вроде зависимость
kotlinx.coroutines
независимость от андроида не мешает депендеси Flow юзать
Обсуждают сегодня