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
- Observable
- uiscrollview
- Xcode
- 리팩토링
- ribs
- map
- UITextView
- 애니메이션
- HIG
- 클린 코드
- swift documentation
- clean architecture
- combine
- UICollectionView
- MVVM
- uitableview
- 스위프트
- tableView
- 리펙토링
- Protocol
- Human interface guide
- Refactoring
- SWIFT
- ios
- 리펙터링
- rxswift
- collectionview
- RxCocoa
- Clean Code
- swiftUI
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 6-2) RIBs 구조 Todo 앱 만들기 (detach child) 본문
Architecture (swift)/RIBs
[iOS - swift] 6-2) RIBs 구조 Todo 앱 만들기 (detach child)
jake-kim 2021. 4. 29. 23:172) Todo 앱 구조 LoggedIn RIB
이전까지 진행된 점 (child RIB 추가)
|
view less인 LoggedIn RIB 추가
- view less RIB의 child에서, parent의 ViewController를 사용해야 하므로, view less RIB에 ViewController를 따로 주입
- RootComponent+LoggedIn.swift에 있는 RootComponent에 주입
- (오류) 주입 정의는 RootBuilder.swift의 RootComponent에서 let rootViewController: RootViewController추가, init 적용
- (오류) RootComponent에 대한 init이 변경됐으므로, build()함수 내에도 적용, 여기서 RootViewController객체 생성하여 주입
- (오류) RootViewController는 현재 LoggedInViewControllable 성격을 갖고 있지 않으므로 extension으로 추가
- 코드
Child RIB에서 받을 의존성 정의
- Component 개념: Builder.swift에 있는 (p)Dependency와 Component 사용처
- (p)Dependency는 ParentComponent+ChildDependency와 연관이 있으며, parent의 Component에 있는 값을 전달할 때 사용
- Component 클래스에만 의존성 정의하는 경우: Parent의 Component에는 존재하지 않지만 새로운 데이터를 받고싶은 경우 사용
- email, password는 parent의 Component에 존재하지 않았기 때문에 LoggedInDependency가 아닌 LoggedInComponent에만 정의
- (오류) LoggedInBuilder의 (p)LoggedInBuildable에 방금 추가한 의존성 내용 적용
- (오류) LggedInBuiler의 build 수정
- 코드
RouteToAnotherChild (detach 후 attach)
- detach 준비
- RootRouter의 (p)RootViewControllable에 dismiss추가
- (오류) RootViewController 내부에 dismiss 구현
- RouteToLoggedIn
- RootInteractor의 (p)RootRouting에 routeToLoggedIn 함수 선언
- (오류) RootRouter에 routeToLoggedIn 구현
- (오류) LoggedInBuilder.build(interactor)시 interactor는 LoggedInBuilder의 성격을 가지고 있지 않으므로 RootRouter의 RootInteractable에 LoggedInListener 성격 추가
- RootInteractor에 didLogin에서 routeToLoggedIn을 호출하도록 수정
- 코드
* 정리 - view less RIB, DI, route
|
아래는 내용 중복: TodoList, DetailContents RIB 추가
Todo List RIB 추가
Viewless RIB이 해제될 때 child RIB dismiss 처리
- viewless RIB 생성하는 template에서 자동으로 Interactor의 willResignActive()에서 cleanupViews()이 불리고 있는 형태
- viewlessRouter에서 cleanupViews 부분만 구현해주면 처리 끝
- 코드
'Architecture (swift) > RIBs' 카테고리의 다른 글
[iOS - swift] 6-3) RIBs 구조 Todo 앱 만들기 (Rx stream) (1) | 2021.04.30 |
---|---|
[iOS - swift] 6-1) RIBs 구조 Todo 앱 만들기 (attach child, Listener Interface) (0) | 2021.04.28 |
[iOS - swift] 5. RIBs 프로젝트 초기 세팅 (with cocoapod) (0) | 2021.04.28 |
[iOS - swift] 4-6) RIBs 튜토리얼 (Deeplinking, Workflows, Actionable item) (0) | 2021.04.26 |
[iOS - swift] 4-5) RIBs 튜토리얼 (Dependency Injection, Rx Stream) (0) | 2021.04.22 |
Comments