ViewModel
![[JETPACK개론] LiveData](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FGkl5U%2FbtrJBlU0Cps%2FAAAAAAAAAAAAAAAAAAAAAA3ZAnQdhPiVn0CeiBxre_ErdBcrYzwEYV4uDnLPFj2a%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DKCkQkaX4DrLr0S%252BIJXOCVNX0dWg%253D)
[JETPACK개론] LiveData
LiveData? LiveData는 관찰 가능한 데이터 홀더 클래스이다. 관찰 가능한 일반 클래스와 달리 LiveData는 수명주기를 인식한다. 이렇게 공식문서에 정의되어있다. 즉, 쉽게 다시 설명하자면 데이터를 LiveCycle과 결합해서 관찰해줄 수 있는 것이 LiveData이다!! 가장 대표적인 장점 중에 하나가 UI와 데이터 상태의 일치를 보장해준다! LiveData는 기본 데이터가 변경될 때 observer 객체에 알리고, 코드를 통합하여 이러한 observer객체에 UI를 업데이트할 수 있다. 다음 예시를 살펴보자! class MainActivity : AppCompatActivity() { private var testMutableLiveData = MutableLiveData(0) ove..
[JETPACK개론] ViewModelFactory
ViewModelFactory 안드로이드 개발을 하면서 네트워크 통신을 하거나 localDB, room SQLite 등을 포함하여 데이터를 ViewModel로 넘겨주고 싶을 때 안드로이드 Factory클래스를 이용할 수 있다. 간단히 int형 숫자 하나를 전달하는 ViewModel을 만들어 테스트해보자. class MainViewModel(num : Int) : ViewModel() { init{ Log.d("MainViewModel" , num.toString()) } 숫자 하나를 받은 ViewModel 클래스이다. 이제 Factory클래스를 이용해 ViewModel에 원하는 파라메터를 넣어 생성하는 방법을 이용해보자! class MainViewModelFactory(private val num : I..
![[JETPACK개론] Activity/Fragment 의 ViewModel 공유](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcwBJaK%2FbtrJmwVi4bY%2FAAAAAAAAAAAAAAAAAAAAADpWBitkFemE1I4NWWXc5q1yqkTyXFwRWgvmbHV-Pr8p%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DlEFUd7d2w1gubU1W523Zj%252Fqq2xE%253D)
[JETPACK개론] Activity/Fragment 의 ViewModel 공유
전 글에서는 간단하게 Activity에서의 ViewModel 사용을 해보았다. 이번 글에서는 먼저 Fragment에서 ViewModel을 사용해보자! val transaction = manager.beginTransaction() val fragment = TestFragment() transaction.replace(R.id.frameArea, fragment) transaction.addToBackStack(null) transaction.commit() 먼저 fragment layout을 만들고, 위의 코드와 같이 액티비티에서 framlayout을 형성하여 fragment로 변환해준다. class TestFragmentViewModel : ViewModel() { var countValue = 0 ..
![[JETPACK개론] ViewModel ?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbHyp9Y%2FbtrJlzx6ukg%2FAAAAAAAAAAAAAAAAAAAAAKUrYAT9iTLXPBa3Fvx8tMxqtryzAlm5qNugueZHlzdL%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DL1wz8JhQr8IlotJt3rXYpE1GEDk%253D)
[JETPACK개론] ViewModel ?
ViewModel ViewModel 개요 | Android 개발자 | Android Developers ViewModel을 사용하면 수명 주기를 인식하는 방식으로 UI 데이터를 관리할 수 있습니다. developer.android.com 위의 안드로이드 공식문서를 읽어보면 자세히 나와있지만 처음 접하는 나같은 사람들에게는 어렵게 다가올 수 있다. 정리하자면 ViewModel은 안드로이드의 생명주기를 관리하기 쉽게한다. 다시말해, UI컨트롤러(Activity, Fragment)에서 모든 것을 다 하려고 하면 복잡해지는데, ViewModel을 사용하면 테스트나 관리가 용이해진다. 먼저 간단하게 Activity에서 ViewModel을 사용해보면서 이해해보자!! 위의 그림을 이해하기 위해 다음과 같이 로그를 찍..
![[Android] ViewModel, LiveData](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fl7kT4%2FbtrAB0Fb1tq%2FAAAAAAAAAAAAAAAAAAAAAKhFK7jk8THqsfVLwOTFOCxH86RZbZAT7afW0kgLEsVh%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Du9Uy1dSjW2bqoNuBek1AoaxlIwY%253D)
[Android] ViewModel, LiveData
ViewModel ? -MVVM 패턴에서 수명주기를 고려하여 데이터를 저장하고 관리한다. -ViewModel 객체는 다른 activity나 fragment에서도 사용할 수 있다. 위 그림은 뷰 모델의 생명주기이다. 위의 그림과 같이 액티비티가 시작되고, 종료될 때 까지 뷰모델은 유지된다. 안에서 프래그먼트가 생성되고, 다른 프래그먼트로 옮겨진다고 한들 액티비티가 살아있는 동안에는 뷰모델도 살아있다! 즉, ViewModel은 생명주기의 영향을 받지 않고 데이터를 유지, 보관하기 위해 사용한다고 볼 수 있다! LiveData ? -보통 ViewModel과 같이 사용되며, observer패턴을 구현하기 위하여 사용된다. -관찰 가능한 일반 클래스와 달리 LiveData는 수명 주기를 인식한다. 실습 실습하기전..