Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- SWIFT
- Human interface guide
- 애니메이션
- collectionview
- swiftUI
- rxswift
- Clean Code
- Observable
- combine
- 리펙토링
- RxCocoa
- clean architecture
- swift documentation
- 리팩토링
- UICollectionView
- tableView
- Protocol
- map
- 스위프트
- ribs
- 리펙터링
- Xcode
- 클린 코드
- MVVM
- ios
- uiscrollview
- Refactoring
- HIG
- uitableview
- UITextView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] Clean swift (VIP) 패턴 (기본 개념) 본문
Clean swift
- MVVM의 단점 보완: 모든 부분에서 Reactiveness가 필요하지 않음
- VIPER의 단점 보완: 사용자의 액션, 모델 업데이트, 라우팅이 presenter에 몰려있음(massive)
- Presenter: Interactor에서 발생되고 비지니스 로직과 관련있지만 UIkit과 관련없는 UI를 가짐
Clean Swift의 VIP 주기
- VIP(View Controller, Interactor, Presenter)
- VIPER의 제어 흐름 문제 해결(양방향으로 로직이 순환해서 순환참조에 의한 메모리 누수): 단방향 제어 흐름
- MVVM의 reactiveness 문제 해결: VIP cycle로 인해 interactor에 있는 클로저 기반 비동기 메소드들이 주기적으로 업데이트를 제공할 수 있기 때문
- data flow
1) view 이벤트가 시작 -> Interactor 메소드를 실행하여 비즈니스로직 실행
2) Interactor에서 비즈니스로직을 처리 -> 결과를 Presenter에게 전송
3) Presenter에서 Interactor에서 받은 결과에 대한 UI처리를 View에 가시
* VIPER와는 다르게 액션에 대한 비즈니스로직을 Presenter를 통하지 않고 바로 Interactror로 요청해서 변화를 줌
Router와 Worker
- Router: navigation
- Worker: 복잡한 비즈니스 로직은 Worker에서 수행하도록
* 참고:
zonneveld.dev/the-clean-swift-architecture-explained/
github.com/Clean-Swift/CleanStore
basememara.com/swift-clean-architecture/
'Architecture (swift)' 카테고리의 다른 글
[iOS - swift] Mixin 패턴(mix-in), Traits 패턴 (0) | 2021.12.17 |
---|---|
[Architecture] Coordinator pattern, XCoordinator 프레임워크 [응용], PostTaskManager (0) | 2020.10.17 |
[Architecture] Coordinator pattern, XCoordinator 프레임워크 [개념] (0) | 2020.10.01 |
[Architecture] RxSwift, MVVM 구조 코드 (2) | 2020.09.26 |
[Clean Architecture] 4단계의 layer로 구성된 앱의 구조 (0) | 2020.09.19 |
Comments