Junior — Middle
Чӣ гуна иҷрои дархостҳои шабакавиро бо истифода аз ViewModel дар барнома амалӣ кардан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Барои иҷрои дархостҳои шабакавӣ дар барномаи Android бо истифода аз ViewModel, одатан архитектураи MVVM ва китобхонаҳо ба монанди Retrofit ва Coroutines истифода мешаванд.
Асосии идея:
- ViewModel логикаи боркунии маълумотро дар бар мегирад ва ҳолати UI-ро идора мекунад.
- Дархостҳои шабакавӣ асинхронӣ иҷро мешаванд, то ки ҷараёни асосиро банд накунанд.
- Натиҷаҳои дархост тавассути LiveData ё StateFlow ба View интиқол дода мешаванд.
Масалан бо Kotlin Coroutines ва Retrofit:
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) {
// Идоракунии хатоҳо
}
}
}
}
class MyRepository(private val apiService: ApiService) {
suspend fun getDataFromNetwork(): ResultType {
return apiService.fetchData()
}
}
Ин ҷо, viewModelScope автоматӣ корутинаро дар вақти нобудшавии ViewModel бекор мекунад, ки аз ҷорӣ шудани хотираҳо пешгирӣ мекунад. Ин усул масъулиятҳоро равшан тақсим мекунад ва тестҳоро осон мекунад.