Sobes.tech
Junior — Middle

რა Jetpack ViewModel-ის კომპონენტებს იყენებთ მონაცემებისა და UI-ის მდგომარეობის მართვისთვის?

sobes.tech AI

პასუხი AI-სგან

Jetpack ViewModel-ში მონაცემებისა და UI-ის მდგომარეობის მართვა ჩვეულებრივ გამოიყენება შემდეგი კომპონენტებით:

  • LiveData — თვალსაზრისით დაკვირვებადი მონაცემები, რომლებიც ავტომატურად განახლდება ცვლილებისას. საშუალებას აძლევს რეაქტიული მიდგომის განხორციელებას.

  • MutableLiveData — LiveData-ის შეცვლადი ვერსია, რომელიც გამოიყენება ViewModel-ის შიგნით მონაცემების განახლებისთვის.

  • StateFlow / SharedFlow (Kotlin Coroutines-დან) — თანამედროვე ალტერნატიული საშუალებები LiveData-სთვის, მდგომარეობისა და მოვლენების მართვისთვის კორუტინების მხარდაჭერით.

  • SavedStateHandle — საშუალებას აძლევს შეინახოს და აღადგინოს ViewModel-ის მდგომარეობა UI-ის ხელახლა შექმნისას, მაგალითად, ეკრანის ბრუნვის დროს.

LiveData-ს გამოყენების მაგალითი ViewModel-ში:

class MyViewModel : ViewModel() {
    private val _text = MutableLiveData<String>()
    val text: LiveData<String> = _text

    fun updateText(newText: String) {
        _text.value = newText
    }
}