일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Eclipse
- window
- JavaScript
- xPlatform
- NPM
- es6
- Android
- Sqoop
- Java
- SQL
- vaadin
- 보조정렬
- GIT
- react
- mapreduce
- 공정능력
- Express
- plugin
- hadoop
- tomcat
- R
- table
- SSL
- mybatis
- SPC
- IntelliJ
- Python
- MSSQL
- Kotlin
- Spring
- Today
- Total
DBILITY
안드로이드 정리 3 본문
AAC(Android Architecture Components)는 강력하고, 테스트와 유지관리가 쉬운 앱을 디자인하도록 돕는 라이브러리의 모음이다.
https://developer.android.com/topic/libraries/architecture?hl=ko
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
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
'android' 카테고리의 다른 글
안드로이드 layout 하위 view 순회하기 (0) | 2024.02.21 |
---|---|
firebase block request... (0) | 2024.01.26 |
android vector icon missing disappeared ( vector icon 안보일때 ) (0) | 2024.01.22 |
안드로이드 정리 2 (0) | 2024.01.19 |
android avd path change ( 경로 변경 ) (0) | 2024.01.16 |