MoviesSearchDIContainer
final class MoviesSearchDIContainer : MoviesSearchFlowCoordinatorDependencies
Movies Search 화면에 대한 의존성 주입을 관리하는 Container입니다.
-
MovieSearch 화면에서 필요한 Service를 구조체로 갖고 해당 구조체는
ApiDataTransferService,ImageDataTransferService를 갖고있습니다.- 해당
Dependencies는AppDIContainer에서makeMoviesSearchDIContainer()메서드를 실행할 때 주입받습니다.
Declaration
Swift
struct Dependencies - 해당
-
AppDIContainer에서 주입한 Service를 갖고있는 구조체 변수 입니다.
Declaration
Swift
private let dependencies: Dependencies
-
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 Case입니다.
Declaration
Swift
func makeSearchMoviesUseCase() -> SearchMoviesUseCaseReturn Value
Domain의 Search Movies Use Case를 Return 합니다.
-
영화의 검색 결과를 불러오는 Use Case입니다.
- 해당 Use Case는
DefaultMoviesQueryListViewModel에서 구체화 됩니다.
Declaration
Swift
func makeFetchRecentMovieQueriesUseCase( requestValue: FetchRecentMovieQueriesUseCase.RequestValue, completion: @escaping (FetchRecentMovieQueriesUseCase.ResultValue) -> Void ) -> UseCaseParameters
requestValueQueries의 개수를 나타냅니다.
completionQueries의 개수를 받고나서 나온 결과를 받습니다.
Return Value
FetchRecentMovieQueriesUseCase클래스를 Return합니다. - 해당 Use Case는
-
Declaration
Swift
func makePosterImageUseCase() -> PosterImagesUseCase
-
영화를 검색하는 Repository를 불러오는 메서드입니다.
- 해당 Repo는
apiDataTransferService와cache Local DB필요하며, 해당 Service들을 주입받고 생성합니다.
Declaration
Swift
func makeMoviesRepository() -> MoviesSearchRepositoryReturn Value
DIP 원칙을 준수하는
MoviesSearchRepositoryProtocol를 Return합니다. - 해당 Repo는
-
영화의 최근 검색 결과를 저장한 데이터를 보여주는 Repository를 불러오는 메서드입니다.
- 해당 Repo는
moviesQueriesStorage활용이 필요하며, 해당 Service를 주입받고 생성합니다.
Declaration
Swift
func makeMoviesQueriesRepository() -> MoviesQueriesRepositoryReturn Value
DIP 원칙을 준수하는
MoviesQueriesRepositoryProtocol를 Return합니다. - 해당 Repo는
-
영화 Poster Image를 불러오는 Repository를 불러오는 메서드입니다.
- 해당 Repo는
imageDataTransferService활용이 필요하며, 해당 Service를 주입받고 생성합니다.
Declaration
Swift
func makePosterImagesRepository() -> PosterImagesRepositoryReturn Value
DIP 원칙을 준수하는
PosterImagesRepositoryProtocol를 Return합니다. - 해당 Repo는
-
Movie Search Scene View Controller를 불러오는 메서드입니다.
Declaration
Swift
func makeMoviesSearchViewController( actions: MoviesSearchViewModelActions) -> MoviesSearchViewControllerParameters
actionsflow coordinator에서 활용되는 actions 구조체입니다. 이는 ViewModel을 만드는 메서드에 직접 주입합니다.
Return Value
MoviesListViewController를 Return 합니다. -
Movie Search View Model를 불러오는 메서드입니다.
Declaration
Swift
private func makeMoviesListViewModel(actions: MoviesSearchViewModelActions) -> MoviesSearchViewModelParameters
actionsflow coordinator에서 활용되는 actions 구조체입니다.
Return Value
MoviesListViewModelReturn합니다.
-
Movie Detail View Controller를 불러오는 메서드입니다.
Declaration
Swift
func makeMoviesDetailsViewController(movie: MovieWhenSearch) -> MovieDetailsViewControllerParameters
movie클릭된 데이터,
MovieWhenSearchDomain의 Entity를 파라미터로 받습니다. 해당 구조체는 Detail View Model에 주입합니다.Return Value
MovieDetailsViewController를 Return합니다. -
Movie Detail View Model를 불러오는 메서드입니다.
Declaration
Swift
private func makeMoviesDetailViewModel(movie: MovieWhenSearch) -> MovieDetailsViewModelParameters
movie클릭된 데이터,
MovieWhenSearchDomain의 Entity를 파라미터로 받습니다.Return Value
MovieDetailsViewModel를 Return합니다.
-
Movie Query List View Controller를 불러오는 메서드입니다.
Declaration
Swift
func makeMoviesQueriesSuggestionsListViewController(didSelect: @escaping MoviesQueryListViewModelDidSelectAction) -> MoviesQueriesTableViewControllerParameters
didSelecttypealias
MoviesQueryListViewModelDidSelectAction를 파라미터로 받습니다. 해당 액션은 (MovieQuery) -> Void 클로저 함수이며, 이는DefaultMoviesListViewModel의update메서드 입니다.Return Value
MoviesQueriesTableViewController를 Return합니다. -
Movie Query List View Model를 불러오는 메서드입니다.
Declaration
Swift
func makeMoviesQueryListViewModel(didSelect: @escaping MoviesQueryListViewModelDidSelectAction) -> MoviesQueryListViewModelParameters
didSelecttypealias
MoviesQueryListViewModelDidSelectAction를 파라미터로 받습니다. 해당 액션은 (MovieQuery) -> Void 클로저 함수이며, 이는DefaultMoviesListViewModel의update메서드 입니다.Return Value
MoviesQueryListViewModel를 Return합니다.
-
MoviesSearchFlowCoordinator를 불러오는 메서드입니다.
- 해당 함수는
AppFlowCoordinator에서 실행합니다.
Declaration
Swift
func makeMovieSearchFlowCoordinator(navigationController: UINavigationController) -> MoviesSearchFlowCoordinatorParameters
navigationController해당 화면의
UINavigationController를 파라미터로 받습니다.Return Value
MoviesSearchFlowCoordinator를 Return합니다. - 해당 함수는
MoviesSearchDIContainer Class Reference