본문 바로가기

ViewModel5

[번역] UI Layer - 안드로이드 앱 아키텍처 1. 왜 앱 아키텍처 설계를 해야 할까? 2. UI 레이어가 하는 일 3. UI 레이어를 구현하는 방법 3-1. UI 상태를 정의하는 방법 3-2. UI 상태의 생산을 관리하는 방법 3-3. UDF 원칙에 따라 관찰 가능한 데이터 유형으로 UI 상태를 노출하는 방법 3-4. 관찰 가능한 UI 상태를 소비하는 UI를 구현하는 방법 이 글은 안드로이드 공식문서 중 "앱 아키텍처 학습 과정" 페이지를 공부하며 작성한 글입니다. 개인적인 생각이나 의견이 포함되어 있음을 알려드립니다. 1. 왜 앱 아키텍처 설계를 해야 할까? 건물을 지을 때 설계도를 그려야 올바른 구조를 잡을 수 있다. 만약 올바른 구조가 없다면 건물이 무너질 수 있다. 앱도 마찬가지다. 올바른 구조가 없다면 앱도 무너지기 마련이다. 그렇다면 앱.. 2022. 11. 11.
화면을 회전할 때 viewModel의 onCleared가 호출되지 않는 이유 1. 요약 2. viewModel 2-1. 개념 2-2. viewModel은 언제 파괴될까? 1. 요약 🧑‍💻: Activity의 onDestroy가 호출되면 viewModel의 onCleared가 호출된다고 하셨는데 그러면 화면을 회전할 때 왜 viewModel의 onCleared가 호출되지 않을까요? 👨🏻‍🦱: if문으로 화면을 회전하는 경우를 따로 처리해주었기 때문입니다. 코드 내부를 들여다보면 알 수 있습니다. 2. viewModel 2-1. 개념 viewModel에 대해서는 예전에 자세히 정리해둔 포스팅이 있다. 요약하자면 "viewModel은 Activity와 독립적인 생명주기를 가지기 때문에 Activity가 onDestory 되어도 데이터를 유지할 수 있게 해준다"이다. 2-2. onDes.. 2022. 8. 26.
View Binding과 Data Binding 예제 1. 들어가기에 앞서 2. 예제 2-1. 가장 기본적인 코드 2-2. View Binding 2-3. View Binding + ViewModel 2-4. View Binding + ViewModel + LiveData 2-5. Data Binding 2-6. Data Binding + ViewModel 2-7. Data Binding + ViewModel + LiveData 2-8. 깃허브 링크 1. 들어가기에 앞서 뷰 바인딩(View Binding) 데이터 바인딩(Data Binding) 뷰 모델(View Model) 라이브 데이터(LiveData) 이 게시글은 위 4개의 개념이 모두 잡혀있다는 가정하에 따로 자세한 설명을 하지 않을 예정이다. 조합별로 어떻게 사용하는지 어떤 게 좋은지 비교 및 연습.. 2021. 5. 18.
RecyclerView + MVVM + Room을 연습해보자! 연습한 내용을 기록하는 거라 다른 게시글에 비해 다소 설명 불친절할 수 있습니다(?) 강의글이 아니에요! 0. 프롤로그 처음에 나는 MVVM이란 구조가 명확히 있고 같이 사용하면 좋은 라이브 데이터, 데이터 바인딩 이런 거를 같이 사용해야 진정한 Clean Architecture다!라고 생각하고 고민을 했었다. 하지만 예제들을 보면 어떤 사람은 이걸 쓰고 어떤 사람은 이거 말고 저걸 쓰고 또 구현하는 방식도 제각각이고 등등.. 너무 헷갈려서 오픈 채팅방에 SOS 요청을 했더니 위와 같이 답변을 해주셨다. (내 생각을 정확히 꿰뚫으심...) 그래서 처음부터 너무 틀에 구애받지 말고 처음부터 너무 완벽하게 하려고 하지 말고 이해한 부분부터 차근차근 구조를 완성시켜보고 나중에 새로운 걸 추가시키더라도 일단은 .. 2021. 3. 11.
안드로이드 View Model(뷰 모델)을 공부해보자! 1. ViewModel 1-1. ViewModel 이란? 1-2. 탄생 배경 1-3. 사용하는 이유 2. 사용법 2-1. gradle 추가 2-2. Layout 파일 2-3. ViewModel 파일 2-4. Activity 파일 3. 주의할 점 3-1. 참조 1. ViewModel 1-1. ViewModel 이란? Clean Architecture에 대한 포스팅은 여기에서 볼 수 있다. AAC의 종류는 공식문서 - Android Architecture Components에서 확인할 수 있다. 어제는 Clean Architecture가 무엇인지, 왜 필요한지에 대해 공부하였다. 구글이 개발자들을 위해 이 Clean Architecture를 쉽게 구현할 수 있도록 라이브러리들을 만들었는데 이를 Android.. 2021. 3. 8.