마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

viewmodel 과 bundle 고민

0 추천
안녕하세요 회원 가입 플로우 시에 pass인증, id입력, pwd 입력, email 등등 각각의 데이터를 받아오는 프래그먼트가 다 다른 프래그먼트인대 해당 경우에는 bundel 을 사용해 일일히 데이터를 넘겨주는 것과 viewmodel 을 사용하는 것 중 일반적으로 어떤것을 많이 사용하나요?

현재는 viewModel을 사용중인대 비슷하지만 조금씩 다른 데이터가 들어가야 할 때 각각의 viewmodel을 생성해 주는 것이 좋을지 하나의 viewmodel에서 분리하는게 좋을지도 궁금합니다.

viewmodel을 데이터 관리용으로 사용한다고 하면 생명주기가 끝남과 동시에 viewModel도 삭제되어 device에 남지 않기 때문에 여러개 사용해도 괜찮을까요?
개린쓰 (680 포인트) 님이 2023년 12월 6일 질문

1개의 답변

+1 추천
 
채택된 답변
상황에 따라 달라 질 수 있습니다. 예를 들어, ViewModel의 scope이 Activity이고 SingleActivity 구조라면 이 때는 ViewModel을 Singleton처럼 존재하게 되므로, 이런 경우는 피하는게 좋을 것 같습니다.

그렇지 않다면 둘 사이에는 별다른 차이가 없을 것 같습니다. 다만 ViewModel에서 SaveStateHandle을 사용하게 될 경우는 앱이 죽었다가 다시 살아나더라도 데이터를 보관할 수 있고, 액티비티에 보관하는 것보다 큰 오브젝트도 가능합니다. 그리고 Bundle에 넘긴 데이터는 자동으로 SavedStateHandle에서 보관이 되므로 ViewModel 자유롭게 꺼내어 사용하면 됩니다.

결과적으로 액티비티/프래그먼트가 하는 것 이상으로 ViewModel이 처리가 가능하고 데이터를 가진 곳은 하나인게 확실히 바람직하므로 최종적으로 ViewModel에 데이터를 위치시키는 것이 많은 경우에는 바람직할 수 있습니다.
spark (227,830 포인트) 님이 2023년 12월 6일 답변
개린쓰님이 2023년 12월 7일 채택됨
...