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.