StateFlow ve SharedFlow
Kullanıcı arayüzü için doğru sıcak akışı seçin.
StateFlow ve SharedFlow, CoddyKit'te ücretsiz bir Jetpack Compose Academy dersidir. Bu, 4 dersinin 1. 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, Jetpack Compose Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Jetpack Compose Academy kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Hot Streams for the UI
To stream live data into Compose you use a hot flow that stays active and emits whether or not anyone is currently collecting it.
Meet StateFlow
A StateFlow always holds exactly one current value. New collectors immediately receive that latest value, which is perfect for screen state. 📦
val count = MutableStateFlow(0)
count.value = 1Read the Value Anytime
Because StateFlow caches one item, you can read its current value synchronously through the value property without collecting.
val ui: StateFlow<UiState> = _ui
val now = ui.valueStateFlow Skips Duplicates
A StateFlow only emits when the value actually changes. Setting it to the same value again sends nothing to collectors.
_count.value = 5
_count.value = 5 // no new emissionMeet SharedFlow
A SharedFlow broadcasts events to many collectors but holds no required current value. It is built for things that happen, not state that is.
val events = MutableSharedFlow<String>()SharedFlow Replay Buffer
A SharedFlow can replay a few past emissions to late collectors. With replay zero, new collectors only see future events.
MutableSharedFlow<Int>(replay = 1)SharedFlow Keeps Duplicates
Unlike StateFlow, a SharedFlow emits every value you send, even repeats. Two identical taps fire two separate events.
events.emit("tap")
events.emit("tap") // both deliveredState Versus Events
The rule of thumb: use StateFlow for what the screen looks like, and SharedFlow for one-time things like a navigation or a toast.
Expose Read-Only Streams
Keep a private mutable flow inside the ViewModel and expose a read-only one. The UI observes but cannot mutate it.
private val _ui = MutableStateFlow(UiState())
val ui: StateFlow<UiState> = _uiStateFlow Needs a Default
A StateFlow must start with an initial value, so the UI always has something to show. A SharedFlow can start empty.
MutableStateFlow(UiState(loading = true))Collect in Compose
You turn either flow into Compose state with a collector. For a StateFlow the screen has data immediately on first frame.
val state by viewModel.ui.collectAsStateWithLifecycle()Quick Check
Match each flow to its purpose.
Recap: StateFlow vs SharedFlow
Nice! StateFlow caches one current value for screen state, while SharedFlow broadcasts repeatable events with an optional replay buffer. 🎯
Sıkça Sorulan Sorular
“StateFlow ve SharedFlow” dersi ücretsiz mi?
Evet — “StateFlow ve SharedFlow” 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 Jetpack Compose Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Jetpack Compose Academy kursu toplamda 4 dersten oluşur.
“StateFlow ve SharedFlow” dersinde ne öğreneceğim?
Kullanıcı arayüzü için doğru sıcak akışı seçin. Jetpack Compose 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.
Jetpack Compose Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Jetpack Compose 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 1. dersidir.
“StateFlow ve SharedFlow” 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 Jetpack Compose Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Jetpack Compose 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
- StateFlow ve SharedFlow
- Flow'ları Eşleme ve Birleştirme
- stateIn ve WhileSubscribed
- Kanallarla Tek Seferlik Olaylar