CodeBlanks Logo Icon CodeBlanks

debounce ve conflate

debounce ve conflate ile akış kontrolü öğrenirsin.

debounce ve conflate

debounce, bir akışta hızlı art arda gelen değerleri sıkıştırır. Bir değer geldikten sonra belirli süre boyunca yeni değer gelmezse o değer yayınlanır; gelirse eski değer atılır.

conflate, toplayıcı yavaşsa ara değerleri atıp yalnızca en son değeri saklar. Arama kutusunda harf yazdıkça öneri göstermek için debounce, hızlı bir sensör akışını UI'da göstermek için conflate uygundur. İkisi de akış üzerinde ara bellek ihtiyacını azaltır.

debounce vs conflate

debounce süreye göre çalışır: belirli bir süre içinde yeni değer gelmezse yayın yapar. Bu, kullanıcı yazarken her tuş vuruşunu ayrı işlemek yerine durakladığı anı yakalamak için uygundur.

conflate ise toplayıcının hızına göre çalışır. Toptyıcı bir değeri işlerken akış yeni değer üretirse, conflate eski değeri atlayıp en yeniye geçer. İkisi de performansı artırır ama davranışları farklıdır: debounce zaman eşiğine, conflate toplayıcı hızına bakar.

Uygulama conflate ile akışı topla

flowOf(1, 2, 3).conflate().collect { value -> println("Değer: $value") } yaz. Her değerin yazdırıldığını göreceksin.

Başlangıç kodu

Main.kt
// conflate ile akış
// buraya yaz
fun main() = runBlocking {
    
}

Örnek çözüm

Main.kt
fun main() = runBlocking {
    flowOf(1, 2, 3).conflate().collect { value ->
        println("Değer: $value")
    }
}

Beklenen çıktı

Değer: 1
Değer: 2
Değer: 3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 debounce çağrısını tamamla

Soru
flow.____(100)
Cevap
flow.debounce(100)

Açıklama: debounce ile hızlı değerler sıkıştırılır.

2 conflate ne yapar?

  • Tüm değerleri iptal eder
  • En son değeri saklar Doğru cevap
  • Akışı durdurur
  • Her değeri bekler

Açıklama: conflate yavaş toplayıcıda son değeri saklar.

3 debounce ve conflate eşle

Kavram Anlamı
debounce Süreye göre
conflate Toplayıcı hızına göre
ara değer Atılır
en son değer Saklanır

İleri seviye bölümündeki tüm dersler