Sobes.tech
Junior — Middle

Model-View-Intent (MVI) memarlıq nümunəsindən istifadə edərək tətbiqlər hazırlama təcrübəniz varmı?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, Model-View-Intent (MVI) istifadə edərək inkişaf təcrübəm var. MVI-də tətbiqin bütün məntiqi məlumat axınları və istifadəçinin niyyətləri (Intent) ətrafında qurulur. Model (Model) vəziyyəti saxlayır, View bu vəziyyəti göstərir və Intent istifadəçi tərəfindən başlatılan hadisələrdir, məsələn, düymələrə basmaq.

Kotlin üçün Android-də sadə MVI nümunəsi:

// Intent - istifadəçi hərəkətləri
sealed class UserIntent {
    object LoadData : UserIntent()
    data class Submit(val input: String) : UserIntent()
}

// Model - UI vəziyyəti
data class ViewState(val isLoading: Boolean = false, val data: String? = null)

// ViewModel Intent-i işləyir və vəziyyəti yeniləyir
class MainViewModel : ViewModel() {
    private val _state = MutableLiveData<ViewState>()
    val state: LiveData<ViewState> = _state

    fun processIntent(intent: UserIntent) {
        when (intent) {
            is UserIntent.LoadData -> {
                _state.value = ViewState(isLoading = true)
                // məlumatların yüklənməsi...
                _state.value = ViewState(isLoading = false, data = "Məlumatlar yükləndi")
            }
            is UserIntent.Submit -> {
                // göndərmənin işlənməsi
            }
        }
    }
}

Bu yanaşma məntiq və UI-ni aydın şəkildə ayırmağa kömək edir, testləri asanlaşdırır və vəziyyəti idarə etməyə imkan verir.