728x90

아키텍쳐 패턴의 종류

  • MVC, MVP, MVVM, MVI, …가 있음

아키텍쳐 가이드

 

UI Layer

UI Layer

  • UI의 역할은 화면에 애플리케이션 데이터를 표시하고 사용자와 상호작용
    • 상호작용 : 버튼 클릭, 네트워크 처리, 데이터의 변경, …
  • UI는 데이터 레이어에서 가져온 애플리케이션 상태를 시각적으로 나타냄

UI State

  • LiveData
  • StateFlow, SharedFlow

ViewModel

  • ViewModel는 비즈니스 로직을 캡슐화하고 UI 상태를 나타냄
  • ViewModel에서 Data Layer에 있는 데이터를 가져옴
  • ViewModel UI에 사용될 상태를 처리하고 UI Layer에 이벤트를 알리거나 상태를 업데이트함
  • UI Layer는 ViewModel에 이벤트를 전송함

ViewModelLifeCycle

  • ViewModel은 View의 라이프사이클이 종료(destory)될때 사라짐(cleared)

  • 앱의 데이터 읽기, 생성, 저장, 변경 방식을 결정하는 규칙으로 구성함

Domain Layer (optional)

  • 하나의 기능만을 위한 클래스
  • optional이기 때문에 해도되고, 안해도됨
  • ex) GetTodoDetailUseCase(), AddTodoContentUseCase()

 

요약

View

  • 보통 Activity, Fragment가 View 역할을 담당
  • 사용자의 Action을 받음 (텍스트 입력, 버튼 터치 등)
  • ViewModel의 데이터를 관찰해(Observe) UI를 갱신
  • 사용자의 Action을 감지하고 데이터 변화를 통해 UI 갱신 처리

ViewModel

  • 사용자의 Action, LifeCycle에 의해 View에서 요청한 데이터, 비지니스 로직을 처리함
  • Model에 요청한 데이터를 받음

Model (Data Layer)

  • ViewModel에서 요청한 데이터를 처리, 반환
  • Local DB(SQLite, Room), Network 통신(Retrofit)을 이용함

참고

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

 

앱 아키텍처 가이드  |  Android 개발자  |  Android Developers

앱 아키텍처 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드에는 고품질의 강력한 앱을 빌드하기 위한 권장사항 및 권장 아키텍처가 포함

developer.android.com

https://thdev.tech/android/2022/12/12/Android-Follow-MVVM-Intro/

 

안드로이드 MVVM 패턴 따라 하기 - 시작하기 전에 |

I’m an Android Developer.

thdev.tech

https://velog.io/@dddooo9/Android-MVVM-%ED%8C%A8%ED%84%B4%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0%EC%99%80-%EB%B0%A9%EB%B2%95

 

[Android] MVVM 패턴과 적용방식

[Android] MVVM 패턴과 적용방식

velog.io

 

+ Recent posts