AppDIContainer
final class AppDIContainer
앱의 전체적인 의존성 주입을 관리하는 Container입니다.
DI Container
의 주요 특징은 각 상황에서 필요한 class를 해당 class의 init, static create 메서드를 통해 생성 후 해당 class를 return합니다.- Data 단계에 의존성을 주입하기 위한, NetworkService(UrlSession, Moya, Alamofire)..를 생성합니다.
- 각 화면에 대한 DIContainer들을 생성합니다.
-
API Key, API URL 정보 변수입니다.
Declaration
Swift
lazy var appConfiguration: AppConfiguration { get set }
-
API NetworkService 변수 입니다.
- 해당 변수는 전반적인 api 네트워크를 담당합니다.
- Infrastructure / Network -> DataTransferService protocol를 채택한 Network Service class(DefaultNetworkService)를 생성합니다.
Declaration
Swift
lazy var apiDataTransferService: DataTransferService { get set }
-
API NetworkService 변수 입니다.
- 해당 변수는 image 네트워크를 담당합니다.
- Infrastructure / Network -> DataTransferService protocol를 채택한 Network Service class(DefaultNetworkService)를 생성합니다.
Declaration
Swift
lazy var imageDataTranserService: DataTransferService { get set }
-
Login Scene DI Container를 생성합니다.
Declaration
Swift
func makeLoginSceneDIContainer() -> LoginSceneDIContainer
Return Value
LoginSceneDIContainer
-
Movies Search DI Container를 생성합니다.
- Movies Search Data 단계에서 필요한 api, image network service를 주입해줍니다.
Declaration
Swift
func makeMoviesSearchDIContainer() -> MoviesSearchDIContainer
Return Value
MoviesSearchDIContainer
-
Movies Top Rated DI Container를 생성합니다.
- Movies Top Rated Data 단계에서 필요한 api, image network service를 주입해줍니다.
Declaration
Swift
func makeMoviesTopRatedDIContainer() -> MoviesTopRatedDIContainer
Return Value
MoviesTopRatedDIContainer
-
My Page DI Container를 생성합니다.
Declaration
Swift
func makeMyPageDIContainer() -> MyPageDIContainer
Return Value
MyPageDIContainer