반응형

ViewModel 3

[Android] ViewModel이 Configuration Change에서도 유지되는 이유

주의 : 글이 깁니다. 티스토리는 코드 가독성이 매우 떨어집니다. 편집기에 복사해서 보시는 걸 추천합니다. 개요 안드로이드를 개발하는 방법이 다양해지면서 .xml로 앱을 만들어 봤고, Compose를 사용해서 앱을 만들고도 있습니다. View를 그리는 방법과 ViewModel에서 데이터를 홀드하는 방법이 다양해졌는데, 제 생각에 그 중에서 ViewModel이 유일하게 기존에 사용법과 동일한 사용법으로 안드로이드 개발에서 사용되고 있다고 생각됩니다. 물론 구글에서 동일하게 사용할 수 있도록 작업을 해주셨기에 가능한 일이겠지만, 이런 ViewModel을 조금 더 자세히 알고 싶어졌습니다. ViewModel의 Lifecycle과 흔히 Configuration Change가 발생하더라도 데이터를 유지할 수 있기..

Foundation/Android 2023.12.04

[Android] Dive into Android LiveData. Basic concept of LiveData Library.

안녕하세요. 골드입니다. 오늘은 안드로이드에서 사용하는 LiveData에 대해서 정리하려고 합니다. LiveData는 이미 많은 분들이 사용하고 있을 것이라고 생각되는데요. 단순히 MVVM 패턴을 사용한다고 해서 기계적으로 ViewModel을 생성하고 변수를 LiveData로 래핑해서 Observe한 형식으로 만들어서 사용한 제 자신을 위한 글이기도 합니다. 1. LiveData를 사용하는 이유 LiveData를 사용하는 이유는 구글이 권장한 안드로이드 개발 방식인 이유도 있겠지만, 중요한 건 Observe하다는 것과 수명 주기를 인식하는 것이라고 생각됩니다. - Observe하다는 것은 LiveData가 감싸고 있는 객체를 항상 최신 데이터로 유지할 수 있다는 뜻입니다. 해당 변수를 구독하고 있는 곳에..

[Android/java] SwipeRefreshLayout을 이용하여 당겨서 리스트 새로고침구현하기

안녕하세요 골드입니다. 오늘은 스와이프해서 리스트를 새로 고침하는 방법에 대해서 알아보겠습니다. Swipe는 화면을 아래로 당기듯이 드래그하는 것을 말합니다. 핸드폰 화면은 한정되어 있기 때문에 따로 새로고침 버튼을 두는 것도 좋지만 Swipe 새로고침을 많이 사용하고 있습니다. 이번 포스팅에서 저는 RecyclerView를 사용한 앱을 미리 만들어놨습니다. 여기에 swipe refresh기능을 추가하도록 할 것입니다. 아마 이 글을 보는 분들도 이런 상황일 것이라고 생각합니다. 헷갈리지 않도록 잘 써보도록 하겠습니다. 1. RecyclerView 부모 레이아웃으로 SwipeRefreshLayout 추가 최상위 레이아웃으로 SwipeRefreshLayout을 설정했습니다. SwipeRefreshLayou..