본문 바로가기
Swift

SwiftUI + Combine MVVM 아키텍쳐 분석 - 4

by songmoro 2024. 11. 11.
728x90

Business Logic - AppState

  • DIContainer에 포함된 State
  • Store로 래핑 되어 있음
    • Subject의 별칭
    • subscript 정의로 키패스 접근 가능
    • 값 업데이트 메소드 포함
    • typealias Store<State> = CurrentValueSubject<State, Never>
  • UserData, ViewRouting, System, Permissions
    • UserData: 앱 전역적으로 쓰이는 데이터가 보관되는 구조체, CoreData로 이관됨
    • ViewRouting: 뷰 네비게이션을 위한 구조체, 내비게이션에 사용되는 변수들은 뷰 내부에서 정의됨
      • ex. sheet, 국가 코드, 국가 디테일을 위한 코드
    • System: 시스템에 관한 상태를 다루는 구조체
      • ex. 키보드가 활성화 됐을 때 높이, 뷰 라이프 사이클
    • Permissions: 권한에 관한 상태를 다루는 구조체
      • ex. push 권한
728x90