ViewModel 5

[Android] ViewModel - View에 Event 발생시키기

#1 샘플 앱 [Android] ViewModel - View에 객체(ViewModel) 전달 #1 개요 #1-1 Data Binding과 ViewModel [Android] Data Binding - View에 객체 전달 #1 객체 전달의 필요성 #1-1 이전 글 Data Binding - 기초 #1 데이터 바인딩 사용 전 #1-1 예시 앱 위과 같은 간단한 앱이 있다. Button을 kenel.tistory.com 아래에 있는 코드들은 위 게시글의 완성된 앱을 기반으로 수정된 것들이다. #2 목표 (수정할 부분) // package com.example.eventwithview import androidx.lifecycle.MutableLiveData import androidx.lifecycle.V..

[Kotlin] Coroutines - ViewModelScope

본 게시글의 Coroutine 개념은 Android 내에서 사용되는 것을 전제로 작성되었다. #1 ViewModel 속 전통적인 방식의 Coroutinesimport androidx.lifecycle.ViewModelimport kotlinx.coroutines.CoroutineScopeimport kotlinx.coroutines.Dispatchersimport kotlinx.coroutines.Jobimport kotlinx.coroutines.launchclass SampleViewModel : ViewModel() {    private val myJob = Job()    private val myScope = CoroutineScope(Dispatchers.IO + myJob)    fun s..

[Android] ViewModel - View에 객체(ViewModel) 전달

#1 개요 #1-1 Data Binding과 ViewModel [Android] Data Binding - View에 객체 전달 #1 객체 전달의 필요성 #1-1 이전 글 Data Binding - 기초 #1 데이터 바인딩 사용 전 #1-1 예시 앱 위과 같은 간단한 앱이 있다. Button을 누르면, EditText의 text가 바로 위에 있는 TextView의 text에 대입된다. 이 kenel.tistory.com 데이터 바인딩을 이용해 View에 객체를 보낼 수 있었다. 그렇다면, ViewModel의 객체 또한 같은 방식으로 보낼 수 있을 것이다. #1-2 ViewModel이 쓰인 샘플 앱 [Android] LiveData - 기초 #1 개요 #1-1 LiveData LiveData 개요 | An..

[Android] ViewModel - 뷰 모델에 인자(Argument) 전달 (ViewModelFactory)

#1 ViewModelProvider 클래스 분석#1-1 수정할 샘플 앱 [Android] View Model - 기초#1 View Model의 필요성#1-1 예제버튼을 누르면 TextView의 text가 1씩 증가하는 예시 앱이다. MainActivity.kt 코드는 다음과 같다. // package com.example.viewmodelbasics import androidx.appcompat.app.AppCompatActivity import androkenel.tistory.com위 게시글의 '완성된 앱'을 수정해서, ViewModel 클래스가 인자(Argument)를 받게 만들어본다. 그냥 class sampleViewModel(args: Int) : ViewModel() { ... }와 같이 ..

[Android] ViewModel - 기초

#1 View Model의 필요성#1-1 예제버튼을 누르면 TextView의 text가 1씩 증가하는 예시 앱이다. MainActivity.kt 코드는 다음과 같다. // package com.example.viewmodelbasicsimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport androidx.databinding.DataBindingUtilimport com.example.viewmodelbasics.databinding.ActivityMainBindingclass MainActivity : AppCompatActivity() {    private lateinit var binding: ActivityMai..