diff --git a/project/Plugins/ConfigurationPlugin/ProjectDescriptionHelpers/DeploymentSettings.swift b/project/Plugins/ConfigurationPlugin/ProjectDescriptionHelpers/DeploymentSettings.swift index 6fe68446..dfc2cb67 100644 --- a/project/Plugins/ConfigurationPlugin/ProjectDescriptionHelpers/DeploymentSettings.swift +++ b/project/Plugins/ConfigurationPlugin/ProjectDescriptionHelpers/DeploymentSettings.swift @@ -11,7 +11,7 @@ public enum DeploymentSettings { /// SceneDelegate를 지원하는 iOS 15이상 버전을 요구합니다. public static let productName = "Caremeet" - public static let deployment_app_version = "1.1.0" + public static let deployment_app_version = "1.1.1" public static let deployment_iOS_version = DeploymentTargets.iOS("15.0") public static let platforms: Set = [Destination.iPad, Destination.iPhone] public static let workspace_name = "idle_workspace" diff --git a/project/Projects/App/Sources/DIAssembly/PresentationAssembly.swift b/project/Projects/App/Sources/DIAssembly/PresentationAssembly.swift index 0fceb50e..bd095e60 100644 --- a/project/Projects/App/Sources/DIAssembly/PresentationAssembly.swift +++ b/project/Projects/App/Sources/DIAssembly/PresentationAssembly.swift @@ -6,6 +6,9 @@ // import Foundation + +import ChattingFeatureInterface +import ChattingFeature import BaseFeature import RootFeature @@ -15,19 +18,27 @@ import Swinject public struct PresentationAssembly: Assembly { public func assemble(container: Container) { + // MARK: Remote config container.register(RemoteConfigService.self) { _ in DefaultRemoteConfigService() } .inObjectScope(.container) + // MARK: Router container.register(RouterProtocol.self) { _ in Router() } .inObjectScope(.container) + // MARK: Remote notification container.register(RemoteNotificationHelper.self) { _ in DefaultRemoteNotificationHelper() } .inObjectScope(.container) + + // MARK: Chatting feature + container.register(ChattingListFeatureFactory.self) { _ in + DefaultChattingListFeatureFactory() + } } } diff --git a/project/Projects/App/Tests/Empty.swift b/project/Projects/App/Tests/Empty.swift index fecc4ab4..d196bcaa 100644 --- a/project/Projects/App/Tests/Empty.swift +++ b/project/Projects/App/Tests/Empty.swift @@ -1 +1 @@ -import Foundation +import Testing diff --git a/project/Projects/Data/Project.swift b/project/Projects/Data/Project.swift index 532bd07c..5345aefa 100644 --- a/project/Projects/Data/Project.swift +++ b/project/Projects/Data/Project.swift @@ -74,6 +74,8 @@ let project = Project( sources: ["DataTests/**"], dependencies: [ D.Testing, + D.Data.Repository, + D.Data.DataSource, ], settings: .settings( configurations: IdleConfiguration.dataConfigurations @@ -83,7 +85,7 @@ let project = Project( schemes: [ Scheme.makeTestableSchemes( .target("Repository"), - testableTarget: .target("DataTests"), + testableTarget: .target("Data"), configNames: [ IdleConfiguration.debugConfigName, IdleConfiguration.releaseConfigName, diff --git a/project/Projects/Domain/Project.swift b/project/Projects/Domain/Project.swift index 48fed241..8ca2992e 100644 --- a/project/Projects/Domain/Project.swift +++ b/project/Projects/Domain/Project.swift @@ -47,6 +47,8 @@ let project = Project( // for test D.Testing, + + D.Domain, ], settings: .settings( configurations: IdleConfiguration.domainConfigurations @@ -56,7 +58,7 @@ let project = Project( schemes: [ Scheme.makeTestableSchemes( .target("Domain"), - testableTarget: .target("DomainTests"), + testableTarget: .target("Domain"), configNames: [ IdleConfiguration.debugConfigName, IdleConfiguration.releaseConfigName, diff --git a/project/Projects/Presentation/Feature/Chatting/ExampleApp/Sources/SceneDelegate.swift b/project/Projects/Presentation/Feature/Chatting/ExampleApp/Sources/SceneDelegate.swift index 03da4fc7..fe047c8f 100644 --- a/project/Projects/Presentation/Feature/Chatting/ExampleApp/Sources/SceneDelegate.swift +++ b/project/Projects/Presentation/Feature/Chatting/ExampleApp/Sources/SceneDelegate.swift @@ -7,6 +7,9 @@ import UIKit +import ChattingFeature +import Core + class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? @@ -15,12 +18,10 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { guard let windowScene = scene as? UIWindowScene else { return } -// let vc = ChattingListViewController() -// let vm = ChattingListViewModel() -// vc.bind(viewModel: vm) + let vc = DefaultChattingListFeatureFactory().createModule() window = UIWindow(windowScene: windowScene) -// window?.rootViewController = vc + window?.rootViewController = vc window?.makeKeyAndVisible() } } diff --git a/project/Projects/Presentation/Feature/Chatting/Interface/ChattingListFeatureFactory.swift b/project/Projects/Presentation/Feature/Chatting/Interface/ChattingListFeatureFactory.swift new file mode 100644 index 00000000..927ca7c9 --- /dev/null +++ b/project/Projects/Presentation/Feature/Chatting/Interface/ChattingListFeatureFactory.swift @@ -0,0 +1,15 @@ +// +// ChattingListFeatureFactory.swift +// Chatting +// +// Created by choijunios on 11/5/24. +// + +import UIKit + +public protocol ChattingListFeatureFactory { + + typealias Module = UIViewController + + func createModule() -> Module +} diff --git a/project/Projects/Presentation/Feature/Chatting/Interface/empty.swift b/project/Projects/Presentation/Feature/Chatting/Interface/empty.swift deleted file mode 100644 index e69de29b..00000000 diff --git a/project/Projects/Presentation/Feature/Chatting/Sources/ChattingList/ChattingListFeatureFactory.swift b/project/Projects/Presentation/Feature/Chatting/Sources/ChattingList/ChattingListFeatureFactory.swift new file mode 100644 index 00000000..b88e685b --- /dev/null +++ b/project/Projects/Presentation/Feature/Chatting/Sources/ChattingList/ChattingListFeatureFactory.swift @@ -0,0 +1,26 @@ +// +// ChattingListFeatureFactory.swift +// Chatting +// +// Created by choijunios on 11/5/24. +// + +import ChattingFeatureInterface +import Core + +public class DefaultChattingListFeatureFactory: ChattingListFeatureFactory { + + public init() { } + + public func createModule() -> Module { + + let viewModel: ChattingListViewModel = .init() + + // + + let viewController: ChattingListViewController = .init() + viewController.bind(viewModel: viewModel) + + return viewController + } +} diff --git a/project/Projects/Testing/Project.swift b/project/Projects/Testing/Project.swift index e91361b6..5c9ff69d 100644 --- a/project/Projects/Testing/Project.swift +++ b/project/Projects/Testing/Project.swift @@ -26,9 +26,12 @@ let project = Project( sources: ["Sources/**"], dependencies: [ + D.Presentation.BaseFeature, + D.Data.Repository, + D.Data.DataSource, - D.Presentation.BaseFeature, + D.Domain, ], settings: .settings( base: ["ENABLE_TESTABILITY": "YES"], diff --git a/project/graph.png b/project/graph.png index adb58e5e..34befdc4 100644 Binary files a/project/graph.png and b/project/graph.png differ