Android 13

AAC ViewModel은 어떻게 onDestroy에서 살아남을 수 있었을까

1. AAC ViewModel이란? AAC ViewModel(이하 ViewModel)은 ViewModelStoreOwner의 수명주기를 인식하며, 화면 회전같은 configuration change에서 데이터가 생존할 수 있도록 해준다. 또한 목적에 따라 ViewModel, onSaveInstanceState, Persistent Storage를 적절히 이용해 데이터를 저장할 수 있도록 한다. 이는 저장소 위치, 시스템에서 프로세스 중단시에도 데이터 유지, 사용자가 액티비티를 완전히 닫거나 finish()등 에서도 데이터가 유지되는지에 따른 차이가 있으니 필요에 맞게 단독 또는 조합하여 사용해야 한다. ViewModel은 onSaveInstanceState나 Persistent Storage와는 다르게 ..

Android 2022.09.14

AAC ViewModel 따라가기

서론 이번 포스트에서는 ViewModel을 사용은 하지만, 내부동작은 어떻게 이루어지는가에 대해서 잘 모르는 사람들을 위해 알아보려고 합니다(저포함)! 보통은 그냥 by viewModels()를 이용해 사용하는 방법만 알 뿐, 그 안에서는 어떤식으로 동작하는지는 크게 신경쓰지 않습니다. 그럼 이제 ViewModel에 대해서 먼저 알아본 뒤, 하나하나 따라가보겠습니다! 다만 이 포스트는 viewModels의 기본 사용법이므로, 아래와 같이 viewmodelFactory는 따로 만들어주지 않았습니다. viewModelFactory를 넣어주는 예시 private val githubViewModel: GithubViewModel by viewModels(factoryProducer = { GithubViewMo..

Android 2022.09.13

RecyclerView ListAdapter를 통한 DiffUtil 사용법

안드로이드 개발을 한다면 가장 많이, 자주 쓰이는 것들 중 하나가 RecyclerView일것이다. 이번 포스팅을 기회로 완벽하게 정리해두고 기억이 안나거나 참고할 때 볼 수 있도록 해야겠다. 1. 먼저 RecyclerView란? ListView는 스크롤하여 리스트 항목이 갱신될 때마다, 매번 아이템뷰를 새로 구성해야 했다. 하지만 리사이클러뷰는 이름 그대로 생성한 뷰를 "재활용"한다. 만약 10개의 리스트를 보여준다고 한다면 대략 17~20개정도의 뷰홀더 객체를 만든 뒤 사용자의 화면에서 벗어나는 경우 맨 위의 뷰가 다시 재활용(Recycle)되어 맨 밑으로 가 뷰의 데이터들이 bind된 뒤 다시 보여지게 된다. 2. RecyclerView를 구현하는데 필요한 요소 0.1 사용할 프래그먼트 or 액티비티..

Android 2022.09.13