From 33435ed6721776de9b29669c8bd642b297bc8ffc Mon Sep 17 00:00:00 2001 From: "seonkyu.kim" Date: Mon, 21 Oct 2024 09:53:49 +0900 Subject: [PATCH] =?UTF-8?q?[=E2=9C=A8]=20Project=20init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 0 README.md | 13 + WebAppUIKitBase.xcodeproj/project.pbxproj | 348 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 14618 bytes .../xcschemes/xcschememanagement.plist | 14 + WebAppUIKitBase/AppDelegate.swift | 36 ++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 ++ WebAppUIKitBase/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ WebAppUIKitBase/Base.lproj/Main.storyboard | 24 ++ WebAppUIKitBase/Info.plist | 25 ++ WebAppUIKitBase/SceneDelegate.swift | 52 +++ WebAppUIKitBase/ViewController.swift | 19 + 15 files changed, 615 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 WebAppUIKitBase.xcodeproj/project.pbxproj create mode 100644 WebAppUIKitBase.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 WebAppUIKitBase.xcodeproj/project.xcworkspace/xcuserdata/seankim.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 WebAppUIKitBase.xcodeproj/xcuserdata/seankim.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 WebAppUIKitBase/AppDelegate.swift create mode 100644 WebAppUIKitBase/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 WebAppUIKitBase/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 WebAppUIKitBase/Assets.xcassets/Contents.json create mode 100644 WebAppUIKitBase/Base.lproj/LaunchScreen.storyboard create mode 100644 WebAppUIKitBase/Base.lproj/Main.storyboard create mode 100644 WebAppUIKitBase/Info.plist create mode 100644 WebAppUIKitBase/SceneDelegate.swift create mode 100644 WebAppUIKitBase/ViewController.swift diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md new file mode 100644 index 0000000..7b934a3 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# WebApp_UIKit_Base Project +### 개요 +- WebApp 프로젝트를 진행하면서 사용했던 코드들을 정리하고 후에 WebApp 서비스를 만들게 되는 경우 참고할 Reference를 위한 프로젝트이다. + +## 특이사항 +### .gitignore 내용 +- none + +## 일지 +### 24.10.21 +- 프로젝트 시작 + + diff --git a/WebAppUIKitBase.xcodeproj/project.pbxproj b/WebAppUIKitBase.xcodeproj/project.pbxproj new file mode 100644 index 0000000..29fdb8b --- /dev/null +++ b/WebAppUIKitBase.xcodeproj/project.pbxproj @@ -0,0 +1,348 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXFileReference section */ + A749CDFD2CC5D8CD0038D13D /* WebAppUIKitBase.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WebAppUIKitBase.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + A749CE0F2CC5D8CE0038D13D /* Exceptions for "WebAppUIKitBase" folder in "WebAppUIKitBase" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = A749CDFC2CC5D8CD0038D13D /* WebAppUIKitBase */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + A749CDFF2CC5D8CD0038D13D /* WebAppUIKitBase */ = { + isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + A749CE0F2CC5D8CE0038D13D /* Exceptions for "WebAppUIKitBase" folder in "WebAppUIKitBase" target */, + ); + path = WebAppUIKitBase; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + A749CDFA2CC5D8CD0038D13D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A749CDF42CC5D8CD0038D13D = { + isa = PBXGroup; + children = ( + A749CDFF2CC5D8CD0038D13D /* WebAppUIKitBase */, + A749CDFE2CC5D8CD0038D13D /* Products */, + ); + sourceTree = ""; + }; + A749CDFE2CC5D8CD0038D13D /* Products */ = { + isa = PBXGroup; + children = ( + A749CDFD2CC5D8CD0038D13D /* WebAppUIKitBase.app */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A749CDFC2CC5D8CD0038D13D /* WebAppUIKitBase */ = { + isa = PBXNativeTarget; + buildConfigurationList = A749CE102CC5D8CE0038D13D /* Build configuration list for PBXNativeTarget "WebAppUIKitBase" */; + buildPhases = ( + A749CDF92CC5D8CD0038D13D /* Sources */, + A749CDFA2CC5D8CD0038D13D /* Frameworks */, + A749CDFB2CC5D8CD0038D13D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + A749CDFF2CC5D8CD0038D13D /* WebAppUIKitBase */, + ); + name = WebAppUIKitBase; + packageProductDependencies = ( + ); + productName = WebAppUIKitBase; + productReference = A749CDFD2CC5D8CD0038D13D /* WebAppUIKitBase.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A749CDF52CC5D8CD0038D13D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1600; + LastUpgradeCheck = 1600; + TargetAttributes = { + A749CDFC2CC5D8CD0038D13D = { + CreatedOnToolsVersion = 16.0; + }; + }; + }; + buildConfigurationList = A749CDF82CC5D8CD0038D13D /* Build configuration list for PBXProject "WebAppUIKitBase" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = A749CDF42CC5D8CD0038D13D; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = A749CDFE2CC5D8CD0038D13D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A749CDFC2CC5D8CD0038D13D /* WebAppUIKitBase */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A749CDFB2CC5D8CD0038D13D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A749CDF92CC5D8CD0038D13D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A749CE112CC5D8CE0038D13D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 45MYH7ZHUQ; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WebAppUIKitBase/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 = "kr.kro.sean-k.WebAppUIKitBase"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + A749CE122CC5D8CE0038D13D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 45MYH7ZHUQ; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = WebAppUIKitBase/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 = "kr.kro.sean-k.WebAppUIKitBase"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; + A749CE132CC5D8CE0038D13D /* 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 = 18.0; + 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; + }; + A749CE142CC5D8CE0038D13D /* 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 = 18.0; + 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; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A749CDF82CC5D8CD0038D13D /* Build configuration list for PBXProject "WebAppUIKitBase" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A749CE132CC5D8CE0038D13D /* Debug */, + A749CE142CC5D8CE0038D13D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A749CE102CC5D8CE0038D13D /* Build configuration list for PBXNativeTarget "WebAppUIKitBase" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A749CE112CC5D8CE0038D13D /* Debug */, + A749CE122CC5D8CE0038D13D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A749CDF52CC5D8CD0038D13D /* Project object */; +} diff --git a/WebAppUIKitBase.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/WebAppUIKitBase.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/WebAppUIKitBase.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/WebAppUIKitBase.xcodeproj/project.xcworkspace/xcuserdata/seankim.xcuserdatad/UserInterfaceState.xcuserstate b/WebAppUIKitBase.xcodeproj/project.xcworkspace/xcuserdata/seankim.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..6c3493550e68c418beae3dd8929f81ba12c7c472 GIT binary patch literal 14618 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�bPeW?05Rvv4L&54~9J2iG*Y-_A5c42HstS5G9?6TO4VlR$m zv8!S?#oifvF!ue}pX0*gBIBatRB>@}330h`BjXz4X2i{kzdU|@{H^g@<9p+`#qWsU z6MuL7J@NO&-yi>A{LAql#-B<^OcOgoH^6tqGk8S0`MPaGknRU8|m> zo~NF#Zc?|XJJcTaBDGK5rCy@msNSc3LH)7%nED&_X${rLHKCeFO|(X-iPenJ%-6Uy z7i!uyU78h|Rhp|bYc=aM8#OyLcWU-)p3=Ofd0X?Y=7{D4&4-$gHODlcX}-`L*L`8e^!;=b=CM3;G z@+2)yTAs8bX=T#Zq=%D^B%MfBCL5A-ldF?!lBXrtB{w9`NS>8ECwX4-lH@CsHznVl z{B-h>cy#7q+XSJb?SSm$5KzG{*)G)rcKL8o18W+ zZAIFZY1gOSnzl8qH*H(msq~Qa$aGbDPP#LFNjgj4n0|BmJ?RgpKbHPP`cvu8r+(%;1y-uI3FVv6FkJOLWpQk@xU!tF&pRAvvpQ@jypRaGyx9At^ zSL)a5*Xgg-U$5Vy-=W{7zfFIK{vQ2(`up_{>L1d7mZ8lk&6t=`ol%o9Eu%T3Bg2!i zD8rZ0mGNT68yO#Fe46oj#+MlC2EG)^;i8P^#%8*epkHTD^|8+RHXGCpm5)_BPHg7GEe+s32DkBpxfKQ(@B zJYhU({NDI46E;PdG^SKjx+%kCFy)x6Cc7!mG~9HasnRswRBu{fYBMb~xlM~qe$x`u zGSdpvI@7hL>rH<#Z7|(vy2*62=~mNL(~G9l!*Yhr8n$NGeZxL6tIav)V)G<(qq)hv z(7eQak@<4-dh-VJM)M}~0rNBF56mB#kC{I=A2)wvK572J{G<6)7RsVoAz9&BhOA*( z*;&@C+^qbp!mJTlqq5G+8kbd;RhczDYeJSYYgN`YS$ncx&pMWMIy))bo?V$eKiivq zMfUaC>$5jzZ_3`0y*vAk>^<50vhU44p8Zqy=^T_pb3$^$auRZqbJB7$a*R2a9D7cF zPGQc7oCP`Sa~{okCg-`F7jj<8Ig)cU=i{7XIiKZxYe5#dCCs9*C@paowI$J#W-(bt zTP9nYEFMdzWs${aVV2dFOD$Je)>_tCZnoTIxyQ2K@|fkI<&fny%Nv$|SpI1_X8GLm zrR8hOx0dfLr>)pZt#WIuRclSQrdczrSyqeHZq2tASnI7 + + + + SchemeUserState + + WebAppUIKitBase.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/WebAppUIKitBase/AppDelegate.swift b/WebAppUIKitBase/AppDelegate.swift new file mode 100644 index 0000000..2678098 --- /dev/null +++ b/WebAppUIKitBase/AppDelegate.swift @@ -0,0 +1,36 @@ +// +// AppDelegate.swift +// WebAppUIKitBase +// +// Created by Sean Kim on 10/21/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/WebAppUIKitBase/Assets.xcassets/AccentColor.colorset/Contents.json b/WebAppUIKitBase/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/WebAppUIKitBase/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/WebAppUIKitBase/Assets.xcassets/AppIcon.appiconset/Contents.json b/WebAppUIKitBase/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2305880 --- /dev/null +++ b/WebAppUIKitBase/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/WebAppUIKitBase/Assets.xcassets/Contents.json b/WebAppUIKitBase/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/WebAppUIKitBase/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/WebAppUIKitBase/Base.lproj/LaunchScreen.storyboard b/WebAppUIKitBase/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/WebAppUIKitBase/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WebAppUIKitBase/Base.lproj/Main.storyboard b/WebAppUIKitBase/Base.lproj/Main.storyboard new file mode 100644 index 0000000..25a7638 --- /dev/null +++ b/WebAppUIKitBase/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WebAppUIKitBase/Info.plist b/WebAppUIKitBase/Info.plist new file mode 100644 index 0000000..dd3c9af --- /dev/null +++ b/WebAppUIKitBase/Info.plist @@ -0,0 +1,25 @@ + + + + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + + diff --git a/WebAppUIKitBase/SceneDelegate.swift b/WebAppUIKitBase/SceneDelegate.swift new file mode 100644 index 0000000..097a40a --- /dev/null +++ b/WebAppUIKitBase/SceneDelegate.swift @@ -0,0 +1,52 @@ +// +// SceneDelegate.swift +// WebAppUIKitBase +// +// Created by Sean Kim on 10/21/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/WebAppUIKitBase/ViewController.swift b/WebAppUIKitBase/ViewController.swift new file mode 100644 index 0000000..ede38f7 --- /dev/null +++ b/WebAppUIKitBase/ViewController.swift @@ -0,0 +1,19 @@ +// +// ViewController.swift +// WebAppUIKitBase +// +// Created by Sean Kim on 10/21/24. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + +} +