Все улучшения к сожалению выглядят как дикие костыли. Развели зоопарк flow, stateFlow, sharedFlow, chanel попытались ими что то решить,вышло так себе ,написали еще костылей. Все это работает с оговорками и задач своих не выполняет. Ощущение что концепция "поплыла". Что касается формата, может для более легкой темы он бы зашел, в этой кмк надо наоборот сильно все структурировать. Но в качестве просто обратить внимание на проблемы то вполне. За вынесенные ссылочки спасибо!
Там общение между начальным контекстом и тем на который переключились идёт через канал с дефолтным размером буфера. Соответственно, появляется буфер. Вот кусочек из доки: "if changing dispatcher is required, it collects flow emissions in one coroutine that is run using a specified context and emits them from another coroutines with the original collector's context using a channel with a default buffer size between two coroutines similarly to buffer operator, unless buffer operator is explicitly called before or after flowOn, which requests buffering behavior and specifies channel size."
Хорошие гайды, ждём новый части)
Все улучшения к сожалению выглядят как дикие костыли. Развели зоопарк flow, stateFlow, sharedFlow, chanel попытались ими что то решить,вышло так себе ,написали еще костылей. Все это работает с оговорками и задач своих не выполняет. Ощущение что концепция "поплыла". Что касается формата, может для более легкой темы он бы зашел, в этой кмк надо наоборот сильно все структурировать. Но в качестве просто обратить внимание на проблемы то вполне. За вынесенные ссылочки спасибо!
flowOn не создаёт буффер, он меняет контекст выполнения.
Там общение между начальным контекстом и тем на который переключились идёт через канал с дефолтным размером буфера. Соответственно, появляется буфер.
Вот кусочек из доки:
"if changing dispatcher is required, it collects flow emissions in one coroutine that is run using a specified context and emits them from another coroutines with the original collector's context using a channel with a default buffer size between two coroutines similarly to buffer operator, unless buffer operator is explicitly called before or after flowOn, which requests buffering behavior and specifies channel size."