From 275264ad9cf50f562c17322b2fb015e3118731a4 Mon Sep 17 00:00:00 2001 From: 00yhsp <00yhsp@naver.com> Date: Tue, 28 Nov 2023 03:24:40 +0900 Subject: [PATCH] week7 --- README.md | 33 --- .../xcschemes/xcschememanagement.plist | 14 -- iOS_Study_A/AppDelegate.swift | 36 ---- .../Base.lproj/LaunchScreen.storyboard | 25 --- iOS_Study_A/Base.lproj/Main.storyboard | 24 --- iOS_Study_A/Info.plist | 25 --- iOS_Study_A/SceneDelegate.swift | 52 ----- iOS_Study_A/ViewController.swift | 19 -- .../week7.xcodeproj}/project.pbxproj | 159 +++++++------- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../AccentColor.colorset/Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../week7}/Assets.xcassets/Contents.json | 0 .../blue.imageset/Contents.json | 21 ++ .../Assets.xcassets/blue.imageset/blue.jpeg | Bin 0 -> 4349 bytes .../green.imageset/Contents.json | 21 ++ .../Assets.xcassets/green.imageset/green.jpeg | Bin 0 -> 5118 bytes .../icetray.imageset/Contents.json | 21 ++ .../icetray.imageset/icetray.jpeg | Bin 0 -> 7286 bytes .../pink.imageset/Contents.json | 21 ++ .../Assets.xcassets/pink.imageset/pink.jpeg | Bin 0 -> 4469 bytes .../silver.imageset/Contents.json | 21 ++ .../silver.imageset/silver.jpeg | Bin 0 -> 4750 bytes .../spaceGray.imageset/Contents.json | 21 ++ .../spaceGray.imageset/spaceGray.jpeg | Bin 0 -> 7248 bytes week7/week7/ContentView.swift | 195 ++++++++++++++++++ .../Preview Assets.xcassets/Contents.json | 6 + week7/week7/week7App.swift | 17 ++ 29 files changed, 414 insertions(+), 317 deletions(-) delete mode 100644 README.md delete mode 100644 iOS_Study_A.xcodeproj/xcuserdata/jiyoon.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 iOS_Study_A/AppDelegate.swift delete mode 100644 iOS_Study_A/Base.lproj/LaunchScreen.storyboard delete mode 100644 iOS_Study_A/Base.lproj/Main.storyboard delete mode 100644 iOS_Study_A/Info.plist delete mode 100644 iOS_Study_A/SceneDelegate.swift delete mode 100644 iOS_Study_A/ViewController.swift rename {iOS_Study_A.xcodeproj => week7/week7.xcodeproj}/project.pbxproj (60%) rename {iOS_Study_A.xcodeproj => week7/week7.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename {iOS_Study_A.xcodeproj => week7/week7.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {iOS_Study_A => week7/week7}/Assets.xcassets/AccentColor.colorset/Contents.json (100%) rename {iOS_Study_A => week7/week7}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {iOS_Study_A => week7/week7}/Assets.xcassets/Contents.json (100%) create mode 100644 week7/week7/Assets.xcassets/blue.imageset/Contents.json create mode 100644 week7/week7/Assets.xcassets/blue.imageset/blue.jpeg create mode 100644 week7/week7/Assets.xcassets/green.imageset/Contents.json create mode 100644 week7/week7/Assets.xcassets/green.imageset/green.jpeg create mode 100644 week7/week7/Assets.xcassets/icetray.imageset/Contents.json create mode 100644 week7/week7/Assets.xcassets/icetray.imageset/icetray.jpeg create mode 100644 week7/week7/Assets.xcassets/pink.imageset/Contents.json create mode 100644 week7/week7/Assets.xcassets/pink.imageset/pink.jpeg create mode 100644 week7/week7/Assets.xcassets/silver.imageset/Contents.json create mode 100644 week7/week7/Assets.xcassets/silver.imageset/silver.jpeg create mode 100644 week7/week7/Assets.xcassets/spaceGray.imageset/Contents.json create mode 100644 week7/week7/Assets.xcassets/spaceGray.imageset/spaceGray.jpeg create mode 100644 week7/week7/ContentView.swift create mode 100644 week7/week7/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 week7/week7/week7App.swift 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 0000000000000000000000000000000000000000..664987c3c53d092c993f13fc64836b40afab8747 GIT binary patch literal 4349 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 KfKu1}?Ee6;M^hL8 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c180cefa878976cf520ba147a285451b34f608ec GIT binary patch literal 7286 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 literal 0 HcmV?d00001 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() + } + } +}