본문 바로가기

MVVM3

[SwiftUI] MVI Architecture 적용해보기 1️⃣ MVI 등장 배경 / 필요성 SwiftUI에서 MVVM..? 1. MVVM에서의 ViewModel의 역할 View의 이벤트와 그에 대한 액션을 바인딩 View(VC)에서 어떤 이벤트를 받은 경우, 이벤트에 대한 처리 + 그 결과로 수행할 액션(UI 업데이트 등)을 View에 전달 SwiftUI에서 자체적으로 제공해주는 Binding을 통해 이벤트에 대한 처리를 한다면 비교적 간단하게 처리할 수 있고, MVVM에서 ViewModel의 역할이 크게 줄어들게 됩니다. 2. MVVM의 양방향 데이터 플로우 MVVM은 아래와 같이 양방향 데이터 플로우를 제공합니다. 하지만 SwiftUI는 단방향 데이터 플로우를 기반으로 하기 때문에, 양방향 데이터 플로우인 MVVM은 조금 적합하지 않아보였습니다. 2️⃣ .. 2023. 3. 14.
[RxSwift] 에러 핸들링 RxSwift + MVVM + Clean Architecture로 구성된 프로젝트를 예시로 작성했읍니다. 1. 원하는 error 을 enum형으로 정의 rx에서는 onError를 사용해서 error를 전달하는데, onError 안에는 Error 타입을 받기 때문에 Error 프로토콜을 채택한 APIError를 생성해줬습니다. // MARK: - APIError import Foundation enum APIError: Error, Equatable { case pathErr case serverErr case userInfoErr case decodingErr case duplicatedUserErr(userId: [Int]) var type: String { switch self { case .path.. 2023. 2. 9.
[Swift] RxSwift에서 Combine으로 바꿔보기 Combine이 몰까 .. 몰까 ..... 하다가 .. 먼저 RxSwift + MVVM 으로 구현한 뒤 그걸 Combine으로 바꿔보자 ! 라는 생각을 했습니다 간략하게 많이들 이런 조합으로 사용하는 MVVM과 RxSwift에 대해 간단하게 보면,, MVVM = Model + View + ViewModel MVVM + RxSwift 위의 조합에서는 사용자에게 보여지는 영역과 그에 대한 반응을 Rx를 사용하여 처리하게 된답니다 대강 흐름을 보면.. 아래와 같이 진행될겁니다.. 🏃‍♀️ View에서 이벤트 발생 -> ViewModel에게 input 전달 -> ViewModel에서 그 input에 대한 반응으로 어떤 작업을 수행 -> ViewModel의 output으로 저장 -> View에선 그 output에.. 2022. 9. 26.