Junior — Middle
Model-View-Intent (MVI) mimari desenini uygulama deneyiminizden bahsedin.
sobes.tech yapay zeka
AI'dan gelen yanıt
Model-View-Intent (MVI) — mimari bir desen olup, kullanıcı niyetleri (intents) akışı aracılığıyla UI durumunu yönetmeye yardımcı olur.
Android'de MVI uygulama deneyimimde:
- Intent — sisteme gönderilen kullanıcı eylemleri veya olaylar.
- Model — intents'i işleyen ve yeni bir durum oluşturan iş mantığı ve durum.
- View — durumu gösterir ve intents üretir.
Örneğin, bir düğmeye basıldığında, View bir Intent gönderir, Model onu işler ve durumu günceller, View ise gösterir.
Bu, UI'yi öngörülebilir ve kolay test edilebilir hale getirir.
Basitleştirilmiş kod örneği:
sealed class Intent {
object LoadData : Intent()
data class Submit(val text: String) : Intent()
}
data class ViewState(val isLoading: Boolean, val data: String?)
class Model {
private val state = MutableStateFlow(ViewState(false, null))
fun process(intent: Intent) {
when (intent) {
is Intent.LoadData -> loadData()
is Intent.Submit -> submitData(intent.text)
}
}
private fun loadData() {
state.value = ViewState(true, null)
// veri yükleme
state.value = ViewState(false, "Veriler yüklendi")
}
private fun submitData(text: String) {
// gönderim işlemi
}
fun getState(): StateFlow<ViewState> = state
}