ViewModelはAndroid独特の実装も吸収
26
class PostDetailViewModel(...) : ViewModel() {
var commentIds: MutableLiveData> = MutableLiveData()
fun showComments() {
viewModelScope.launch {
val thread = chatRepository.getChatThread(postId)
if(thread.success) {
commentIds.postValue(thread.comments)
}
}
}
override fun onCleared() {
super.onCleared()
// 後処理
}
}
Fragument
ViewModel
Repository
Database
Slide 26
Slide 26 text
問題の分割
27
Data
Source
Repository ViewModel
State
Operations
UI / View
Activity
Fragment
複雑なアプリケーション構成要素を分解する役割がアーキテクチャ。Android
Specific / ResourcesをViewに閉じ込める