Sobes.tech
Junior — Middle

Bir tətbiqdə ViewModel istifadə edərək şəbəkə sorğularını necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Android tətbiqində şəbəkə sorğularını həyata keçirmək üçün adətən MVVM memarisi və Retrofit və Coroutines kimi kitabxanalar istifadə olunur.

Əsas fikir:

  • ViewModel məlumatların yüklənmə məntiqini ehtiva edir və UI vəziyyətini idarə edir.
  • Şəbəkə sorğuları asinxron şəkildə həyata keçirilir ki, əsas axını bloklamasın.
  • Sorğu nəticələri LiveData və ya StateFlow vasitəsilə View-ə ötürülür.

Kotlin Coroutines və Retrofit istifadə edərək nümunə:

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) {
                // Xəta idarəetməsi
            }
        }
    }
}

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

Burada viewModelScope ViewModel yox edildikdə avtomatik olaraq korutinanı ləğv edir, bu da yaddaş sızmalarını qarşısını alır. Bu yanaşma məsuliyyətlərin aydın bölünməsini təmin edir və testləri asanlaşdırır.