Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
171 changes: 171 additions & 0 deletions MLS/MLS.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@
08F7AA012F86745C00EF5C06 /* MLSAuthFeature in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7AA022F86745C00EF5C06 /* MLSAuthFeature */; };
08F7AA032F86745C00EF5C06 /* MLSAuthFeatureInterface in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7AA042F86745C00EF5C06 /* MLSAuthFeatureInterface */; };
08F7AA052F86745C00EF5C06 /* MLSAuthFeatureTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7AA062F86745C00EF5C06 /* MLSAuthFeatureTesting */; };
08F7DC802F9DEA8100EF5C06 /* MLSRecommendationFeature in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7DC812F9DEA8100EF5C06 /* MLSRecommendationFeature */; };
08F7DC822F9DEA8100EF5C06 /* MLSRecommendationFeatureInterface in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7DC832F9DEA8100EF5C06 /* MLSRecommendationFeatureInterface */; };
08F7DC842F9DEA8100EF5C06 /* MLSCore in Frameworks */ = {isa = PBXBuildFile; productRef = 08F7DC852F9DEA8100EF5C06 /* MLSCore */; };
770ADB1F2E433EDA00270506 /* RxKeyboard in Frameworks */ = {isa = PBXBuildFile; productRef = 770ADB1E2E433EDA00270506 /* RxKeyboard */; };
772199F22E0E7EC800A7B58C /* AuthFeatureInterface.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 772199F12E0E7EC800A7B58C /* AuthFeatureInterface.framework */; };
772199F32E0E7EC800A7B58C /* AuthFeatureInterface.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 772199F12E0E7EC800A7B58C /* AuthFeatureInterface.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
Expand Down Expand Up @@ -139,6 +142,7 @@
08DA58A62E1E5BE3009097A6 /* DictionaryFeature.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DictionaryFeature.framework; sourceTree = BUILT_PRODUCTS_DIR; };
08DA58A92E1E5BEB009097A6 /* DictionaryFeatureInterface.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DictionaryFeatureInterface.framework; sourceTree = BUILT_PRODUCTS_DIR; };
08F7A9232F86745C00EF5C06 /* MLSAuthFeatureExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MLSAuthFeatureExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
08F7DC612F9DEA8000EF5C06 /* MLSRecommendationFeatureExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MLSRecommendationFeatureExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
772199F12E0E7EC800A7B58C /* AuthFeatureInterface.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AuthFeatureInterface.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7721A5032E0EE7AE00A7B58C /* BaseFeature.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BaseFeature.framework; sourceTree = BUILT_PRODUCTS_DIR; };
77660AD12DD0D361007A4EF3 /* KakaoConfig.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = KakaoConfig.xcconfig; sourceTree = "<group>"; };
Expand Down Expand Up @@ -170,6 +174,13 @@
);
target = 08F7A9222F86745C00EF5C06 /* MLSAuthFeatureExample */;
};
08F7DC722F9DEA8100EF5C06 /* Exceptions for "MLSRecommendationFeatureExample" folder in "MLSRecommendationFeatureExample" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Info.plist,
);
target = 08F7DC602F9DEA8000EF5C06 /* MLSRecommendationFeatureExample */;
};
77FA688B2F72C7380064B6EB /* Exceptions for "MLSDesignSystemExample" folder in "MLSDesignSystemExample" target */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Expand All @@ -196,6 +207,14 @@
path = MLSAuthFeatureExample;
sourceTree = "<group>";
};
08F7DC622F9DEA8000EF5C06 /* MLSRecommendationFeatureExample */ = {
isa = PBXFileSystemSynchronizedRootGroup;
exceptions = (
08F7DC722F9DEA8100EF5C06 /* Exceptions for "MLSRecommendationFeatureExample" folder in "MLSRecommendationFeatureExample" target */,
);
path = MLSRecommendationFeatureExample;
sourceTree = "<group>";
};
77BEB0412DBA84B0002FFCFC /* MLSTests */ = {
isa = PBXFileSystemSynchronizedRootGroup;
path = MLSTests;
Expand Down Expand Up @@ -257,6 +276,16 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
08F7DC5E2F9DEA8000EF5C06 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
08F7DC802F9DEA8100EF5C06 /* MLSRecommendationFeature in Frameworks */,
08F7DC822F9DEA8100EF5C06 /* MLSRecommendationFeatureInterface in Frameworks */,
08F7DC842F9DEA8100EF5C06 /* MLSCore in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
77BEB03D2DBA84B0002FFCFC /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -360,6 +389,7 @@
77BEB0412DBA84B0002FFCFC /* MLSTests */,
77FA687B2F72C7360064B6EB /* MLSDesignSystemExample */,
08F7A9242F86745C00EF5C06 /* MLSAuthFeatureExample */,
08F7DC622F9DEA8000EF5C06 /* MLSRecommendationFeatureExample */,
084A25312DB93A5400C395C0 /* Frameworks */,
087D3EE92DA7972C002F924D /* Products */,
);
Expand All @@ -372,6 +402,7 @@
77BEB0402DBA84B0002FFCFC /* MLSTests.xctest */,
77FA687A2F72C7360064B6EB /* MLSDesignSystemExample.app */,
08F7A9232F86745C00EF5C06 /* MLSAuthFeatureExample.app */,
08F7DC612F9DEA8000EF5C06 /* MLSRecommendationFeatureExample.app */,
);
name = Products;
sourceTree = "<group>";
Expand Down Expand Up @@ -439,6 +470,31 @@
productReference = 08F7A9232F86745C00EF5C06 /* MLSAuthFeatureExample.app */;
productType = "com.apple.product-type.application";
};
08F7DC602F9DEA8000EF5C06 /* MLSRecommendationFeatureExample */ = {
isa = PBXNativeTarget;
buildConfigurationList = 08F7DC732F9DEA8100EF5C06 /* Build configuration list for PBXNativeTarget "MLSRecommendationFeatureExample" */;
buildPhases = (
08F7DC5D2F9DEA8000EF5C06 /* Sources */,
08F7DC5E2F9DEA8000EF5C06 /* Frameworks */,
08F7DC5F2F9DEA8000EF5C06 /* Resources */,
);
buildRules = (
);
dependencies = (
);
fileSystemSynchronizedGroups = (
08F7DC622F9DEA8000EF5C06 /* MLSRecommendationFeatureExample */,
);
name = MLSRecommendationFeatureExample;
packageProductDependencies = (
08F7DC812F9DEA8100EF5C06 /* MLSRecommendationFeature */,
08F7DC832F9DEA8100EF5C06 /* MLSRecommendationFeatureInterface */,
08F7DC852F9DEA8100EF5C06 /* MLSCore */,
);
productName = MLSRecommendationFeatureExample;
productReference = 08F7DC612F9DEA8000EF5C06 /* MLSRecommendationFeatureExample.app */;
productType = "com.apple.product-type.application";
};
77BEB03F2DBA84B0002FFCFC /* MLSTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 77BEB0482DBA84B0002FFCFC /* Build configuration list for PBXNativeTarget "MLSTests" */;
Expand Down Expand Up @@ -505,6 +561,9 @@
08F7A9222F86745C00EF5C06 = {
CreatedOnToolsVersion = 26.1.1;
};
08F7DC602F9DEA8000EF5C06 = {
CreatedOnToolsVersion = 26.1.1;
};
77BEB03F2DBA84B0002FFCFC = {
CreatedOnToolsVersion = 16.2;
TestTargetID = 087D3EE72DA7972C002F924D;
Expand Down Expand Up @@ -567,6 +626,7 @@
77BEB03F2DBA84B0002FFCFC /* MLSTests */,
77FA68792F72C7360064B6EB /* MLSDesignSystemExample */,
08F7A9222F86745C00EF5C06 /* MLSAuthFeatureExample */,
08F7DC602F9DEA8000EF5C06 /* MLSRecommendationFeatureExample */,
);
};
/* End PBXProject section */
Expand All @@ -589,6 +649,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
08F7DC5F2F9DEA8000EF5C06 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
77BEB03E2DBA84B0002FFCFC /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -641,6 +708,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
08F7DC5D2F9DEA8000EF5C06 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
77BEB03C2DBA84B0002FFCFC /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -937,6 +1011,82 @@
};
name = Release;
};
08F7DC742F9DEA8100EF5C06 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = W5QTRMS954;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MLSRecommendationFeatureExample/Info.plist;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
Comment thread
dongglehada marked this conversation as resolved.
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.donggle.MLS.RecommendationFeatureExample;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = MLSRecommendationFeatureProvisioningProfileDev;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
08F7DC752F9DEA8100EF5C06 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = W5QTRMS954;
ENABLE_USER_SCRIPT_SANDBOXING = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = MLSRecommendationFeatureExample/Info.plist;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
INFOPLIST_KEY_UIMainStoryboardFile = Main;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 26.1;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.donggle.MLS.RecommendationFeatureExample;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = MLSRecommendationFeatureProvisioningProfile;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
SWIFT_APPROACHABLE_CONCURRENCY = YES;
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
77BEB0462DBA84B0002FFCFC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
Expand Down Expand Up @@ -1081,6 +1231,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
08F7DC732F9DEA8100EF5C06 /* Build configuration list for PBXNativeTarget "MLSRecommendationFeatureExample" */ = {
isa = XCConfigurationList;
buildConfigurations = (
08F7DC742F9DEA8100EF5C06 /* Debug */,
08F7DC752F9DEA8100EF5C06 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
77BEB0482DBA84B0002FFCFC /* Build configuration list for PBXNativeTarget "MLSTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
Expand Down Expand Up @@ -1203,6 +1362,18 @@
isa = XCSwiftPackageProductDependency;
productName = MLSAuthFeatureTesting;
};
08F7DC812F9DEA8100EF5C06 /* MLSRecommendationFeature */ = {
isa = XCSwiftPackageProductDependency;
productName = MLSRecommendationFeature;
};
08F7DC832F9DEA8100EF5C06 /* MLSRecommendationFeatureInterface */ = {
isa = XCSwiftPackageProductDependency;
productName = MLSRecommendationFeatureInterface;
};
08F7DC852F9DEA8100EF5C06 /* MLSCore */ = {
isa = XCSwiftPackageProductDependency;
productName = MLSCore;
};
770ADB1E2E433EDA00270506 /* RxKeyboard */ = {
isa = XCSwiftPackageProductDependency;
package = 770ADB1D2E433EDA00270506 /* XCRemoteSwiftPackageReference "RxKeyboard" */;
Expand Down
3 changes: 3 additions & 0 deletions MLS/MLS.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ public extension CardList {
rankTag.isHidden = true
badge.update(style: type)
case .recommended(let rank):
iconButton.isHidden = true
iconButton.isHidden = false
dropInfoStack.isHidden = true
subTextLabel.isHidden = true
badge.isHidden = true
Expand Down
8 changes: 8 additions & 0 deletions MLS/MLSRecommendationFeature/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.DS_Store
/.build
/Packages
xcuserdata/
DerivedData/
.swiftpm/configuration/registries.json
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
.netrc
80 changes: 80 additions & 0 deletions MLS/MLSRecommendationFeature/Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// swift-tools-version: 6.2
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

swift-tools-version6.2로 설정되어 있습니다. 현재 공식 릴리즈된 최신 버전은 6.0 계열이므로, 의도된 것이 아니라면 6.0으로 수정하는 것이 권장됩니다.

Suggested change
// swift-tools-version: 6.2
// swift-tools-version: 6.0

import PackageDescription

let package = Package(
name: "MLSRecommendationFeature",
platforms: [.iOS(.v15)],
products: [
// Interface: Presentation 팩토리 프로토콜
.library(
name: "MLSRecommendationFeatureInterface",
targets: ["MLSRecommendationFeatureInterface"]
),
// Feature: Presentation + Domain + Data 구현체
.library(
name: "MLSRecommendationFeature",
targets: ["MLSRecommendationFeature"]
),
// Testing: 단위 테스트나 Example 앱에서 사용될 Mock 데이터를 제공하는 모듈
.library(
name: "MLSRecommendationFeatureTesting",
targets: ["MLSRecommendationFeatureTesting"]
)
],
dependencies: [
.package(path: "../MLSCore"),
.package(path: "../MLSDesignSystem"),
.package(url: "https://github.com/ReactorKit/ReactorKit.git", from: "3.2.0"),
.package(url: "https://github.com/ReactiveX/RxSwift.git", from: "6.7.0"),
.package(url: "https://github.com/RxSwiftCommunity/RxKeyboard.git", from: "2.0.0"),
.package(url: "https://github.com/SnapKit/SnapKit.git", from: "5.7.1")
],
targets: [
// Interface 모듈 (Presentation 팩토리 프로토콜)
.target(
name: "MLSRecommendationFeatureInterface",
dependencies: [
.product(name: "MLSCore", package: "MLSCore"),
.product(name: "MLSDesignSystem", package: "MLSDesignSystem"),
.product(name: "RxSwift", package: "RxSwift")
],
swiftSettings: [.swiftLanguageMode(.v5)]
),
// Feature 모듈 (Presentation + Domain + Data 구현체)
.target(
name: "MLSRecommendationFeature",
dependencies: [
"MLSRecommendationFeatureInterface",
.product(name: "MLSCore", package: "MLSCore"),
.product(name: "MLSDesignSystem", package: "MLSDesignSystem"),
.product(name: "ReactorKit", package: "ReactorKit"),
.product(name: "RxSwift", package: "RxSwift"),
.product(name: "RxCocoa", package: "RxSwift"),
.product(name: "RxRelay", package: "RxSwift"),
.product(name: "RxKeyboard", package: "RxKeyboard"),
.product(name: "SnapKit", package: "SnapKit")
],
swiftSettings: [.swiftLanguageMode(.v5)]
),
// Testing 모듈 (Mock 객체)
.target(
name: "MLSRecommendationFeatureTesting",
dependencies: [
"MLSRecommendationFeatureInterface",
.product(name: "RxSwift", package: "RxSwift")
],
swiftSettings: [.swiftLanguageMode(.v5)]
),
// Tests 모듈
.testTarget(
name: "MLSRecommendationFeatureTests",
dependencies: [
"MLSRecommendationFeature",
"MLSRecommendationFeatureInterface",
"MLSRecommendationFeatureTesting",
.product(name: "RxBlocking", package: "RxSwift")
],
swiftSettings: [.swiftLanguageMode(.v5)]
)
]
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import MLSCore
import MLSRecommendationFeatureInterface

public struct RecommendationMainFactoryImpl: RecommendationMainFactory {

public init() {}

public func make() -> BaseViewController {
return RecommendationMainViewController()
}
}
Loading
Loading