일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- swiftUI
- 애니메이션
- ribs
- clean architecture
- MVVM
- Clean Code
- 스위프트
- UICollectionView
- 리펙터링
- 리팩토링
- 리펙토링
- HIG
- swift documentation
- tableView
- Human interface guide
- SWIFT
- Observable
- collectionview
- ios
- rxswift
- Refactoring
- Xcode
- RxCocoa
- uiscrollview
- 클린 코드
- uitableview
- combine
- map
- Protocol
- UITextView
- Today
- Total
목록CleanArchitecture (2)
김종권의 iOS 앱 개발 알아가기
Domain Layer : 영화 검색 결과 성공한 쿼리를 저장하는 Entities, SearchMoviesUseCase, DIP를 위한 프로토콜 Repository Protocol위치가 UseCase에 존재 UseCase에 주입: 비즈니스로직에 필요한 Repository UseCase끼리는 서로 의존 가능 protocol SearchMoviesUseCase { func execute(requestValue: SearchMoviesUseCaseRequestValue, completion: @escaping (Result) -> Void) -> Cancellable? } final class DefaultSearchMoviesUseCase: SearchMoviesUseCase { private let mov..
MVVM 구조 Presentation Layer: View + ViewModel ViewModel은 UI이벤트가 발생하면 '무엇'을 해야하는지 알고, UseCase를 요청 후 View에 업데이트 알림 역할 Domain Layer: UseCase + Model 비즈니스 로직 계층 저장소에 관한 Interface가 포함 다른 프로젝트에서도 재사용 될 수 있도록, 다른 부분에 의존하지 않고 의존을 받는 상태 (Repository): Domain과 Data의 인터페이스 역할 protocol Data Layer: DataStore + Entity Presenter(ViewModel) vs UseCase ViewModel에 비즈니스 로직을 넣는 경우는 잘못된 접근 비즈니스 로직은 UseCase에 존재 ViewMod..