-
Clean ArchitectureSwift/아키텍쳐 2021. 6. 18. 18:28
- 화살표는 dependency를 의미합니다.
api -> datasource -> repository -> usecase -> viewModel -> View
<- <- <- <- <-
클린 아키텍쳐는 무엇을 제시하는가?
주요 아이디어
- 프로그램을 구성하는데는 이러한 요소들이 있고,
- 그것들은 레이어로 나뉘어 있어야 한다.
- 레이어들은 비지니스에 가까운가와 플랫폼에 가까운가를 기준으로 구분한다.
- 각 레이어 사이에는 인터페이스 분리되어 있어야 한다.
- 그리고 사용에 대한 방향은 한쪽으로만 흘러야 한다.
여기서 역방향이라고 할 수 있는 유스케이스 -> viewModel/ viewModel -> View 이렇게는 모르는 상태여야한다.
Rx와 함께
아래를 참고했다.
https://medium.com/tiendeo-tech/ios-rxswift-clean-architecture-d7e9eaa60ba
이를 바탕으로 내가 만들어본 Clean Architecture를 도입한 App Store
https://github.com/kkimin/AppStore
참고하기 좋은 예제
https://zeddios.tistory.com/1065
여기에 있는 영화 검색 앱을 보자. (https://github.com/kudoleh/iOS-Clean-Architecture-MVVM)
RxSwift - Clean Architecture
https://github.com/tuan188/MGCleanArchitecture
이게 더 괜찮은듯
https://github.com/sergdort/CleanArchitectureRxSwift
내가 이해한 바 정리
- View는 Presenter에게 load를 요청 (Presentation Layer)
UseCase를 통해 Model에게서 통신을 받음 (Domain Layer)
이때 Data는 DataStore(Repository) 에서 가져옴 (Data Layer)
728x90'Swift > 아키텍쳐' 카테고리의 다른 글
Ribs 예제 도입기 - Ribs 설치 편 (0) 2021.10.15 Ribs 에 대해서... (0) 2021.09.30 ReactorKit (0) 2021.06.18 Clean Swift (0) 2021.03.14 ios 개발 아키텍쳐 MVC, MVVM (0) 2019.11.20