본문 바로가기
반응형

ViewModel4

[Android] ViewModel Factory에 관하여 ViewModel을 생성할 때는 일반적으로 2가지 경우가 있습니다. ① 파라미터가 있는 경우 ② 파라미터가 없는 경우 일반적으로 파라미터가 없는 경우는 아래와 같이 사용해주면 됩니다. (lifecycle-extensions 모듈 필요) class SimpleViewModel : ViewModel(){ /** Content **/ } 생성하는 것은 2가지 방법으로 생성이 가능합니다. class MainActivity : AppCompatActivity() { private lateinit var simpleViewModel: SimpleViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState.. 2022. 5. 4.
[Android] ACC ViewModel이란? - 정의, 사용법, 주의할점 AAC ViewModel이란? 우리는 안드로이드 앱을 설계할 때 MVVM 패턴을 많이 사용합니다. 오늘은 이 MVVM 패턴에서 빠질 수 없는 요소인 ViewModel을 쉽게 구현해주는 AAC의 ViewModel에 대해 알아보려고 합니다. AAC ViewModel을 사용하면 MVVM을 좀 더 쉽게 구현할 수 있습니다. (앞으로 나올 ViewModel은 AAC의 ViewModel을 의미) ViewModel은 액티비티와 프래그먼트에서 사용되는 UI 관련 데이터를 보관하고, 관리하기 위해 디자인되었습니다. 이전에 액티비티가 재생성될 때 데이터를 유지할 수 없었습니다. (예 : 화면 회전) 하지만 ViewModel은 액티비티가 재생성되는 상황에서도 ViewModel 인스턴스를 유지함으로써 데이터를 안전하게 다룰 .. 2022. 4. 16.
[Android] Adapter에서 ViewModel 사용하기 개인 프로젝트를 하던 중, 리스트의 아이템을 삭제하고 변경 사항을 Room에 저장하기 위해 ViewModel을 사용해야 했다. 처음에는 ViewModel의 인스턴스를 adpater 생성 시에 같이 넘겨주려고 생각을 했었다. 하지만 찾아보니 Adapter가 ViewModel의 인스턴스를 가지고 있다면 ViewModel 생명 주기가 더 길기 때문에 메모리 해제가 안 될 수 있기 때문에 웬만하면 adapter에는 표시해줄 데이터만 넘겨주어야겠다는 생각이 들었다. 그래서 callback 함수를 구현해서 이벤트를 넘겨주기로 했다. 이전에 커스텀 다이얼로그를 만들 때 구현해봐서 어렵지 않게 구현할 수 있었다. 준비물은 다음과 같다. (내 실제 코드의 일부분이다. 불필요한 부분들은 모두 삭제했다.) Listener를.. 2022. 3. 30.
[Android] ViewModel 에서 Activity, Fragment 데이터 공유하기 토이 프로젝트를 진행하면서 Android Navigation을 사용했는데 하나의 Activity에 여러 개의 Fragment가 종속되다 보니 데이터를 같이 공유할 필요가 있어서 방법을 찾아보았다. 찾아보니 ViewModel을 통해 Activity와 Fragment 간에 데이터 공유가 가능하다고 하여 적용을 해보았다. 📄 MainActivity.kt class MainActivity : AppCompatActivity() { private val foodViewModel : FoodViewModel by viewModels() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentVie.. 2022. 2. 16.
반응형

loading