English topic guide inspired by the original iOS Developer Notebook, expanded for both iOS and Android teams.
publisher
.debounce(for: .milliseconds(300), scheduler: RunLoop.main)
.removeDuplicates()
.flatMap(api.search)
.receive(on: RunLoop.main)
.sink(receiveCompletion: {_ in}, receiveValue: { self.results = $0 })
query
.debounce(300)
.distinctUntilChanged()
.flatMapLatest { api.search(it).asFlow() }
.onEach { results = it }
.launchIn(viewModelScope)