일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Human interface guide
- Protocol
- uitableview
- rxswift
- 리펙토링
- collectionview
- UICollectionView
- 애니메이션
- 스위프트
- Observable
- ios
- HIG
- 클린 코드
- UITextView
- tableView
- combine
- 리펙터링
- clean architecture
- swift documentation
- ribs
- Clean Code
- RxCocoa
- SWIFT
- 리팩토링
- uiscrollview
- Xcode
- Refactoring
- map
- MVVM
- Today
- Total
목록Coordinator (6)
김종권의 iOS 앱 개발 알아가기
0. 코드로 알아보는 SOLID - 클래스 다이어그램 필수 표현 1. 코드로 알아보는 SOLID - SRP(Single Responsibility Principle) 단일 책임 원칙 2. 코드로 알아보는 SOLID - OCP(Open Close Principle) 개방 폐쇄 원칙 3. 코드로 알아보는 SOLID - LSP(Liskov Substitution Principle) 리스코프 치환 원칙 4. 코드로 알아보는 SOLID - ISP(Interface Segregation Principle) 인터페이스 분리 원칙 5. 코드로 알아보는 SOLID - DIP(Dependency Inversion Principle, testable) 의존성 역전 원칙 6. 코드로 알아보는 SOLID - Coordinato..
AppDelegate에서 첫 화면으로 AppDelegate는 앱 첫 시작화면으로 이동하는 AppFlowCoordinator를 소유 Coordinator를 통해 첫 시작화면으로 이동 Coordinator에서는 AppFlowDIContainer를 통해 이동하려는 화면에 해당하는 DIContainer 생성 > 이동하려는 화면의 Coordinator를 획득 > 이동하려는 화면의 coordinator에 정의되어 있는 start()함수를 통해 화면 전환 Coordinator 사용 방법 Coordinator를 사용하는 이유: ViewModel간 의존관계를 Coordinator로 끊은 상태 > ViewModel이 서로 의존하고 있지 않으므로 특정 ViewModel을 수정하면 Coordinator만 변경하면 되므로 상..
MVC with Coordinator 핵심 MVC는 Coordinator의 존재를 모르며, 어느 화면으로 이동하는지 모르는 상태 ViewController에서 routeToLogin과 같이 호출하면 안되도, finishLoad()와 같이 호출 Coordinator를 자유롭게 갈아 끼울수 있는 모듈화 구조 DI는 Coordinator에서 실행 MVC 2개 준비 FirstViewController SecondViewController 코드 Coordinator 적용 Coordinator 추가 import UIKit protocol FirstControllerDelegate: AnyObject { func run() func onAction() } final class Coordinator: FirstCont..
MVC 구성 View는 Controller와 상호작용 하지만, Controller의 인터페이스를 알지 못하며 직접 호출하지 않는 구조 MVC끼리의 통신 MVC 애플의 지향: 최소한의 구성 요소만 포함 old MVC의 한계: Massive ViewController, DI 프로그래밍 x, 프로토콜 지향 프로그래밍 x 한계 극복 Delegate, DataSource를 Model에 두고, ViewController 비즈니스 로직을 간소화 Coordinator가 포함된 MVC패턴 MVC의 원칙 Model: 앱의 데이터 네트워크 코드: 네트워크 통신은 되도록 단일 클래스 사용 지속성 코드: DB, Core Data 코드 파싱: codable Manager 클래스 (=Wrapper class) DataSource,..
* XCoordinator를 이용하여 모든 화면에서 NavigationController하나를 공유하며 화면전환 하는 방법 + 딥링크를 고려한 코드 스타일 적용 Xcoordinator개념편은 여기 참고 사전 지식 - XCoordinator에서는 strongRouter와 UnownedRouter가 있는데, 자식들을 계속 참조하며 잃지 않으려면 strongRouter로 사용 단, push와 같이 Transition을 반환하게 되면, strongRouter이후에 unownedRouter로 전달해도 참조를 잃지 않음 - Coordinator에서 다른 Coordinator로 이동 시키려면, addChild(_:) -> Transition함수를 정의하여 이 값을 리턴해야지만 deeplink가 가능한 구조 addCh..
Coordinator란 - 화면 전환하는 역할을 "Coordinator"라는 것에 부여 - viewModel에서 trigger를 통해 화면전환을 요청 Coordinator의 이점 화면간의 연결이 쉬움 DI이 쉬워짐 (의존성 주입을 통해 소크 코드 내부가 아닌 외부에 정의하도록 하여 의존성을 분리시키는 것) ViewController에서 네비게이션 코드 삭제 XCoordinator사용 XCoordinator프레임워크 import // pod install pod 'XCoordinator' // import import XCoordinator Coordinator가 될 클래스 정의 enum을 사용하여 화면에 전달될 인수(dependencies)를 함께 전달 NavigiationCoorinator 클래스 작성..