diff --git a/README.md b/README.md deleted file mode 100644 index 2f1e30e..0000000 --- a/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# ๐ŸŽ iOS_Study_A -SSUMC 5๊ธฐ iOS ์Šคํ„ฐ๋”” A์กฐ - -![umc+logo](https://github.com/SSUMC-5th-iOS/iOS_Study_A/assets/84546438/ae41d05c-6f71-47bc-9944-84230b5d4dd6) - -## ๐Ÿ’ป Member -| ๊น€์ˆ˜๋ฏผ | ๊น€๋ฏผ์ง€ | ๋ฐ•ํ˜„์ˆ˜ | ์‹ ํ˜œ๋ฆผ | -| :---------:|:----------:|:----------:|:----------:| -| ๋ฃจ์‹œ | ๋ฏธ๋‹ˆ | ์ˆฒ | ์ œ๋กœ | -| [kimsoomin20221789](https://github.com/kimsoomin20221789) | [kxmmxnzx](https://github.com/kxmmxnzx) | [00yhsp](https://github.com/00yhsp) | [tlsgPFla](https://github.com/tlsgPFla) | - -## ๐Ÿ“– Workbook (ํ”„๋ฆฌ๋งˆ์Šคํ„ฐ) -| ์ฃผ์ฐจ | ๋‚ด์šฉ | ๋ฏธ์…˜ | -| --- | --- | --- | -| 1์ฃผ์ฐจ | `Platform` | ๋ฐฐ๋‹ฌ์˜ ๋ฏผ์กฑ ํ™ˆ ํ™”๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ(1) | -| 2์ฃผ์ฐจ | `AutoLayout` | ๋ฐฐ๋‹ฌ์˜ ๋ฏผ์กฑ ํ™ˆ ํ™”๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ(2) | -| 3์ฃผ์ฐจ | `TableView & CollectionView` | ๋‹น๊ทผ๋งˆ์ผ“ ํ™ˆ ํ™”๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ(1) | -| 4์ฃผ์ฐจ | `ScrollView` | ๋‹น๊ทผ๋งˆ์ผ“ ํ™ˆ ํ™”๋ฉด ๊ตฌํ˜„ํ•˜๊ธฐ(2) | -| 5์ฃผ์ฐจ | `View Transition with Data` | ๋ฐฐ๋‹ฌ์˜ ๋ฏผ์กฑ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ ๋ฐ์ดํ„ฐ ๋„˜๊ธฐ | -| 6์ฃผ์ฐจ | `Open Source` | ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 2๊ฐœ ์ด์ƒ ์‚ฌ์šฉํ•ด์„œ ๋ทฐ ๋งŒ๋“ค๊ธฐ | -| 7์ฃผ์ฐจ | `Token & Social Login` | ์นด์นด์˜ค ๋กœ๊ทธ์ธ ๊ตฌํ˜„ํ•˜๊ธฐ | -| 8์ฃผ์ฐจ | `DB & DBMS` | ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด ๋งŒ๋“ค๊ธฐ - UserDefaults | -| 9์ฃผ์ฐจ | `Network` | Open API ํ™œ์šฉํ•˜๊ธฐ | -| 9์ฃผ์ฐจ | `Instagram Clone Coding` | ์ธ์Šคํƒ€๊ทธ๋žจ ํด๋ก  ์ฝ”๋”ฉํ•˜๊ธฐ | - -## ๐ŸŒณ branch ๊ทœ์น™ -`๋‹‰๋„ค์ž„/์ฃผ์ฐจ` - - - ex) bibi/week1 - -## ๐Ÿ‘พ Udemy -- https://www.udemy.com/course/comgongbro_ios_clonecoding/ diff --git a/iOS_Study_A.xcodeproj/xcuserdata/jiyoon.xcuserdatad/xcschemes/xcschememanagement.plist b/iOS_Study_A.xcodeproj/xcuserdata/jiyoon.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index d6ece4b..0000000 --- a/iOS_Study_A.xcodeproj/xcuserdata/jiyoon.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - iOS_Study_A.xcscheme_^#shared#^_ - - orderHint - 0 - - - - diff --git a/iOS_Study_A/AppDelegate.swift b/iOS_Study_A/AppDelegate.swift deleted file mode 100644 index a37563b..0000000 --- a/iOS_Study_A/AppDelegate.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// AppDelegate.swift -// iOS_Study_A -// -// Created by ๋ฐ•์ง€์œค on 2023/09/28. -// - -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/iOS_Study_A/Base.lproj/LaunchScreen.storyboard b/iOS_Study_A/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/iOS_Study_A/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS_Study_A/Base.lproj/Main.storyboard b/iOS_Study_A/Base.lproj/Main.storyboard deleted file mode 100644 index 25a7638..0000000 --- a/iOS_Study_A/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/iOS_Study_A/Info.plist b/iOS_Study_A/Info.plist deleted file mode 100644 index dd3c9af..0000000 --- a/iOS_Study_A/Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - $(PRODUCT_MODULE_NAME).SceneDelegate - UISceneStoryboardFile - Main - - - - - - diff --git a/iOS_Study_A/SceneDelegate.swift b/iOS_Study_A/SceneDelegate.swift deleted file mode 100644 index aaf78de..0000000 --- a/iOS_Study_A/SceneDelegate.swift +++ /dev/null @@ -1,52 +0,0 @@ -// -// SceneDelegate.swift -// iOS_Study_A -// -// Created by ๋ฐ•์ง€์œค on 2023/09/28. -// - -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/iOS_Study_A/ViewController.swift b/iOS_Study_A/ViewController.swift deleted file mode 100644 index 0804a27..0000000 --- a/iOS_Study_A/ViewController.swift +++ /dev/null @@ -1,19 +0,0 @@ -// -// ViewController.swift -// iOS_Study_A -// -// Created by ๋ฐ•์ง€์œค on 2023/09/28. -// - -import UIKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } - - -} - diff --git a/iOS_Study_A.xcodeproj/project.pbxproj b/week7/week7.xcodeproj/project.pbxproj similarity index 60% rename from iOS_Study_A.xcodeproj/project.pbxproj rename to week7/week7.xcodeproj/project.pbxproj index 1f5c336..3b04a3f 100644 --- a/iOS_Study_A.xcodeproj/project.pbxproj +++ b/week7/week7.xcodeproj/project.pbxproj @@ -7,27 +7,22 @@ objects = { /* Begin PBXBuildFile section */ - 954B6B612AC57BE100FDCFAB /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954B6B602AC57BE100FDCFAB /* AppDelegate.swift */; }; - 954B6B632AC57BE100FDCFAB /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954B6B622AC57BE100FDCFAB /* SceneDelegate.swift */; }; - 954B6B652AC57BE100FDCFAB /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954B6B642AC57BE100FDCFAB /* ViewController.swift */; }; - 954B6B682AC57BE100FDCFAB /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 954B6B662AC57BE100FDCFAB /* Main.storyboard */; }; - 954B6B6A2AC57BE200FDCFAB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 954B6B692AC57BE200FDCFAB /* Assets.xcassets */; }; - 954B6B6D2AC57BE200FDCFAB /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 954B6B6B2AC57BE200FDCFAB /* LaunchScreen.storyboard */; }; + DF27E0C32B1457AC00DDED58 /* week7App.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF27E0C22B1457AC00DDED58 /* week7App.swift */; }; + DF27E0C52B1457AC00DDED58 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF27E0C42B1457AC00DDED58 /* ContentView.swift */; }; + DF27E0C72B1457AE00DDED58 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DF27E0C62B1457AE00DDED58 /* Assets.xcassets */; }; + DF27E0CA2B1457AE00DDED58 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DF27E0C92B1457AE00DDED58 /* Preview Assets.xcassets */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 954B6B5D2AC57BE100FDCFAB /* iOS_Study_A.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iOS_Study_A.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 954B6B602AC57BE100FDCFAB /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 954B6B622AC57BE100FDCFAB /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; - 954B6B642AC57BE100FDCFAB /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 954B6B672AC57BE100FDCFAB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 954B6B692AC57BE200FDCFAB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 954B6B6C2AC57BE200FDCFAB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 954B6B6E2AC57BE200FDCFAB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DF27E0BF2B1457AC00DDED58 /* week7.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = week7.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DF27E0C22B1457AC00DDED58 /* week7App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = week7App.swift; sourceTree = ""; }; + DF27E0C42B1457AC00DDED58 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + DF27E0C62B1457AE00DDED58 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + DF27E0C92B1457AE00DDED58 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 954B6B5A2AC57BE100FDCFAB /* Frameworks */ = { + DF27E0BC2B1457AC00DDED58 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -37,72 +32,77 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 954B6B542AC57BE100FDCFAB = { + DF27E0B62B1457AC00DDED58 = { isa = PBXGroup; children = ( - 954B6B5F2AC57BE100FDCFAB /* iOS_Study_A */, - 954B6B5E2AC57BE100FDCFAB /* Products */, + DF27E0C12B1457AC00DDED58 /* week7 */, + DF27E0C02B1457AC00DDED58 /* Products */, ); sourceTree = ""; }; - 954B6B5E2AC57BE100FDCFAB /* Products */ = { + DF27E0C02B1457AC00DDED58 /* Products */ = { isa = PBXGroup; children = ( - 954B6B5D2AC57BE100FDCFAB /* iOS_Study_A.app */, + DF27E0BF2B1457AC00DDED58 /* week7.app */, ); name = Products; sourceTree = ""; }; - 954B6B5F2AC57BE100FDCFAB /* iOS_Study_A */ = { + DF27E0C12B1457AC00DDED58 /* week7 */ = { isa = PBXGroup; children = ( - 954B6B602AC57BE100FDCFAB /* AppDelegate.swift */, - 954B6B622AC57BE100FDCFAB /* SceneDelegate.swift */, - 954B6B642AC57BE100FDCFAB /* ViewController.swift */, - 954B6B662AC57BE100FDCFAB /* Main.storyboard */, - 954B6B692AC57BE200FDCFAB /* Assets.xcassets */, - 954B6B6B2AC57BE200FDCFAB /* LaunchScreen.storyboard */, - 954B6B6E2AC57BE200FDCFAB /* Info.plist */, + DF27E0C22B1457AC00DDED58 /* week7App.swift */, + DF27E0C42B1457AC00DDED58 /* ContentView.swift */, + DF27E0C62B1457AE00DDED58 /* Assets.xcassets */, + DF27E0C82B1457AE00DDED58 /* Preview Content */, ); - path = iOS_Study_A; + path = week7; + sourceTree = ""; + }; + DF27E0C82B1457AE00DDED58 /* Preview Content */ = { + isa = PBXGroup; + children = ( + DF27E0C92B1457AE00DDED58 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 954B6B5C2AC57BE100FDCFAB /* iOS_Study_A */ = { + DF27E0BE2B1457AC00DDED58 /* week7 */ = { isa = PBXNativeTarget; - buildConfigurationList = 954B6B712AC57BE200FDCFAB /* Build configuration list for PBXNativeTarget "iOS_Study_A" */; + buildConfigurationList = DF27E0CD2B1457AE00DDED58 /* Build configuration list for PBXNativeTarget "week7" */; buildPhases = ( - 954B6B592AC57BE100FDCFAB /* Sources */, - 954B6B5A2AC57BE100FDCFAB /* Frameworks */, - 954B6B5B2AC57BE100FDCFAB /* Resources */, + DF27E0BB2B1457AC00DDED58 /* Sources */, + DF27E0BC2B1457AC00DDED58 /* Frameworks */, + DF27E0BD2B1457AC00DDED58 /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = iOS_Study_A; - productName = iOS_Study_A; - productReference = 954B6B5D2AC57BE100FDCFAB /* iOS_Study_A.app */; + name = week7; + productName = week7; + productReference = DF27E0BF2B1457AC00DDED58 /* week7.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 954B6B552AC57BE100FDCFAB /* Project object */ = { + DF27E0B72B1457AC00DDED58 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1430; LastUpgradeCheck = 1430; TargetAttributes = { - 954B6B5C2AC57BE100FDCFAB = { + DF27E0BE2B1457AC00DDED58 = { CreatedOnToolsVersion = 14.3.1; }; }; }; - buildConfigurationList = 954B6B582AC57BE100FDCFAB /* Build configuration list for PBXProject "iOS_Study_A" */; + buildConfigurationList = DF27E0BA2B1457AC00DDED58 /* Build configuration list for PBXProject "week7" */; compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; @@ -110,63 +110,42 @@ en, Base, ); - mainGroup = 954B6B542AC57BE100FDCFAB; - productRefGroup = 954B6B5E2AC57BE100FDCFAB /* Products */; + mainGroup = DF27E0B62B1457AC00DDED58; + productRefGroup = DF27E0C02B1457AC00DDED58 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 954B6B5C2AC57BE100FDCFAB /* iOS_Study_A */, + DF27E0BE2B1457AC00DDED58 /* week7 */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 954B6B5B2AC57BE100FDCFAB /* Resources */ = { + DF27E0BD2B1457AC00DDED58 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 954B6B6D2AC57BE200FDCFAB /* LaunchScreen.storyboard in Resources */, - 954B6B6A2AC57BE200FDCFAB /* Assets.xcassets in Resources */, - 954B6B682AC57BE100FDCFAB /* Main.storyboard in Resources */, + DF27E0CA2B1457AE00DDED58 /* Preview Assets.xcassets in Resources */, + DF27E0C72B1457AE00DDED58 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 954B6B592AC57BE100FDCFAB /* Sources */ = { + DF27E0BB2B1457AC00DDED58 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 954B6B652AC57BE100FDCFAB /* ViewController.swift in Sources */, - 954B6B612AC57BE100FDCFAB /* AppDelegate.swift in Sources */, - 954B6B632AC57BE100FDCFAB /* SceneDelegate.swift in Sources */, + DF27E0C52B1457AC00DDED58 /* ContentView.swift in Sources */, + DF27E0C32B1457AC00DDED58 /* week7App.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXVariantGroup section */ - 954B6B662AC57BE100FDCFAB /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 954B6B672AC57BE100FDCFAB /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 954B6B6B2AC57BE200FDCFAB /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 954B6B6C2AC57BE200FDCFAB /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - /* Begin XCBuildConfiguration section */ - 954B6B6F2AC57BE200FDCFAB /* Debug */ = { + DF27E0CB2B1457AE00DDED58 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -226,7 +205,7 @@ }; name = Debug; }; - 954B6B702AC57BE200FDCFAB /* Release */ = { + DF27E0CC2B1457AE00DDED58 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -280,18 +259,19 @@ }; name = Release; }; - 954B6B722AC57BE200FDCFAB /* Debug */ = { + DF27E0CE2B1457AE00DDED58 /* 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_ASSET_PATHS = "\"week7/Preview Content\""; + ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = iOS_Study_A/Info.plist; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; LD_RUNPATH_SEARCH_PATHS = ( @@ -299,7 +279,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "jiyoon.iOS-Study-A"; + PRODUCT_BUNDLE_IDENTIFIER = com.umcstudy.week7; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -307,18 +287,19 @@ }; name = Debug; }; - 954B6B732AC57BE200FDCFAB /* Release */ = { + DF27E0CF2B1457AE00DDED58 /* 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_ASSET_PATHS = "\"week7/Preview Content\""; + ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = iOS_Study_A/Info.plist; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; LD_RUNPATH_SEARCH_PATHS = ( @@ -326,7 +307,7 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "jiyoon.iOS-Study-A"; + PRODUCT_BUNDLE_IDENTIFIER = com.umcstudy.week7; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -337,25 +318,25 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 954B6B582AC57BE100FDCFAB /* Build configuration list for PBXProject "iOS_Study_A" */ = { + DF27E0BA2B1457AC00DDED58 /* Build configuration list for PBXProject "week7" */ = { isa = XCConfigurationList; buildConfigurations = ( - 954B6B6F2AC57BE200FDCFAB /* Debug */, - 954B6B702AC57BE200FDCFAB /* Release */, + DF27E0CB2B1457AE00DDED58 /* Debug */, + DF27E0CC2B1457AE00DDED58 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 954B6B712AC57BE200FDCFAB /* Build configuration list for PBXNativeTarget "iOS_Study_A" */ = { + DF27E0CD2B1457AE00DDED58 /* Build configuration list for PBXNativeTarget "week7" */ = { isa = XCConfigurationList; buildConfigurations = ( - 954B6B722AC57BE200FDCFAB /* Debug */, - 954B6B732AC57BE200FDCFAB /* Release */, + DF27E0CE2B1457AE00DDED58 /* Debug */, + DF27E0CF2B1457AE00DDED58 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 954B6B552AC57BE100FDCFAB /* Project object */; + rootObject = DF27E0B72B1457AC00DDED58 /* Project object */; } diff --git a/iOS_Study_A.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/week7/week7.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from iOS_Study_A.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to week7/week7.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/iOS_Study_A.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/week7/week7.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from iOS_Study_A.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to week7/week7.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/iOS_Study_A/Assets.xcassets/AccentColor.colorset/Contents.json b/week7/week7/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from iOS_Study_A/Assets.xcassets/AccentColor.colorset/Contents.json rename to week7/week7/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/iOS_Study_A/Assets.xcassets/AppIcon.appiconset/Contents.json b/week7/week7/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from iOS_Study_A/Assets.xcassets/AppIcon.appiconset/Contents.json rename to week7/week7/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/iOS_Study_A/Assets.xcassets/Contents.json b/week7/week7/Assets.xcassets/Contents.json similarity index 100% rename from iOS_Study_A/Assets.xcassets/Contents.json rename to week7/week7/Assets.xcassets/Contents.json diff --git a/week7/week7/Assets.xcassets/blue.imageset/Contents.json b/week7/week7/Assets.xcassets/blue.imageset/Contents.json new file mode 100644 index 0000000..a993763 --- /dev/null +++ b/week7/week7/Assets.xcassets/blue.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "blue.jpeg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week7/week7/Assets.xcassets/blue.imageset/blue.jpeg b/week7/week7/Assets.xcassets/blue.imageset/blue.jpeg new file mode 100644 index 0000000..664987c Binary files /dev/null and b/week7/week7/Assets.xcassets/blue.imageset/blue.jpeg differ diff --git a/week7/week7/Assets.xcassets/green.imageset/Contents.json b/week7/week7/Assets.xcassets/green.imageset/Contents.json new file mode 100644 index 0000000..f6414ff --- /dev/null +++ b/week7/week7/Assets.xcassets/green.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "green.jpeg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week7/week7/Assets.xcassets/green.imageset/green.jpeg b/week7/week7/Assets.xcassets/green.imageset/green.jpeg new file mode 100644 index 0000000..7f33629 Binary files /dev/null and b/week7/week7/Assets.xcassets/green.imageset/green.jpeg differ diff --git a/week7/week7/Assets.xcassets/icetray.imageset/Contents.json b/week7/week7/Assets.xcassets/icetray.imageset/Contents.json new file mode 100644 index 0000000..19fca0c --- /dev/null +++ b/week7/week7/Assets.xcassets/icetray.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "icetray.jpeg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week7/week7/Assets.xcassets/icetray.imageset/icetray.jpeg b/week7/week7/Assets.xcassets/icetray.imageset/icetray.jpeg new file mode 100644 index 0000000..c180cef Binary files /dev/null and b/week7/week7/Assets.xcassets/icetray.imageset/icetray.jpeg differ diff --git a/week7/week7/Assets.xcassets/pink.imageset/Contents.json b/week7/week7/Assets.xcassets/pink.imageset/Contents.json new file mode 100644 index 0000000..eb87a6c --- /dev/null +++ b/week7/week7/Assets.xcassets/pink.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "pink.jpeg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week7/week7/Assets.xcassets/pink.imageset/pink.jpeg b/week7/week7/Assets.xcassets/pink.imageset/pink.jpeg new file mode 100644 index 0000000..357f0c1 Binary files /dev/null and b/week7/week7/Assets.xcassets/pink.imageset/pink.jpeg differ diff --git a/week7/week7/Assets.xcassets/silver.imageset/Contents.json b/week7/week7/Assets.xcassets/silver.imageset/Contents.json new file mode 100644 index 0000000..381e1bc --- /dev/null +++ b/week7/week7/Assets.xcassets/silver.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "silver.jpeg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week7/week7/Assets.xcassets/silver.imageset/silver.jpeg b/week7/week7/Assets.xcassets/silver.imageset/silver.jpeg new file mode 100644 index 0000000..94d38c8 Binary files /dev/null and b/week7/week7/Assets.xcassets/silver.imageset/silver.jpeg differ diff --git a/week7/week7/Assets.xcassets/spaceGray.imageset/Contents.json b/week7/week7/Assets.xcassets/spaceGray.imageset/Contents.json new file mode 100644 index 0000000..237e7a4 --- /dev/null +++ b/week7/week7/Assets.xcassets/spaceGray.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "spaceGray.jpeg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week7/week7/Assets.xcassets/spaceGray.imageset/spaceGray.jpeg b/week7/week7/Assets.xcassets/spaceGray.imageset/spaceGray.jpeg new file mode 100644 index 0000000..5695248 Binary files /dev/null and b/week7/week7/Assets.xcassets/spaceGray.imageset/spaceGray.jpeg differ diff --git a/week7/week7/ContentView.swift b/week7/week7/ContentView.swift new file mode 100644 index 0000000..7a90f30 --- /dev/null +++ b/week7/week7/ContentView.swift @@ -0,0 +1,195 @@ +// +// ContentView.swift +// week7 +// +// Created by ๋ฐ•ํ˜„์ˆ˜ on 2023/11/27. +// + +import SwiftUI + +struct Product: Identifiable { + let id = UUID() + let name: String + let image: String + let location: String + let date: String + let price: String +} + +struct ProductView: View { + let product: Product + + init(product: Product) { + self.product = product + } + + var body: some View { + HStack{ + Image(product.image) + VStack{ + Text(product.name) + HStack { + Text(product.location) + Text(product.date) + } + } + + } + } +} + +struct IceTrayProductView: View { + var body: some View { + VStack { + Image("icetray") + .resizable() + .frame(width: 100, height: 100) + .cornerRadius(10) + HStack { + Text("์–ผ์Œํ‹€") + Spacer() + } + HStack { + Text("3,000์›").font(.headline) + Spacer() + } + } + } +} + +struct ProductScrollView: View { + var body: some View { + VStack { + Spacer() + HStack { + Text("์‹œ์›ํ•œ ์—ฌ๋ฆ„ ๊ฐ„์‹์˜ ๊ณ„์ ˆ").font(.headline) + Spacer() + Image(systemName: "chevron.right") + } + } + ScrollView(.horizontal) { + HStack { + ForEach(0..<20) { _ in + IceTrayProductView() + .padding(5) + } + } + }.listRowSeparator(.hidden, edges: .top) + } +} + +struct HomeView: View { + var products = [ + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ๋ธ”๋ฃจ", image: "blue", location: "์„œ์šธํŠน๋ณ„์‹œ ์–‘์ฒœ๊ตฌ", date: "3์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ์‹ค๋ฒ„", image: "silver", location: "์„œ์šธํŠน๋ณ„์‹œ ๋™์ž‘๊ตฌ", date: "6์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ์ŠคํŽ˜์ด์Šค๊ทธ๋ ˆ์ด", image: "spaceGray", location: "์„œ์šธํŠน๋ณ„์‹œ ์–‘์ฒœ๊ตฌ", date: "3์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ํ•‘ํฌ", image: "pink", location: "์„œ์šธํŠน๋ณ„์‹œ ๋™์ž‘๊ตฌ", date: "6์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ๊ทธ๋ฆฐ", image: "green", location: "์„œ์šธํŠน๋ณ„์‹œ ์–‘์ฒœ๊ตฌ", date: "3์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ์‹ค๋ฒ„", image: "silver", location: "์„œ์šธํŠน๋ณ„์‹œ ๋™์ž‘๊ตฌ", date: "6์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ์ŠคํŽ˜์ด์Šค๊ทธ๋ ˆ์ด", image: "spaceGray", location: "์„œ์šธํŠน๋ณ„์‹œ ์–‘์ฒœ๊ตฌ", date: "3์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ํ•‘ํฌ", image: "pink", location: "์„œ์šธํŠน๋ณ„์‹œ ๋™์ž‘๊ตฌ", date: "6์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ๊ทธ๋ฆฐ", image: "green", location: "์„œ์šธํŠน๋ณ„์‹œ ์–‘์ฒœ๊ตฌ", date: "3์ผ ์ „", price: "300,000์›"), + Product(name: "์—์–ดํŒŸ๋งฅ์Šค ๋ธ”๋ฃจ", image: "blue", location: "์„œ์šธํŠน๋ณ„์‹œ ๋™์ž‘๊ตฌ", date: "6์ผ ์ „", price: "300,000์›") + ] + + var body: some View { + List(products.indices) { index in + HStack { + Image(products[index].image) + .resizable() + .frame(width: 100, height: 100) + VStack{ + HStack { + Text(products[index].name).padding(.leading) + Spacer() + } + HStack { + Text(products[index].location).padding(.horizontal) + .foregroundColor(Color.gray) + .font(.system(size: 15)) + Text(products[index].date) + .foregroundColor(Color.gray) + .font(.system(size: 15)) + Spacer() + } + HStack { + Text(products[index].price).font(.headline).padding(.leading) + Spacer() + } + HStack { + Spacer() + Image(systemName: "message") + Text("5") + Image(systemName: "heart") + Text("23") + }.foregroundColor(Color.gray) + } + + } + if index == 2 { + ProductScrollView() + } + }.listStyle(PlainListStyle()) + + } +} + +struct ContentView: View { + var body: some View { + NavigationView { + TabView { + HomeView() + .tabItem { + Image(systemName: "house") + Text("ํ™ˆ") + } + Text("๋™๋„ค์ƒํ™œ") + .tabItem { + Image(systemName: "doc") + Text("๋™๋„ค์ƒํ™œ") + } + Text("๋‚ด ๊ทผ์ฒ˜") + .tabItem { + Image(systemName: "mappin.and.ellipse") + Text("๋‚ด ๊ทผ์ฒ˜") + } + Text("์ฑ„ํŒ…") + .tabItem { + Image(systemName: "message") + Text("์ฑ„ํŒ…") + } + Text("๋‚˜์˜ ๋‹น๊ทผ") + .tabItem { + Image(systemName: "person") + Text("๋‚˜์˜ ๋‹น๊ทผ") + } + }.navigationBarTitle("", displayMode: .inline) + .navigationBarItems( + leading: + HStack { + Text("๊ด‘๋ช…๋™") + .font(.headline) + .foregroundColor(.black) + .padding(.leading, 5) + Image(systemName: "chevron.down") + .foregroundColor(.black) + }, + trailing: + HStack { + Image(systemName: "line.3.horizontal") + Image(systemName: "magnifyingglass") + Image(systemName: "bell") + } + .foregroundColor(.black) + .padding(.horizontal, 5) + ).accentColor(.black) + } + } +} + + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/week7/week7/Preview Content/Preview Assets.xcassets/Contents.json b/week7/week7/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/week7/week7/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week7/week7/week7App.swift b/week7/week7/week7App.swift new file mode 100644 index 0000000..6fc848f --- /dev/null +++ b/week7/week7/week7App.swift @@ -0,0 +1,17 @@ +// +// week7App.swift +// week7 +// +// Created by ๋ฐ•ํ˜„์ˆ˜ on 2023/11/27. +// + +import SwiftUI + +@main +struct week7App: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +}