0Pricing
Android Academy · Ders

Flow ile Verileri Gözlemleme

Veritabanı değişikliklerine tepkisel olarak yanıt verin.

Flow ile Verileri Gözlemleme, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.

Tepkisel Veritabanı Okumaları

Room, bir kez sorgulamak yerine, temel veriler her değiştiğinde yeni bir değer yayan bir Flow döndürebilir. Kullanıcı arayüzünüz otomatik olarak güncellenir.

DAO'dan Flow Döndürme

Dönüş türünü Flow<...> olarak bildirin. Bunun suspend işlevi olmadığını unutmayın.

@Query("SELECT * FROM users ORDER BY name")
fun observeUsers(): Flow<List<User>>

Burada Neden suspend Kullanılmıyor

suspend işlevi tek bir sonuç döndürür ve tamamlanır. Flow devam eden bir akış olduğundan, akış nesnesini döndüren normal bir işlevdir; bu akışı zaman içinde toplarsınız.

Room Yeniden Değer Yaymayı Nasıl Biliyor

Room, bir sorgunun hangi tablolara dokunduğunu izler. Herhangi bir yazma işlemi bu tabloları etkilediğinde Room sorguyu yeniden çalıştırır ve güncel sonucu Flow üzerinden yayar. Bu işlem otomatiktir.

Bir Korutin İçinde Toplama

Akışı bir korutinin içinde, genellikle ViewModel'de toplarsınız.

viewModelScope.launch {
    dao.observeUsers().collect { users ->
        _uiState.value = UiState(users)
    }
}

Flow'u Eşleme

Akışı dışa sunmadan önce map gibi işleçlerle dönüştürebilirsiniz.

val names: Flow<List<String>> =
    dao.observeUsers().map { list ->
        list.map { it.name }
    }

StateFlow'a Dönüştürme

Soğuk bir DAO akışını stateIn ile kullanıcı arayüzü için sıcak bir StateFlow'a dönüştürün.

val uiState = dao.observeUsers()
    .map { UiState(it) }
    .stateIn(
        viewModelScope,
        SharingStarted.WhileSubscribed(5000),
        UiState()
    )

Compose'ta Toplama

Ekran, daha önce öğrendiğiniz gibi bu durumu yaşam döngüsünü dikkate alarak toplar.

@Composable
fun UsersScreen(vm: UserViewModel) {
    val state by vm.uiState
        .collectAsStateWithLifecycle()
    UserList(state.users)
}

Eksiksiz Tepkisel Zincir

Hepsini bir araya getirirsek:

  • Room, veri değiştiğinde değer yayar.
  • ViewModel, stateIn aracılığıyla kullanıcı arayüzü durumuna eşler.
  • Compose, collectAsStateWithLifecycle ile toplar.

Veritabanına herhangi bir yerden yazın; ekran kendini yeniler.

Tek Doğruluk Kaynağı

Bu düzen, veritabanını tek doğruluk kaynağı haline getirir. Kullanıcı arayüzü hiçbir zaman güncelliğini yitirmiş kopyalar tutmaz; her zaman gerçekten depolanan veriyi yansıtır.

Yazma İşlemleri Güncellemeleri Tetikler

İzlenen bir tabloda yapılan herhangi bir ekleme, güncelleme veya silme işlemi akışı yeniden yayar; bu nedenle değişiklikten sonra listeyi elle yenilemeniz gerekmez.

suspend fun addUser(u: User) = dao.insert(u)
// observeUsers() flow re-emits automatically

Hızlı Kontrol

Flow ile veri gözlemleme konusundaki anlayışınızı test edin.

Özet

Şunları öğrendiniz:

  • Flow döndüren DAO yöntemlerinin veri değiştiğinde değeri yeniden yaymasını.
  • Bunların, akış döndüren normal (suspend olmayan) işlevler olduğunu.
  • Kullanıcı arayüzünü tepkisel olarak yönlendirmek için stateIn + collectAsStateWithLifecycle kullanmayı.
  • Veritabanının tek doğruluk kaynağı haline gelmesini.

Sıkça Sorulan Sorular

“Flow ile Verileri Gözlemleme” dersi ücretsiz mi?

Evet — “Flow ile Verileri Gözlemleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.

“Flow ile Verileri Gözlemleme” dersinde ne öğreneceğim?

Veritabanı değişikliklerine tepkisel olarak yanıt verin. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Android Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Flow ile Verileri Gözlemleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Varlıklar ve DAO'lar
  2. Room Veritabanı Sınıfı
  3. Sorgular ve İlişkiler
  4. Flow ile Verileri Gözlemleme
← Android Academy Sayfasına Dön