Комментарии 7
Хотелось бы увидеть более подробные пояснения, желательно ссылками на рабочий код (а, там уж мы и сами разберемся ). Хотелось бы увидеть код самого автора с примерами и реальной жизни.
В переводах всегда указывается ссылка на автора и его статью, мой перевод не исключение: https://bladecoder.medium.com/kotlins-flow-in-viewmodels-it-s-complicated-556b472e281a
Я имел ввиду примеры "живого кода ", ссылки на гитхаб. Желательно с Вашими комментариями. К сожалению статья получилась, как cut&paste of translate google.
Знаете, формат "Перевод" подразумевает такое (минимум переводческого вмешательства). Если вам есть что сказать - сообщество всегда радо этому, пишите статью! Если не нравится стиль перевода (cut&paste of translate google), тоже есть выход - переводите сами, лучше и качественнее, сообщество будет также радоваться новому интересному контенту.
В реалиях бана медиум. копипаст с переводом очень даже кстати
есть отличный пример от google
https://github.com/google/iosched
Насчет повторной отправки я не понимаю, в чем проблема. Есть каналы, которые отлично решают эту проблему:
class MyViewModel(repository: MyRepository) : ViewModel() {
private val trigger = Channel<String>(Channel.CONFLATED)
fun setQuery(query: String) {
trigger.trySend(query)
}
val results: Flow<SearchResult> = trigger
.receiveAsFlow()
.mapLatest { query -> repository.search(query)}
.stateIn(
scope = viewModelScope,
started = SharingStarted.WhileSubscribed(5000L),
initialValue = SearchResult.EMPTY
)
}
Android, Kotlin Flow во ViewModel — все сложно