From b54336028b6cbc6f63be4dd2ca79a4306bd1bffb Mon Sep 17 00:00:00 2001 From: kayeon2 Date: Sun, 6 Oct 2024 16:12:14 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kream/Kream.xcodeproj/project.pbxproj | 366 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 10217 bytes .../xcschemes/xcschememanagement.plist | 14 + Kream/Kream/AppDelegate.swift | 36 ++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + Kream/Kream/Assets.xcassets/Contents.json | 6 + .../Kream/Base.lproj/LaunchScreen.storyboard | 25 ++ Kream/Kream/Base.lproj/Main.storyboard | 24 ++ Kream/Kream/Info.plist | 25 ++ Kream/Kream/SceneDelegate.swift | 52 +++ Kream/Kream/ViewController.swift | 19 + 14 files changed, 606 insertions(+) create mode 100644 Kream/Kream.xcodeproj/project.pbxproj create mode 100644 Kream/Kream.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Kream/Kream.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Kream/Kream.xcodeproj/project.xcworkspace/xcuserdata/seon.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Kream/Kream.xcodeproj/xcuserdata/seon.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Kream/Kream/AppDelegate.swift create mode 100644 Kream/Kream/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Kream/Kream/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Kream/Kream/Assets.xcassets/Contents.json create mode 100644 Kream/Kream/Base.lproj/LaunchScreen.storyboard create mode 100644 Kream/Kream/Base.lproj/Main.storyboard create mode 100644 Kream/Kream/Info.plist create mode 100644 Kream/Kream/SceneDelegate.swift create mode 100644 Kream/Kream/ViewController.swift diff --git a/Kream/Kream.xcodeproj/project.pbxproj b/Kream/Kream.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c10f7f5 --- /dev/null +++ b/Kream/Kream.xcodeproj/project.pbxproj @@ -0,0 +1,366 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 2C8A1D9B2CB26FBD003038F5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */; }; + 2C8A1D9D2CB26FBD003038F5 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */; }; + 2C8A1D9F2CB26FBD003038F5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */; }; + 2C8A1DA22CB26FBD003038F5 /* Base in Resources */ = {isa = PBXBuildFile; fileRef = 2C8A1DA12CB26FBD003038F5 /* Base */; }; + 2C8A1DA42CB26FBF003038F5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */; }; + 2C8A1DA72CB26FBF003038F5 /* Base in Resources */ = {isa = PBXBuildFile; fileRef = 2C8A1DA62CB26FBF003038F5 /* Base */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2C8A1D972CB26FBD003038F5 /* Kream.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Kream.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 2C8A1DA12CB26FBD003038F5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 2C8A1DA62CB26FBF003038F5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 2C8A1DA82CB26FBF003038F5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2C8A1D942CB26FBD003038F5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2C8A1D8E2CB26FBD003038F5 = { + isa = PBXGroup; + children = ( + 2C8A1D992CB26FBD003038F5 /* Kream */, + 2C8A1D982CB26FBD003038F5 /* Products */, + ); + sourceTree = ""; + }; + 2C8A1D982CB26FBD003038F5 /* Products */ = { + isa = PBXGroup; + children = ( + 2C8A1D972CB26FBD003038F5 /* Kream.app */, + ); + name = Products; + sourceTree = ""; + }; + 2C8A1D992CB26FBD003038F5 /* Kream */ = { + isa = PBXGroup; + children = ( + 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */, + 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */, + 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */, + 2C8A1DA02CB26FBD003038F5 /* Main.storyboard */, + 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */, + 2C8A1DA52CB26FBF003038F5 /* LaunchScreen.storyboard */, + 2C8A1DA82CB26FBF003038F5 /* Info.plist */, + ); + path = Kream; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 2C8A1D962CB26FBD003038F5 /* Kream */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2C8A1DAB2CB26FBF003038F5 /* Build configuration list for PBXNativeTarget "Kream" */; + buildPhases = ( + 2C8A1D932CB26FBD003038F5 /* Sources */, + 2C8A1D942CB26FBD003038F5 /* Frameworks */, + 2C8A1D952CB26FBD003038F5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Kream; + productName = Kream; + productReference = 2C8A1D972CB26FBD003038F5 /* Kream.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 2C8A1D8F2CB26FBD003038F5 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1540; + LastUpgradeCheck = 1540; + TargetAttributes = { + 2C8A1D962CB26FBD003038F5 = { + CreatedOnToolsVersion = 15.4; + }; + }; + }; + buildConfigurationList = 2C8A1D922CB26FBD003038F5 /* Build configuration list for PBXProject "Kream" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 2C8A1D8E2CB26FBD003038F5; + productRefGroup = 2C8A1D982CB26FBD003038F5 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 2C8A1D962CB26FBD003038F5 /* Kream */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2C8A1D952CB26FBD003038F5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2C8A1DA42CB26FBF003038F5 /* Assets.xcassets in Resources */, + 2C8A1DA72CB26FBF003038F5 /* Base in Resources */, + 2C8A1DA22CB26FBD003038F5 /* Base in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2C8A1D932CB26FBD003038F5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2C8A1D9F2CB26FBD003038F5 /* ViewController.swift in Sources */, + 2C8A1D9B2CB26FBD003038F5 /* AppDelegate.swift in Sources */, + 2C8A1D9D2CB26FBD003038F5 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 2C8A1DA02CB26FBD003038F5 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 2C8A1DA12CB26FBD003038F5 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 2C8A1DA52CB26FBF003038F5 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 2C8A1DA62CB26FBF003038F5 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 2C8A1DA92CB26FBF003038F5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 2C8A1DAA2CB26FBF003038F5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 17.5; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 2C8A1DAC2CB26FBF003038F5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = Kream/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"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = yoni.Kream; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 2C8A1DAD2CB26FBF003038F5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = Kream/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"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = yoni.Kream; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2C8A1D922CB26FBD003038F5 /* Build configuration list for PBXProject "Kream" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2C8A1DA92CB26FBF003038F5 /* Debug */, + 2C8A1DAA2CB26FBF003038F5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2C8A1DAB2CB26FBF003038F5 /* Build configuration list for PBXNativeTarget "Kream" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2C8A1DAC2CB26FBF003038F5 /* Debug */, + 2C8A1DAD2CB26FBF003038F5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 2C8A1D8F2CB26FBD003038F5 /* Project object */; +} diff --git a/Kream/Kream.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Kream/Kream.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Kream/Kream.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Kream/Kream.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Kream/Kream.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Kream/Kream.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Kream/Kream.xcodeproj/project.xcworkspace/xcuserdata/seon.xcuserdatad/UserInterfaceState.xcuserstate b/Kream/Kream.xcodeproj/project.xcworkspace/xcuserdata/seon.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..20430a3e1604ebc6a6ccfb7a0060a228a4353419 GIT binary patch literal 10217 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 J^s{%}{{m5w?O^}_ literal 0 HcmV?d00001 diff --git a/Kream/Kream.xcodeproj/xcuserdata/seon.xcuserdatad/xcschemes/xcschememanagement.plist b/Kream/Kream.xcodeproj/xcuserdata/seon.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..ea7c937 --- /dev/null +++ b/Kream/Kream.xcodeproj/xcuserdata/seon.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + Kream.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/Kream/Kream/AppDelegate.swift b/Kream/Kream/AppDelegate.swift new file mode 100644 index 0000000..eed7b06 --- /dev/null +++ b/Kream/Kream/AppDelegate.swift @@ -0,0 +1,36 @@ +// +// AppDelegate.swift +// Kream +// +// Created by 선가연 on 10/6/24. +// + +import UIKit + +@main +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/Kream/Kream/Assets.xcassets/AccentColor.colorset/Contents.json b/Kream/Kream/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Kream/Kream/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Kream/Kream/Assets.xcassets/AppIcon.appiconset/Contents.json b/Kream/Kream/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/Kream/Kream/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Kream/Kream/Assets.xcassets/Contents.json b/Kream/Kream/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Kream/Kream/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Kream/Kream/Base.lproj/LaunchScreen.storyboard b/Kream/Kream/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/Kream/Kream/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kream/Kream/Base.lproj/Main.storyboard b/Kream/Kream/Base.lproj/Main.storyboard new file mode 100644 index 0000000..25a7638 --- /dev/null +++ b/Kream/Kream/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kream/Kream/Info.plist b/Kream/Kream/Info.plist new file mode 100644 index 0000000..dd3c9af --- /dev/null +++ b/Kream/Kream/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/Kream/Kream/SceneDelegate.swift b/Kream/Kream/SceneDelegate.swift new file mode 100644 index 0000000..d1f1d2f --- /dev/null +++ b/Kream/Kream/SceneDelegate.swift @@ -0,0 +1,52 @@ +// +// SceneDelegate.swift +// Kream +// +// Created by 선가연 on 10/6/24. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/Kream/Kream/ViewController.swift b/Kream/Kream/ViewController.swift new file mode 100644 index 0000000..3b48a78 --- /dev/null +++ b/Kream/Kream/ViewController.swift @@ -0,0 +1,19 @@ +// +// ViewController.swift +// Kream +// +// Created by 선가연 on 10/6/24. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + +} + From 27ca9e50649473db6f42d4397b5d85a0f8e0a645 Mon Sep 17 00:00:00 2001 From: kayeon2 Date: Sun, 6 Oct 2024 18:37:47 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EC=8A=A4=ED=86=A0=EB=A6=AC=EB=B3=B4?= =?UTF-8?q?=EB=93=9C=20=ED=8C=8C=EC=9D=BC=20=EC=82=AD=EC=A0=9C=20=EB=B0=8F?= =?UTF-8?q?=20SceneDelegate=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kream/Kream.xcodeproj/project.pbxproj | 29 ------------------ .../UserInterfaceState.xcuserstate | Bin 10217 -> 19829 bytes .../Kream/Base.lproj/LaunchScreen.storyboard | 25 --------------- Kream/Kream/Base.lproj/Main.storyboard | 24 --------------- Kream/Kream/Info.plist | 2 -- Kream/Kream/SceneDelegate.swift | 9 +++--- 6 files changed, 5 insertions(+), 84 deletions(-) delete mode 100644 Kream/Kream/Base.lproj/LaunchScreen.storyboard delete mode 100644 Kream/Kream/Base.lproj/Main.storyboard diff --git a/Kream/Kream.xcodeproj/project.pbxproj b/Kream/Kream.xcodeproj/project.pbxproj index c10f7f5..fd1ef7f 100644 --- a/Kream/Kream.xcodeproj/project.pbxproj +++ b/Kream/Kream.xcodeproj/project.pbxproj @@ -10,9 +10,7 @@ 2C8A1D9B2CB26FBD003038F5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */; }; 2C8A1D9D2CB26FBD003038F5 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */; }; 2C8A1D9F2CB26FBD003038F5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */; }; - 2C8A1DA22CB26FBD003038F5 /* Base in Resources */ = {isa = PBXBuildFile; fileRef = 2C8A1DA12CB26FBD003038F5 /* Base */; }; 2C8A1DA42CB26FBF003038F5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */; }; - 2C8A1DA72CB26FBF003038F5 /* Base in Resources */ = {isa = PBXBuildFile; fileRef = 2C8A1DA62CB26FBF003038F5 /* Base */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -20,9 +18,7 @@ 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 2C8A1DA12CB26FBD003038F5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 2C8A1DA62CB26FBF003038F5 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 2C8A1DA82CB26FBF003038F5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -59,9 +55,7 @@ 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */, 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */, 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */, - 2C8A1DA02CB26FBD003038F5 /* Main.storyboard */, 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */, - 2C8A1DA52CB26FBF003038F5 /* LaunchScreen.storyboard */, 2C8A1DA82CB26FBF003038F5 /* Info.plist */, ); path = Kream; @@ -126,8 +120,6 @@ buildActionMask = 2147483647; files = ( 2C8A1DA42CB26FBF003038F5 /* Assets.xcassets in Resources */, - 2C8A1DA72CB26FBF003038F5 /* Base in Resources */, - 2C8A1DA22CB26FBD003038F5 /* Base in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -146,25 +138,6 @@ }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXVariantGroup section */ - 2C8A1DA02CB26FBD003038F5 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 2C8A1DA12CB26FBD003038F5 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 2C8A1DA52CB26FBF003038F5 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 2C8A1DA62CB26FBF003038F5 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ 2C8A1DA92CB26FBF003038F5 /* Debug */ = { isa = XCBuildConfiguration; @@ -296,7 +269,6 @@ INFOPLIST_FILE = Kream/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"; LD_RUNPATH_SEARCH_PATHS = ( @@ -323,7 +295,6 @@ INFOPLIST_FILE = Kream/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"; LD_RUNPATH_SEARCH_PATHS = ( diff --git a/Kream/Kream.xcodeproj/project.xcworkspace/xcuserdata/seon.xcuserdatad/UserInterfaceState.xcuserstate b/Kream/Kream.xcodeproj/project.xcworkspace/xcuserdata/seon.xcuserdatad/UserInterfaceState.xcuserstate index 20430a3e1604ebc6a6ccfb7a0060a228a4353419..ac6e359399a1459eb4563b6e17b1acc45b49cdf9 100644 GIT binary patch literal 19829 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 - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Kream/Kream/Base.lproj/Main.storyboard b/Kream/Kream/Base.lproj/Main.storyboard deleted file mode 100644 index 25a7638..0000000 --- a/Kream/Kream/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Kream/Kream/Info.plist b/Kream/Kream/Info.plist index dd3c9af..0eb786d 100644 --- a/Kream/Kream/Info.plist +++ b/Kream/Kream/Info.plist @@ -15,8 +15,6 @@ Default Configuration UISceneDelegateClassName $(PRODUCT_MODULE_NAME).SceneDelegate - UISceneStoryboardFile - Main diff --git a/Kream/Kream/SceneDelegate.swift b/Kream/Kream/SceneDelegate.swift index d1f1d2f..946b809 100644 --- a/Kream/Kream/SceneDelegate.swift +++ b/Kream/Kream/SceneDelegate.swift @@ -13,10 +13,11 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). - guard let _ = (scene as? UIWindowScene) else { return } + guard let windowScene = (scene as? UIWindowScene) else { return } + window = UIWindow(frame: windowScene.coordinateSpace.bounds) + window?.windowScene = windowScene + window?.rootViewController = ViewController() + window?.makeKeyAndVisible() } func sceneDidDisconnect(_ scene: UIScene) { From acd96ad45d0333ef8eca34420b3eba1e4bf16de3 Mon Sep 17 00:00:00 2001 From: kayeon2 Date: Sun, 6 Oct 2024 18:48:35 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=ED=8F=B4=EB=8D=94=20=EB=B0=8F=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kream/Kream.xcodeproj/project.pbxproj | 40 ++++++++++++++++-- .../UserInterfaceState.xcuserstate | Bin 19829 -> 28814 bytes ...roller.swift => LoginViewController.swift} | 2 +- Kream/Kream/Models/LoginModel.swift | 8 ++++ Kream/Kream/SceneDelegate.swift | 2 +- Kream/Kream/Views/LoginView.swift | 20 +++++++++ 6 files changed, 66 insertions(+), 6 deletions(-) rename Kream/Kream/{ViewController.swift => LoginViewController.swift} (83%) create mode 100644 Kream/Kream/Models/LoginModel.swift create mode 100644 Kream/Kream/Views/LoginView.swift diff --git a/Kream/Kream.xcodeproj/project.pbxproj b/Kream/Kream.xcodeproj/project.pbxproj index fd1ef7f..7ba11a5 100644 --- a/Kream/Kream.xcodeproj/project.pbxproj +++ b/Kream/Kream.xcodeproj/project.pbxproj @@ -9,17 +9,21 @@ /* Begin PBXBuildFile section */ 2C8A1D9B2CB26FBD003038F5 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */; }; 2C8A1D9D2CB26FBD003038F5 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */; }; - 2C8A1D9F2CB26FBD003038F5 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */; }; + 2C8A1D9F2CB26FBD003038F5 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1D9E2CB26FBD003038F5 /* LoginViewController.swift */; }; 2C8A1DA42CB26FBF003038F5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */; }; + 2C8A1DB22CB2922F003038F5 /* LoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1DB12CB2922F003038F5 /* LoginModel.swift */; }; + 2C8A1DBA2CB29449003038F5 /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C8A1DB92CB29449003038F5 /* LoginView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 2C8A1D972CB26FBD003038F5 /* Kream.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Kream.app; sourceTree = BUILT_PRODUCTS_DIR; }; 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 2C8A1D9E2CB26FBD003038F5 /* LoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = ""; }; 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 2C8A1DA82CB26FBF003038F5 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2C8A1DB12CB2922F003038F5 /* LoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginModel.swift; sourceTree = ""; }; + 2C8A1DB92CB29449003038F5 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -52,15 +56,41 @@ 2C8A1D992CB26FBD003038F5 /* Kream */ = { isa = PBXGroup; children = ( + 2C8A1DB02CB2921D003038F5 /* ViewControllers */, + 2C8A1DAF2CB29202003038F5 /* Views */, + 2C8A1DAE2CB291FB003038F5 /* Models */, 2C8A1D9A2CB26FBD003038F5 /* AppDelegate.swift */, 2C8A1D9C2CB26FBD003038F5 /* SceneDelegate.swift */, - 2C8A1D9E2CB26FBD003038F5 /* ViewController.swift */, + 2C8A1D9E2CB26FBD003038F5 /* LoginViewController.swift */, 2C8A1DA32CB26FBF003038F5 /* Assets.xcassets */, 2C8A1DA82CB26FBF003038F5 /* Info.plist */, ); path = Kream; sourceTree = ""; }; + 2C8A1DAE2CB291FB003038F5 /* Models */ = { + isa = PBXGroup; + children = ( + 2C8A1DB12CB2922F003038F5 /* LoginModel.swift */, + ); + path = Models; + sourceTree = ""; + }; + 2C8A1DAF2CB29202003038F5 /* Views */ = { + isa = PBXGroup; + children = ( + 2C8A1DB92CB29449003038F5 /* LoginView.swift */, + ); + path = Views; + sourceTree = ""; + }; + 2C8A1DB02CB2921D003038F5 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + ); + path = ViewControllers; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -130,8 +160,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2C8A1D9F2CB26FBD003038F5 /* ViewController.swift in Sources */, + 2C8A1D9F2CB26FBD003038F5 /* LoginViewController.swift in Sources */, + 2C8A1DB22CB2922F003038F5 /* LoginModel.swift in Sources */, 2C8A1D9B2CB26FBD003038F5 /* AppDelegate.swift in Sources */, + 2C8A1DBA2CB29449003038F5 /* LoginView.swift in Sources */, 2C8A1D9D2CB26FBD003038F5 /* SceneDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Kream/Kream.xcodeproj/project.xcworkspace/xcuserdata/seon.xcuserdatad/UserInterfaceState.xcuserstate b/Kream/Kream.xcodeproj/project.xcworkspace/xcuserdata/seon.xcuserdatad/UserInterfaceState.xcuserstate index ac6e359399a1459eb4563b6e17b1acc45b49cdf9..95ad94423a56291db4e00c977f4496ec03bb2250 100644 GIT binary patch literal 28814 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 delta 10208 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 Date: Tue, 8 Oct 2024 20:35:58 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kream/.DS_Store | Bin 0 -> 6148 bytes .../UserInterfaceState.xcuserstate | Bin 28814 -> 47930 bytes .../kream_logo.imageset/Contents.json | 21 +++ .../kream_logo.imageset/kream_logo.png | Bin 0 -> 4529 bytes Kream/Kream/LoginViewController.swift | 7 +- Kream/Kream/Models/LoginModel.swift | 5 +- Kream/Kream/Views/LoginView.swift | 170 +++++++++++++++++- 7 files changed, 192 insertions(+), 11 deletions(-) create mode 100644 Kream/.DS_Store create mode 100644 Kream/Kream/Assets.xcassets/kream_logo.imageset/Contents.json create mode 100644 Kream/Kream/Assets.xcassets/kream_logo.imageset/kream_logo.png diff --git a/Kream/.DS_Store b/Kream/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..93851315c78207f2236a0ae383b66d6e51492e21 GIT binary patch literal 6148 zcmeHKu}TCn5PhRpELeD@WxhbTKUj~ovOF6*z1u^PTXqoy%l$4(3qM7{FR=7YW|TWz zR4n9>8A#qFnU`cAY?1*W)7yFii~$rZilWYdY4_mJjt7s3lILh}h&wFMq8^xN8@qJx z`#8Z3mbk$B{+H<3+v0k4IhifmrnBw8Jb%w<+Nzqb+BqYO`={53)3e8;pRnp*u)3?Y z-AUpyVWB`M5DJ6>p}?04@Xl5%_6(yA1ww&P;6njD9}DU|Qqk~mW0f_pH&PHEz z3FRcm(y=$>2u+MiG^%)tAx39^^0?BmH#9oLlMnHg-;)=~t8@O8!y%<%)S*Bqu&KbV zHOG4YAM=+PO!7A=(Fz4Zfq$lejH+2R!-}}D*^uy(H&g?Va=XvIt=XqvIO;x3{ zE+OFnhd9g;j^_l-MO9vfCxTRy!K{u&up=cpMI=9n_WUS8+y$f2uO zm0G=q6c4mF*ei0}iS}|5Czll0mDSk|^q@B% co`Egyiu3Rh^$Hj9AoQ+H5lDK3p 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 diff --git a/Kream/Kream/Assets.xcassets/kream_logo.imageset/Contents.json b/Kream/Kream/Assets.xcassets/kream_logo.imageset/Contents.json new file mode 100644 index 0000000..2dbd877 --- /dev/null +++ b/Kream/Kream/Assets.xcassets/kream_logo.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "kream_logo.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Kream/Kream/Assets.xcassets/kream_logo.imageset/kream_logo.png b/Kream/Kream/Assets.xcassets/kream_logo.imageset/kream_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8f8106793de46a14ee245aec02e094fb41be4a50 GIT binary patch literal 4529 zcmbW5Wn2^9*T9ELGdd(BrDO<5jub|BNlU{(av(iG1qo@8j!6hA{o^MgC5(mvB3+}q zM&pQQKJTB;^Z)!`+&VArJvYud-*aR2b=80*Oe6pR0H~p^YzP40vElk!L2ap_&q)YM5mkH+TS5)KLTgYLiH>?eGBrDpd_-MdLuc z{e03sXCzxM^iD!KhOfvay=dM%&P>3kfphSw1T&}O%g)pUlz1kcfj|Sw!h&NeCV@zB z#)SU^5f$fDpJ($GHa;vVXfr=sbOf6hFk*?l8Q%^?_zsJ1<~6}LCELLxUOhKA6uLwl zlh5vam56@fQL}L<^QyxmDf8JeR7$Vkb*T~kBK}W=oq@cn@6!cLe=t}Fas;_I@7Mcc z_Zw`Cs1MGjYyuQ+PK_{FmdzH$8JFUO`L~3uTM`SefA4{1DMlvft-N+C8$4x`+}f^> z2R+YrCc00^6|Rp~Zlbr>2MFrXVId78^4La;g3$Asy;hI5tBr$E2!)@$6g9$N<@=Pi zuc;MG<#_sYru8hJd;mJMp?SBeIkmUy$IiFK3)hdno5Ow{H5~-ZjbPu6#%xh2xy(6E zspgqFXmkCN#bAbDx%9-wk~` z$thTmppgIa&rwZ5&OznZiYceZ^2Gq2%kt{B9NC^^*Qu8QsIUf&K>t}+UIf84rkCyD z<^mnyQRnij$PT**Khc@uF)Gz|mEDYH3*)ok6G7ud6G1v7N>`zm%hBDweHW!65GyQW zTcw*iToo^P7#)Tc45}EXd1}>I!zUXv{0^Tq7*Sg_d)o03#dVrBh*6+Zks;^Lg_-hl|mo(IlCW3RCO|-b5`MFnJc6a9wy` z^vSSHwI(gEUcsI+D>zT>?Psk_o(r!QOpk`ziI!07nrGuOK_)V?H_B3x<0({ zs=V@g=wA*D5_Ax}Jcn#UX$ZCDK5P(K~V4)vDQYh^G!RwGdpLVG0 z#U08{1wJIAK*T}S;CU8?1fQz}ZTBR|(N)B_BH!;m%10chdv+?HE!BEOQC8~Fb59pS zvSrOg-HNz8Co0Jt!-(!@d_V@HJf8u6b4=meP3zm$AkWq_le_T#qUVi1D{0K78$W+2 z?;XjVVe^)EDLE6m%2aA7GlXmo2=Ea)8i892TAU^V-ux@(eAfmZsV5O)#4|WMnj1_? zy0_bHncG-=}Lm zt&0c?IkKQ+WlDS-Gtnkvbe}vR%#aFsVjZ~r-rS9hjh;TufEqCmqE$-OViVv#qkm>X z>y@^8N1QF;VSxeqfpd0~FaK4yG(sDnkGsc-Fs(#vbs61w*g#jhV*8hu{H9)JexE#| z!g&lG$hk+;dd5?=;bZ=*70QDAfW?`KpE8>BUj25}2&3^rJ5#OE^7^YqAW-4V9|UPm z6+R<1>f|j5EIM4S)mECl?0D5@p!P`I9epyQa2PEC_I`!-pYwp6r!Us_gUfx}q{es= z{0hfKj!m4AEf0Py2Jbq(pBbY;slzSaWv7gdU*Hk42)iq^!aOHq2NKvz&NrEe60L%r zBUCMe!O5=2+rP_rZ7v1OZH8hNd`IM}Y*q>%E5X*&P3hYsgkmZ)#^a*aV6v~D4QY08 z&f!+B%b@8!Y+NNj9CUr+W)R&~#;s{Gk_|1$KJ^>b+UV-d8z`hG-ImU@3A>_H;{`?r z82Q)&^Fj`qW*opN4o|}MqhF;Vpe0LY8%>aQeg2WoDe8y8>s_0vT2Hsr?Oauj>a5Oi zx^qejD0B6JdAGT>O68FS`fyE1^EeslAuW{~&(x*t`?A6lo zs$y%%t{rmN8sJZorOJA%UF3LB=4|Fd)G5NMJcLE zMRxgYU95M7*-AlIkata36+R^eQz=LBKxp5h(7i}O-VIoAQG8b!zNU%N@7yXg1u$k= zQd#+l7-C4>*=%~mn*;jQ)(^7_V`=9}ou@!%))OIPj%bJ$?T6pmu1tH}EAt(;C+jX0 z8>DL|X0=RG4rsZ%#YPW}rZ0wQg2z=@WA#Ya-~i)U9!w$LJp2UJ?=bW&lI||u)LNq; z8b5vKJJ5Pm=Fe7fT>>4{-6j9KTsP|mo~Y&LWP0s#gm))#6|wV2AKkTCo7-Ne2*`DU z0WmdiRM7>TATsJ>F5S1-Ni|6S4GX*2sse5zD&YPb)<Zz?jxsbYYfC{QXd3q$ za!|yU)UTAe!m?`~K#FLI+K6eCOtH-MOq$i;zMX9ZEc`BlhKm3(gb2UQmQ{7Aj&+O< z=N6A7YPb18F6Y^Q?D}Ks2-_6G$X`f7$k7LEqD(6VIB?*?N2O(*GpgpsEXUa+<2Zhb z<&PhEL;m8A#Qy~XCVyfMX~h+;$gKylNt8u2kL8tObdxWM{(oVQu`FAdvxMh-<4W5+ zn8UwCqBZMM=KE&i>8;!E!_8|&L})S;bz@a?8j970-^_20$*omobEVfm4DE?uhdBO# zkb}EW1#-;|Ny$Web;-FbtD@~L1VtxQcke@&onfYz3S{HmJ}rB7F0V=HK}XAK$isr* zov;1aRo0bV%1?v$;GYi=yO9@n<3@T{BVRw;2WCj!99cVn_5-=Pq8Ho(A9cn?T}TET z%&%Q^96z1!9LlM)w}hs6TueCp{8biZ4`|&_G#yymMr* zL-Orfe_FK1$p&io{lurRgXY6FdFxaUc)hT|8W);)m)!{|FJL+uzUdo?_z1*;uFFHo zC3ixfN^_^&-;*5_vQ@k{=Y^@;XI-tN#rsFFC;n3ZlUTCwTIcoE$&GxR(2$6{B_Dpq z6gLf0n9vx|DSC|qnOiGT3PmZxCrs%d0M^&sF;}=SC-PVf(qa***!@_pnSR>bbBwSLZ18H|`L2D`2)0R8Db`nGcYC}c1IDR=&Z?FD@ZB=#|E>BZE z7uk8-tNiq-z^&oo>exZ z-IAqO>%>Dz!t!V($C;O1@dG5vBgIM+&!EFB0b?4xS9iQRImTqf($u>0SB~i46H1Yt zjRCx2z1}bz7Q{+)#WCBnz541GT1M6XH?F5b*p1P z_1z;7HG)!$FhQcgl50|mOJ0e z8C>HC?gkAl2gy(SGu zidbLL<->#+==;D4vVrw~f9swA(^S=Gmo=Hig&(+*h%&$H*1WO(l4?mORzdoaZW8I7 z>yaTl1$y*uPspZio|GR=e3JL99(uQ)X~R?vHVl-AdT#byM{I(ahJHuPmGe1B1Qm9i zAk9|&=hYc``xKQLORdSh;sh|JMd*S4R%0I>{xVl6tNdOM~bM9;*{`6#N|$!4BI z9JsF98P6!%vJMIQNPquJM@D=B*te8{PMW9-iUdlYX835r`?w^!{t}3r3cP3DSjHZ* zS_W_t<{{yFPoNeY^I&ytltM`_VY~J9wxP`y5j7C}IT-tZX0Tz&$k1V5dp8(OL-tu(@sWzYgI$d4vFI$U!V2`n;m_%ItJDmP zX{|h6g&En$)U&4*RB8~xv0wu&YW4vp_GFxiZbZ-g7<38q$x2>f>HXt`)GP%V38b3c zDE3uq*MQy}%O5nZ!m}e5au;Z(R=$%Bci2aa?=Y8y|Jg2UX8A}5d0yAzOaCF3VLxIR z-=LVR7A`sCn8vaBkPM|hSO2lE9+ic;8r_1$N6FJ_yI%{Gj>N`kTC+Gko(FQ{}$=fJ1r{FuT|8Y77ui7jq#y}iT5JcD~x;^?my6B2x3M>@F@ zsPO24%OR1`hn3#QGecll<^WjhME#~vb8By1 z)-6&5R=@}YmyYp=^2iOO>h|xD(vzIMwF`EC89625axJTN30kAF_aHy5k&im--C;&F z@ziNKFL<-zTu#_wcvP{Nql|9BGe%p1A{ z;c81|4@;FdGw&TYTZkx{5WxL5d_w=%Nb!He$E8BlsC3?|lx9oZ4+}s;MOV2>$@bm< E0Ce@mA^-pY literal 0 HcmV?d00001 diff --git a/Kream/Kream/LoginViewController.swift b/Kream/Kream/LoginViewController.swift index 3a29d85..2372120 100644 --- a/Kream/Kream/LoginViewController.swift +++ b/Kream/Kream/LoginViewController.swift @@ -11,9 +11,12 @@ class LoginViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - // Do any additional setup after loading the view. + self.view = loginView } - + private lazy var loginView: LoginView = { + let view = LoginView() + return view + }() } diff --git a/Kream/Kream/Models/LoginModel.swift b/Kream/Kream/Models/LoginModel.swift index 97c0a6d..1830e28 100644 --- a/Kream/Kream/Models/LoginModel.swift +++ b/Kream/Kream/Models/LoginModel.swift @@ -5,4 +5,7 @@ // Created by 선가연 on 10/6/24. // -import Foundation +struct LoginModel { + var id: String + var pwd: String +} diff --git a/Kream/Kream/Views/LoginView.swift b/Kream/Kream/Views/LoginView.swift index c466e00..20c32cc 100644 --- a/Kream/Kream/Views/LoginView.swift +++ b/Kream/Kream/Views/LoginView.swift @@ -8,13 +8,167 @@ import UIKit class LoginView: UIView { - - /* - // Only override draw() if you perform custom drawing. - // An empty implementation adversely affects performance during animation. - override func draw(_ rect: CGRect) { - // Drawing code + + override init(frame: CGRect) { + super.init(frame: frame) + self.backgroundColor = .white + self.addComponents() + self.setupConstraints() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // 컴포넌트 추가 + private func addComponents() { + self.addSubview(logoImageView) + self.addSubview(emailLabel) + self.addSubview(emailTextField) + self.addSubview(passwordLabel) + self.addSubview(passwordTextField) + self.addSubview(loginButton) + self.addSubview(kakaoLoginButton) + self.addSubview(appleLoginButton) + } + + // 크림 로고 이미지 + let logoImageView: UIImageView = { + let imageView = UIImageView() + + imageView.image = UIImage(named: "kream_logo") + imageView.contentMode = .scaleAspectFit + imageView.translatesAutoresizingMaskIntoConstraints = false + + return imageView + }() + + // 이메일 레이블 + private let emailLabel: UILabel = { + let label = UILabel() + label.text = "이메일 주소" + label.font = UIFont.systemFont(ofSize: 12) + label.translatesAutoresizingMaskIntoConstraints = false + return label + }() + + // 이메일 텍스트 필드 + private let emailTextField: UITextField = { + let textField = UITextField() + textField.placeholder = "예) kream@kream.co.kr" + textField.font = UIFont.systemFont(ofSize: 12) + textField.layer.cornerRadius = 15 + textField.layer.borderWidth = 1 + textField.layer.borderColor = UIColor.systemGray4.cgColor + textField.translatesAutoresizingMaskIntoConstraints = false + return textField + }() + + // 비밀번호 레이블 + private let passwordLabel: UILabel = { + let label = UILabel() + label.text = "비밀번호" + label.font = UIFont.systemFont(ofSize: 12) + label.translatesAutoresizingMaskIntoConstraints = false + return label + }() + + // 비밀번호 텍스트 필드 + private let passwordTextField: UITextField = { + let textField = UITextField() + textField.placeholder = "비밀번호를 입력해 주세요" + textField.isSecureTextEntry = true + textField.font = UIFont.systemFont(ofSize: 12) + textField.layer.cornerRadius = 15 + textField.layer.borderWidth = 1 + textField.layer.borderColor = UIColor.systemGray4.cgColor + textField.translatesAutoresizingMaskIntoConstraints = false + return textField + }() + + // 로그인 버튼 + private let loginButton: UIButton = { + let button = UIButton(type: .system) + button.setTitle("로그인", for: .normal) + button.backgroundColor = UIColor.systemGray4 + button.setTitleColor(.white, for: .normal) + button.titleLabel?.font = UIFont.systemFont(ofSize: 14) + button.layer.cornerRadius = 8 + button.translatesAutoresizingMaskIntoConstraints = false + return button + }() + + // 카카오 로그인 버튼 + private let kakaoLoginButton: UIButton = { + let button = UIButton(type: .system) + button.setTitle("카카오로 로그인", for: .normal) + button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14) + button.setTitleColor(.black, for: .normal) + button.layer.cornerRadius = 8 + button.layer.borderWidth = 1 + button.layer.borderColor = UIColor.systemGray4.cgColor + button.translatesAutoresizingMaskIntoConstraints = false + return button + }() + + // 애플 로그인 버튼 + private let appleLoginButton: UIButton = { + let button = UIButton(type: .system) + button.setTitle("Apple로 로그인", for: .normal) + button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14) + button.setTitleColor(.black, for: .normal) + button.layer.cornerRadius = 8 + button.layer.borderWidth = 1 + button.layer.borderColor = UIColor.systemGray4.cgColor + button.translatesAutoresizingMaskIntoConstraints = false + return button + }() + + // 오토 레이아웃 설정 + private func setupConstraints() { + NSLayoutConstraint.activate([ + // 크림 로고 이미지 + logoImageView.topAnchor.constraint(equalTo: self.topAnchor, constant: 126), + logoImageView.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 53), + logoImageView.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -53), + + // 이메일 레이블 + emailLabel.topAnchor.constraint(equalTo: self.logoImageView.bottomAnchor, constant: 87), + emailLabel.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 45), + + // 이메일 텍스트 필드 + emailTextField.topAnchor.constraint(equalTo: self.emailLabel.bottomAnchor, constant: 8), + emailTextField.leftAnchor.constraint(equalTo: self.leftAnchor, constant: 45), + emailTextField.rightAnchor.constraint(equalTo: self.rightAnchor, constant: -45), + emailTextField.heightAnchor.constraint(equalToConstant: 38), + + // 비밀번호 레이블 + passwordLabel.topAnchor.constraint(equalTo: self.emailTextField.bottomAnchor, constant: 17), + passwordLabel.leadingAnchor.constraint(equalTo: self.emailLabel.leadingAnchor, constant: 0), + + // 비밀번호 텍스트 필드 + passwordTextField.topAnchor.constraint(equalTo: self.passwordLabel.bottomAnchor, constant: 8), + passwordTextField.leadingAnchor.constraint(equalTo: self.emailLabel.leadingAnchor, constant: 0), + passwordTextField.trailingAnchor.constraint(equalTo: emailTextField.trailingAnchor, constant: 0), + passwordTextField.heightAnchor.constraint(equalToConstant: 38), + + // 로그인 버튼 + loginButton.topAnchor.constraint(equalTo: self.passwordTextField.bottomAnchor, constant: 17), + loginButton.leadingAnchor.constraint(equalTo: self.emailTextField.leadingAnchor, constant: 0), + loginButton.trailingAnchor.constraint(equalTo: self.emailTextField.trailingAnchor, constant: 0), + loginButton.heightAnchor.constraint(equalToConstant: 38), + + // 카카오 로그인 버튼 + kakaoLoginButton.topAnchor.constraint(equalTo: self.loginButton.bottomAnchor, constant: 87), + kakaoLoginButton.leadingAnchor.constraint(equalTo: self.emailTextField.leadingAnchor, constant: 0), + kakaoLoginButton.trailingAnchor.constraint(equalTo: self.emailTextField.trailingAnchor, constant: 0), + kakaoLoginButton.heightAnchor.constraint(equalToConstant: 38), + + // 애플 로그인 버튼 + appleLoginButton.topAnchor.constraint(equalTo: self.kakaoLoginButton.bottomAnchor, constant: 22), + appleLoginButton.leadingAnchor.constraint(equalTo: self.emailTextField.leadingAnchor, constant: 0), + appleLoginButton.trailingAnchor.constraint(equalTo: self.emailTextField.trailingAnchor, constant: 0), + appleLoginButton.heightAnchor.constraint(equalToConstant: 38) + ]) } - */ - }