DBILITY

안드로이드 정리 3 본문

android

안드로이드 정리 3

DBILITY 2024. 1. 23. 11:15
반응형

AAC(Android Architecture Components)는 강력하고, 테스트와 유지관리가 쉬운 앱을 디자인하도록 돕는 라이브러리의 모음이다.

https://developer.android.com/topic/libraries/architecture?hl=ko

 

Android 아키텍처 구성요소  |  Android 개발자  |  Android Developers

앱 작업

developer.android.com

MVVM ( Model - View - ViewModel )은 Model에서 Business Logic(데이터 처리 등)을 처리하고, View는 화면UI를 담당한다. Model과 View를 분리하고 중간에 ViewModel을 둔다.이벤트 흐름으로 보자면 View -> ViewModel -> Model이다

Activity나 Fragment가 View가 된다.필요한 처리를 ViewModel에 요청하고 ViewModel은 Model을 이용해서 처리한다.

Activity나 Fragment는 데이터를 UI에 보여주기만 하고, ViewModel에서 데이터를 처리, 가공하는 작업을 한다.

UI관련 데이터를 저장하고 관리해 주는 역할이라 이해하면 되겠다.

Layered Architecture 라면 Presentation Layer(View,Controller)가 View,  Business Layer(Service,Domain Model)가 ViewModel, Presistence Layer(Repository,Dao)가 Model로 이해하면 되려나?

ViewModel을 Layered Architecture의 Service로 이해하자. 계층별 관심사의 분리를 통한 높은 유지보수성, 테스트라는 장점으로 보면 MVVM도 마찬가지다.

https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ko

 

ViewModel 개요  |  Android 개발자  |  Android Developers

ViewModel을 사용하면 수명 주기를 인식하는 방식으로 UI 데이터를 관리할 수 있습니다.

developer.android.com

Activity나 Fragment에 생명주기가 있는 것처럼 ViewModel에도 생명주기가 있다.

Activity나 Fragment에 생명주기기 전체에 걸쳐 있는 걸보면 Data유지가 된다는 얘기다. 다른 경우는 안되니까 이게 있겠지? (화면 회전과 같이 구성이 변경될때 유지가 안됨)

ViewModel을 만들때  ViewModel class(Activity나 Fragment 참조)말고 AndroidViewModel class(Application 참조)를 상속받아 작성할 수 도 있다. MVVM의 ViewModel과 AAC의 ViewModel은 참조에서 벌써 차이가 있다. Application Level에는 하나만 생성 가능하다.

https://developer.android.com/codelabs/basic-android-kotlin-training-shared-viewmodel?hl=ko#0

 

프래그먼트 간 공유되는 ViewModel  |  Android Developers

고급 앱 예를 통해 Jetpack Navigation 구성요소를 사용해보고 활동의 여러 프래그먼트 간에 공유 ViewModel을 보유할 경우의 이점에 관해 알아봅니다.

developer.android.com

 

반응형
Comments