Sobes.tech
Junior — Middle

Ilovada ViewModel yordamida tarmoq so'rovlarini qanday amalga oshirish mumkin?

sobes.tech AI

AIdan javob

Android ilovasida tarmoq so'rovlarini amalga oshirish uchun odatda MVVM arxitekturasi va Retrofit va Coroutines kabi kutubxonalar qo'llaniladi.

Asosiy g'oya:

  • ViewModel ma'lumotlarni yuklash mantiqini o'z ichiga oladi va UI holatini boshqaradi.
  • Tarmoq so'rovlari asinxron tarzda amalga oshiriladi, shunda asosiy oqim bloklanmaydi.
  • So'rov natijalari LiveData yoki StateFlow orqali View ga uzatiladi.

Kotlin Coroutines va Retrofit bilan misol:

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

    fun fetchData() {
        viewModelScope.launch {
            try {
                val response = repository.getDataFromNetwork()
                _data.value = response
            } catch (e: Exception) {
                // Xatoliklarni boshqarish
            }
        }
    }
}

class MyRepository(private val apiService: ApiService) {
    suspend fun getDataFromNetwork(): ResultType {
        return apiService.fetchData()
    }
}

Bu yerda viewModelScope ViewModel yo'q qilinganda avtomatik ravishda korutina bekor qilinadi, bu esa xotira oqib ketishini oldini oladi. Bu yondashuv mas'uliyatlarni aniq ajratishni ta'minlaydi va testlarni osonlashtiradi.