iOS Development Guide

VIPER 계열 아키텍처 전달 정리

화면 구조 분리, 테스트 전략, 동시성 안정성 관점에서 실무 적용 포인트를 정리한 문서다.

학습 날짜

기록 없음

아키텍처 판단

권장 호출 흐름

Router + Builder 예시

VC2에서 VC1로 이동할 때는 VC2 라우터가 VC1 Builder를 통해 모듈을 만든 뒤 push한다.
protocol VC1Buildable {
    func build(input: VC1Input) -> UIViewController
}

struct VC1Input {
    let userID: String
}

final class VC2Router {
    weak var viewController: UIViewController?
    private let vc1Builder: VC1Buildable

    init(vc1Builder: VC1Buildable) {
        self.vc1Builder = vc1Builder
    }

    func routeToVC1(userID: String) {
        let vc1 = vc1Builder.build(input: VC1Input(userID: userID))
        viewController?.navigationController?.pushViewController(vc1, animated: true)
    }
}

테스트 전략

동시성 보강 포인트

Q

관련 문서: iOS 개발 상식 100선