Sobes.tech
Junior — Middle

Aké prístupy a implementácie vzoru ViewModel poznáš?

sobes.tech AI

Odpoveď od AI

Vzor ViewModel v Androidu se uporablja za shranjevanje in upravljanje UI podatkov ob upoštevanju življenjskega cikla komponent, kot so Activity ali Fragment. Glavni pristopi in implementacije:

  • Android Architecture Components ViewModel — razred iz knjižnice androidx.lifecycle, ki omogoča ohranjanje podatkov med ponovnim ustvarjanjem Activity/Fragment (na primer pri rotaciji zaslona). ViewModel živi, dokler živi UI komponenta.

  • ViewModel z LiveData — pogosto, ViewModel vsebuje LiveData za samodejno posodabljanje UI, ko se podatki spremenijo.

  • Prilagojen ViewModel — lahko implementirate svoj vzorec ViewModel, ločite logiko in podatke od UI, vendar brez uporabe AndroidX, na primer v čistem MVVM.

Primer uporabe standardnega ViewModel z LiveData:

class MyViewModel : ViewModel() {
    private val _data = MutableLiveData<String>()
    val data: LiveData<String> = _data

    fun loadData() {
        // nalaganje podatkov, na primer iz repozitorija
        _data.value = "Primer podatkov"
    }
}

// V Activity ali Fragment
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
viewModel.data.observe(this) { value ->
    textView.text = value
}
viewModel.loadData()