Android

ViewModel 코딩시 유의점

Dean83 2023. 1. 26. 10:40

계속해서 추가해갈 예정이다. 

ViewModel 생성법도 추후에 적을 예정이다. 

 

1. Activity, Fragment 등 view 에 해당하는 context를 참조하지 말것
    - 메모리 누수가 생긴다고 한다. 
    - context가 필요한 경우, 만일 koin을 쓰고 있다면 생성자에 context를 추가하고, koin 에서 get()을 통해 념겨주기
       또는, ViewModel Class 생성시 AndroidViewModel 을 상속받아 생성자에 포함된 application을 이용하자. 

 

2. Fragment나 Activity를 ViewModel 에서 띄우지 말것. 


한마디로 말해서, View 와 관련된 어떤것도 하지 말라는것이다. 

 

 

요약하자면, 

1. View 와 관련된 모든것 (UI 변경, Fragment나 Activity 띄우기 등)은 Activity랑 Fragment 에서 할것

2. ViewModel 은 Repository와 연관된, 즉 데이터 처리에 관련된 것만 할것

3. Activity나 Fragment <-> ViewModel 연동은 Livedata 혹은 반응형을 이용하여 연계할것
    - 데이터가 수신되었을때 Activity나 Fragment에 이를 알리고, 해당 내용을 UI에 반영하게 하는것