Model = 앱에서 사용할 데이터
Entity = 서버로부터 가져올 데이터
Repository = Entity 전달
Service = Repository를 통해 Entity -> Model 변환 (state, logic 포함한 핵심)
ViewModel = Service를 통해 Model -> viewModel 변환
ViewController = ViewModel을 통해 화면 세팅
Interactor - Rx subscription 수행 / 상태 변경 & 데이터 저장 위치 & 다른 RIB 붙힐 위치 결정 /
Router - Interactor를 통해 하위 RIBs의 연결 및 분리 변환 (RIBs간의 직접 연결 대신 reactive communication
Builder - RIB의 각 구성요소를 위한 Builder 인스턴스화
Component - RIB 외부 종속성에 대한 접근 제공 / 자체 종속성 소유 / 다른 RIB에서 이에 대한 접근 제어 (부모 RIB의 Component -> 자식 RIB Builder에 주입)
Presenter(Optional) - Buisness Model을 ViewModel 또는 그 반대로 변환. 생략시 View or Interactor의 책임
View(Controller)(Optional) - UI Build / Update
Link : https://github.com/uber/RIBs
- async throws
- try await
- Continuation
- AsyncSequence / AsyncStream
- Actor
- Sendable
- Publishers - 하나 이상의 대상에게 시간이 지남에 따라 값을 방출할 수 있는 유형
- Operators - Publisher protocol로 선언된 method이며, 선언된 Publishers와 동일하거나 새로운 Publishers로 반환
- Subscribers - 모든 구독은 subscriber와 함께 종료됨. Subscribers는 일반적으로 방출된 값 또는 완료 이벤트를 통해 "무언가"를 하는 역할
Concurrency > 비동기, 병렬 작업을 위한 기능
Combine > 비동기 이벤트로 변경되는 값의 변화에 대응하기 위한 프레임워크