클린 아키텍처와 MVVM으로 구현한 iOS 예제 클론 프로젝트입니다. 더 자세한 정보는 여기를 참조해주세요. 원본 리포지토리는 여기를 참조해주세요.
- 도메인 레이어 = 엔터티 + 유스케이스 + 리포지토리 인터페이스
- 데이터 레이어 = 리포지토리 구현 + API(네트워크) + 데이터베이스
- 프레젠테이션 레이어(MVVM) = 뷰-모델 + 뷰
Note: 도메인 레이어는 다른 레이어에도 의존하면 안됩니다(예: UIKit이나 SwiftUI, 리포지토리 구현). 프레젠테이션 레이어와 데이터 레이어만 도메인 레이어에 의존해야 합니다.
- Clean Architecture
- Advanced iOS App Architecture
- MVVM
- Data Binding using Observable without 3rd party libraries
- Dependency Injection
- Flow Coordinator
- Data Transfer Object (DTO)
- Response Data Caching
- ViewController Lifecycle Behavior
- SwiftUI and UIKit view implementations by reusing same ViewModel (at least Xcode 11 required)
- Error handling examples: in ViewModel, in Networking
- Xcode Version 11.2.1+ Swift 5.0+