Android - App architecture (1)

2022. 5. 2. 15:25IT/안드로이드

반응형

아키텍처는 앱에서 Class간의 책임을 할당하는 가이드라인을 제공한다.

App architecture 가 잘되어있으면, 향후 App을 확장하고 더 많은 기능을 포함 할 수 있다. 

가장 일반적인 아키텍처 원칙은 , 분리, 모델에서 UI만들기 이다. 

 

분리 디자인 원칙 - 각각 별개의 책임이 있는 여러 클래스로 App을 나눠야 한다는 원칙이다.

Model 에서 UI 만들기 - Model 은 App의 데이터 처리를 담당하는 구성 요소로, App의 View 객체 및 App 구성요소와 독립되어 있으므로, App의 수명 주기 및 관련 문제의 영향을 받지 않는다. 

또한 Arcitecture 의 기본 Class 또는 구성 요소는,

UI 컨트롤러 (Activity, Fragment) , ViewModel , LiveData, Room 이다. 

다음 그림은 Architecture 의 기본적인 부분을 보여준다. 

UI Controller ( Activity, Fragment )

Activity 와 FragmentUI Controller 이다. UI Controller 는 화면에 뷰를 그리고, 

사용자 Event 또는 상호작용하는 모든 UI 관련 동작을 캡쳐하여 UI를 제어한다. 

App의 데이터 또는 데이터에 관한 모든 의사 결정 로직은 UI 컨트롤러 클래스에 포함되어서는 안된다. 

예를 들어, Unscramble App에서, 글자가 뒤섞인 단어, 점수, 단어 수는 Fragment (UI Controller) 에 표시된다. 

글자가 뒤 섞인 다음, 단어를 고르고 점수와 단어 수를 계산하는 등의 코드ViewModel  에 포함해야 된다!

 

ViewModel

ViewModel 은, 뷰에 표시되는 App data의 모델이다. Model 은 앱 데이터 처리를 담당하는 요소로, 아키텍처 원칙에 따라 모델에서 UI가 도출되는 app을 만들 수 있다.

*** 중요!! ->

ViewModel은, Activity나 Fragment 가 소멸되고, 다시 생성될 때 폐기되지 않는 app관련 데이터를 저장한다. 

ViewModel 객체는 구성이 변경되는 동안, 자동으로 유지되어 (Activity or Fragment 처럼 소멸되지않음) 보유하고 있는 데이터가 다음 activity 또는 Fragment instance에 바로 사용될 수 있다. 

앱에 ViewModel 을 구현하려면, 라이브러리에서 가져온 ViewModel 클래스를 확장하고 이 class 내에 앱 데이터를 저장한다. 

 

 

 

728x90
반응형