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,
stateInaracılığıyla kullanıcı arayüzü durumuna eşler. - Compose,
collectAsStateWithLifecycleile 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 automaticallyHızlı Kontrol
Flow ile veri gözlemleme konusundaki anlayışınızı test edin.
Özet
Şunları öğrendiniz:
Flowdö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+collectAsStateWithLifecyclekullanmayı. - 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
- Varlıklar ve DAO'lar
- Room Veritabanı Sınıfı
- Sorgular ve İlişkiler
- Flow ile Verileri Gözlemleme