MoviesSearchDIContainer

final class MoviesSearchDIContainer : MoviesSearchFlowCoordinatorDependencies

Movies Search 화면에 대한 의존성 주입을 관리하는 Container입니다.

Dependencies

  • MovieSearch 화면에서 필요한 Service를 구조체로 갖고 해당 구조체는 ApiDataTransferService, ImageDataTransferService를 갖고있습니다.

    • 해당 DependenciesAppDIContainer에서 makeMoviesSearchDIContainer() 메서드를 실행할 때 주입받습니다.
    See more

    Declaration

    Swift

    struct Dependencies
  • AppDIContainer에서 주입한 Service를 갖고있는 구조체 변수 입니다.

    Declaration

    Swift

    private let dependencies: Dependencies

Persistent Storage

  • Local DB에 저장된 Movies queries 저장소를 불러오는 protocol service 입니다.

    • 해당 service는 MoviesSearch에서만 수행하기 때문에 App DI Container에서 생성하지 않고, MoviesSearhDIContainer에서 직접 생성합니다.

    Declaration

    Swift

    lazy var moviesQueriesStorage: MoviesQueriesStorage { get set }
  • Local DB에 저장된 Movies Response Cahce를 활용하기 위한 Service입니다.

    • 해당 service는 MoviesSearch에서만 수행하기 때문에 App DI Container에서 생성하지 않고, MoviesSearhDIContainer에서 직접 생성합니다.

    Declaration

    Swift

    lazy var moviesResponseCache: MoviesResponseStorage { get set }
  • Declaration

    Swift

    init(dependencies: Dependencies)

Use Cases - Domain

Repositories - Data

  • 영화를 검색하는 Repository를 불러오는 메서드입니다.

    • 해당 Repo는 apiDataTransferServicecache Local DB 필요하며, 해당 Service들을 주입받고 생성합니다.

    Declaration

    Swift

    func makeMoviesRepository() -> MoviesSearchRepository

    Return Value

    DIP 원칙을 준수하는 MoviesSearchRepository Protocol를 Return합니다.

  • 영화의 최근 검색 결과를 저장한 데이터를 보여주는 Repository를 불러오는 메서드입니다.

    • 해당 Repo는 moviesQueriesStorage 활용이 필요하며, 해당 Service를 주입받고 생성합니다.

    Declaration

    Swift

    func makeMoviesQueriesRepository() -> MoviesQueriesRepository

    Return Value

    DIP 원칙을 준수하는 MoviesQueriesRepository Protocol를 Return합니다.

  • 영화 Poster Image를 불러오는 Repository를 불러오는 메서드입니다.

    • 해당 Repo는 imageDataTransferService 활용이 필요하며, 해당 Service를 주입받고 생성합니다.

    Declaration

    Swift

    func makePosterImagesRepository() -> PosterImagesRepository

    Return Value

    DIP 원칙을 준수하는 PosterImagesRepository Protocol를 Return합니다.

Movie List - Presentation

Movie Details - Presentation

Movies Queries Suggestions List - Presentation

Flow Coordinators - Presentation