From c237d6923bc7ee57fb2ff14ee56941bd4a79c0d2 Mon Sep 17 00:00:00 2001 From: 00yhsp <00yhsp@naver.com> Date: Wed, 29 Nov 2023 03:22:23 +0900 Subject: [PATCH] week8 --- 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 -- .../week8.xcodeproj}/project.pbxproj | 159 ++++----- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../AccentColor.colorset/Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../week8}/Assets.xcassets/Contents.json | 0 .../hot.imageset/Contents.json | 21 ++ ...1-28 \354\230\244\355\233\204 8.35.05.png" | Bin 0 -> 7157 bytes .../pizza.imageset/Contents.json | 21 ++ .../Assets.xcassets/pizza.imageset/pizza.jpeg | Bin 0 -> 10809 bytes week8/week8/ContentView.swift | 302 ++++++++++++++++++ .../Preview Assets.xcassets/Contents.json | 6 + week8/week8/week8App.swift | 17 + 21 files changed, 437 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 => week8/week8.xcodeproj}/project.pbxproj (60%) rename {iOS_Study_A.xcodeproj => week8/week8.xcodeproj}/project.xcworkspace/contents.xcworkspacedata (100%) rename {iOS_Study_A.xcodeproj => week8/week8.xcodeproj}/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {iOS_Study_A => week8/week8}/Assets.xcassets/AccentColor.colorset/Contents.json (100%) rename {iOS_Study_A => week8/week8}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {iOS_Study_A => week8/week8}/Assets.xcassets/Contents.json (100%) create mode 100644 week8/week8/Assets.xcassets/hot.imageset/Contents.json create mode 100644 "week8/week8/Assets.xcassets/hot.imageset/\354\212\244\355\201\254\353\246\260\354\203\267 2023-11-28 \354\230\244\355\233\204 8.35.05.png" create mode 100644 week8/week8/Assets.xcassets/pizza.imageset/Contents.json create mode 100644 week8/week8/Assets.xcassets/pizza.imageset/pizza.jpeg create mode 100644 week8/week8/ContentView.swift create mode 100644 week8/week8/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 week8/week8/week8App.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/week8/week8.xcodeproj/project.pbxproj similarity index 60% rename from iOS_Study_A.xcodeproj/project.pbxproj rename to week8/week8.xcodeproj/project.pbxproj index 1f5c336..1369398 100644 --- a/iOS_Study_A.xcodeproj/project.pbxproj +++ b/week8/week8.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 */; }; + DF0A2FDB2B15B85C004B63CF /* week8App.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF0A2FDA2B15B85C004B63CF /* week8App.swift */; }; + DF0A2FDD2B15B85C004B63CF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF0A2FDC2B15B85C004B63CF /* ContentView.swift */; }; + DF0A2FDF2B15B85E004B63CF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DF0A2FDE2B15B85E004B63CF /* Assets.xcassets */; }; + DF0A2FE22B15B85E004B63CF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DF0A2FE12B15B85E004B63CF /* 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 = ""; }; + DF0A2FD72B15B85C004B63CF /* week8.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = week8.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DF0A2FDA2B15B85C004B63CF /* week8App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = week8App.swift; sourceTree = ""; }; + DF0A2FDC2B15B85C004B63CF /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + DF0A2FDE2B15B85E004B63CF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + DF0A2FE12B15B85E004B63CF /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 954B6B5A2AC57BE100FDCFAB /* Frameworks */ = { + DF0A2FD42B15B85C004B63CF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -37,72 +32,77 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 954B6B542AC57BE100FDCFAB = { + DF0A2FCE2B15B85C004B63CF = { isa = PBXGroup; children = ( - 954B6B5F2AC57BE100FDCFAB /* iOS_Study_A */, - 954B6B5E2AC57BE100FDCFAB /* Products */, + DF0A2FD92B15B85C004B63CF /* week8 */, + DF0A2FD82B15B85C004B63CF /* Products */, ); sourceTree = ""; }; - 954B6B5E2AC57BE100FDCFAB /* Products */ = { + DF0A2FD82B15B85C004B63CF /* Products */ = { isa = PBXGroup; children = ( - 954B6B5D2AC57BE100FDCFAB /* iOS_Study_A.app */, + DF0A2FD72B15B85C004B63CF /* week8.app */, ); name = Products; sourceTree = ""; }; - 954B6B5F2AC57BE100FDCFAB /* iOS_Study_A */ = { + DF0A2FD92B15B85C004B63CF /* week8 */ = { isa = PBXGroup; children = ( - 954B6B602AC57BE100FDCFAB /* AppDelegate.swift */, - 954B6B622AC57BE100FDCFAB /* SceneDelegate.swift */, - 954B6B642AC57BE100FDCFAB /* ViewController.swift */, - 954B6B662AC57BE100FDCFAB /* Main.storyboard */, - 954B6B692AC57BE200FDCFAB /* Assets.xcassets */, - 954B6B6B2AC57BE200FDCFAB /* LaunchScreen.storyboard */, - 954B6B6E2AC57BE200FDCFAB /* Info.plist */, + DF0A2FDA2B15B85C004B63CF /* week8App.swift */, + DF0A2FDC2B15B85C004B63CF /* ContentView.swift */, + DF0A2FDE2B15B85E004B63CF /* Assets.xcassets */, + DF0A2FE02B15B85E004B63CF /* Preview Content */, ); - path = iOS_Study_A; + path = week8; + sourceTree = ""; + }; + DF0A2FE02B15B85E004B63CF /* Preview Content */ = { + isa = PBXGroup; + children = ( + DF0A2FE12B15B85E004B63CF /* Preview Assets.xcassets */, + ); + path = "Preview Content"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 954B6B5C2AC57BE100FDCFAB /* iOS_Study_A */ = { + DF0A2FD62B15B85C004B63CF /* week8 */ = { isa = PBXNativeTarget; - buildConfigurationList = 954B6B712AC57BE200FDCFAB /* Build configuration list for PBXNativeTarget "iOS_Study_A" */; + buildConfigurationList = DF0A2FE52B15B85E004B63CF /* Build configuration list for PBXNativeTarget "week8" */; buildPhases = ( - 954B6B592AC57BE100FDCFAB /* Sources */, - 954B6B5A2AC57BE100FDCFAB /* Frameworks */, - 954B6B5B2AC57BE100FDCFAB /* Resources */, + DF0A2FD32B15B85C004B63CF /* Sources */, + DF0A2FD42B15B85C004B63CF /* Frameworks */, + DF0A2FD52B15B85C004B63CF /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = iOS_Study_A; - productName = iOS_Study_A; - productReference = 954B6B5D2AC57BE100FDCFAB /* iOS_Study_A.app */; + name = week8; + productName = week8; + productReference = DF0A2FD72B15B85C004B63CF /* week8.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 954B6B552AC57BE100FDCFAB /* Project object */ = { + DF0A2FCF2B15B85C004B63CF /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1430; LastUpgradeCheck = 1430; TargetAttributes = { - 954B6B5C2AC57BE100FDCFAB = { + DF0A2FD62B15B85C004B63CF = { CreatedOnToolsVersion = 14.3.1; }; }; }; - buildConfigurationList = 954B6B582AC57BE100FDCFAB /* Build configuration list for PBXProject "iOS_Study_A" */; + buildConfigurationList = DF0A2FD22B15B85C004B63CF /* Build configuration list for PBXProject "week8" */; compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; @@ -110,63 +110,42 @@ en, Base, ); - mainGroup = 954B6B542AC57BE100FDCFAB; - productRefGroup = 954B6B5E2AC57BE100FDCFAB /* Products */; + mainGroup = DF0A2FCE2B15B85C004B63CF; + productRefGroup = DF0A2FD82B15B85C004B63CF /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 954B6B5C2AC57BE100FDCFAB /* iOS_Study_A */, + DF0A2FD62B15B85C004B63CF /* week8 */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 954B6B5B2AC57BE100FDCFAB /* Resources */ = { + DF0A2FD52B15B85C004B63CF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 954B6B6D2AC57BE200FDCFAB /* LaunchScreen.storyboard in Resources */, - 954B6B6A2AC57BE200FDCFAB /* Assets.xcassets in Resources */, - 954B6B682AC57BE100FDCFAB /* Main.storyboard in Resources */, + DF0A2FE22B15B85E004B63CF /* Preview Assets.xcassets in Resources */, + DF0A2FDF2B15B85E004B63CF /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 954B6B592AC57BE100FDCFAB /* Sources */ = { + DF0A2FD32B15B85C004B63CF /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 954B6B652AC57BE100FDCFAB /* ViewController.swift in Sources */, - 954B6B612AC57BE100FDCFAB /* AppDelegate.swift in Sources */, - 954B6B632AC57BE100FDCFAB /* SceneDelegate.swift in Sources */, + DF0A2FDD2B15B85C004B63CF /* ContentView.swift in Sources */, + DF0A2FDB2B15B85C004B63CF /* week8App.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 */ = { + DF0A2FE32B15B85E004B63CF /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -226,7 +205,7 @@ }; name = Debug; }; - 954B6B702AC57BE200FDCFAB /* Release */ = { + DF0A2FE42B15B85E004B63CF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -280,18 +259,19 @@ }; name = Release; }; - 954B6B722AC57BE200FDCFAB /* Debug */ = { + DF0A2FE62B15B85E004B63CF /* 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 = "\"week8/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.week8; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -307,18 +287,19 @@ }; name = Debug; }; - 954B6B732AC57BE200FDCFAB /* Release */ = { + DF0A2FE72B15B85E004B63CF /* 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 = "\"week8/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.week8; 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" */ = { + DF0A2FD22B15B85C004B63CF /* Build configuration list for PBXProject "week8" */ = { isa = XCConfigurationList; buildConfigurations = ( - 954B6B6F2AC57BE200FDCFAB /* Debug */, - 954B6B702AC57BE200FDCFAB /* Release */, + DF0A2FE32B15B85E004B63CF /* Debug */, + DF0A2FE42B15B85E004B63CF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 954B6B712AC57BE200FDCFAB /* Build configuration list for PBXNativeTarget "iOS_Study_A" */ = { + DF0A2FE52B15B85E004B63CF /* Build configuration list for PBXNativeTarget "week8" */ = { isa = XCConfigurationList; buildConfigurations = ( - 954B6B722AC57BE200FDCFAB /* Debug */, - 954B6B732AC57BE200FDCFAB /* Release */, + DF0A2FE62B15B85E004B63CF /* Debug */, + DF0A2FE72B15B85E004B63CF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 954B6B552AC57BE100FDCFAB /* Project object */; + rootObject = DF0A2FCF2B15B85C004B63CF /* Project object */; } diff --git a/iOS_Study_A.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/week8/week8.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from iOS_Study_A.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to week8/week8.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/iOS_Study_A.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/week8/week8.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from iOS_Study_A.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to week8/week8.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/iOS_Study_A/Assets.xcassets/AccentColor.colorset/Contents.json b/week8/week8/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from iOS_Study_A/Assets.xcassets/AccentColor.colorset/Contents.json rename to week8/week8/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/iOS_Study_A/Assets.xcassets/AppIcon.appiconset/Contents.json b/week8/week8/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from iOS_Study_A/Assets.xcassets/AppIcon.appiconset/Contents.json rename to week8/week8/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/iOS_Study_A/Assets.xcassets/Contents.json b/week8/week8/Assets.xcassets/Contents.json similarity index 100% rename from iOS_Study_A/Assets.xcassets/Contents.json rename to week8/week8/Assets.xcassets/Contents.json diff --git a/week8/week8/Assets.xcassets/hot.imageset/Contents.json b/week8/week8/Assets.xcassets/hot.imageset/Contents.json new file mode 100644 index 0000000..c3dd4fa --- /dev/null +++ b/week8/week8/Assets.xcassets/hot.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-11-28 แ„‹แ…ฉแ„’แ…ฎ 8.35.05.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/week8/week8/Assets.xcassets/hot.imageset/\354\212\244\355\201\254\353\246\260\354\203\267 2023-11-28 \354\230\244\355\233\204 8.35.05.png" "b/week8/week8/Assets.xcassets/hot.imageset/\354\212\244\355\201\254\353\246\260\354\203\267 2023-11-28 \354\230\244\355\233\204 8.35.05.png" new file mode 100644 index 0000000000000000000000000000000000000000..a72d9e8676ed6349bcd66c509858ce2d03865182 GIT binary patch literal 7157 zcmZ{H1yo$ivgqK0Yaqeh9fC6qFa!t?+}#Zf(8!+3-0dn zCg+@g?p^<_*K5_T+FiD*tGlaqwAw3qTr6@d004lir~uJGV3|JvL`OV-YXP%*6)kXbk`;M5pRv=xKf<%{6?N2nG^>!7sN|2+EO)!^V&mctYY5QGrbG zuzU-7vL{BZdR-A!F|1zTy{H_y8go<5GS*#-?y5FLB;(7}!<@rxzsK9r%*Xel-pIOH+(k)TFz;e6rxidV48 zpo>S{i4E*x2|%J=l)#mS2?&k>=&JCsP^1GuL|sJ7)j0bIb z{YXI3$Bt2k0JVu_7?VE0&Ll#jC@LN8xu74N7vXU@J-`kp>i+Z;`--4c))6BBPVoIa z^O@9^)xC;}Iqi z*e4{n1XczybPK8|Dd06$P?Y-122KgZ?F91EVn;oJeEb^hJPJz88a{YIVcQn#le{E0 zoOLjcE>KKgZ$L3@7O;Aa3{?mjv@I&8HF<(vIhyiWpZ$SSw=jw$!P7J?8?Le4IYR2H zb(3M^=4F8eCyA-B;`g=y@XNF zWZg84hbn`ofzNOtT4yC7d@g!r@WzZwqKZC9glw-C41Y;JMyMb!k2@631H@Awq4HxU zU}7rs07YSkuBKYL#fb3etS1-(PkPqc(BKC@3Q?!@B$^4h6+VD+*|^`TXl+E3ZMrg8 zq+Ty8fl16l&AI^mv;1JB0i>RW+z4u)4||wsMzl!!V8DB=p{^(rxdb3JF_`a)m>ww+ zFCJUt3=2%S)`?d;SVTOabw2RpZ z;^W~p(uH_$h;m9y5-!AQ3|%6c4sK>4!k1!~K(X@B#6yji@aA*#s`7%L8THaVrYdkh zEHZ32>{U-CW)IOfRsDG695pE|?bx?84sYhcD)%g`OQXEXhA!Ndo6zds)Vp3b4v zI%+STeB=%M@i31Q*hIlDRg3+M37-z*-F_f-`F8#`Um1P%dBVB+Mi!r*%Z1tK=<%GC zRv!Lnl9ZptY0dqt{vM+jwRp&L0J;~Y1Kgmd2qw|gLd~Hw1FrXx12wD3UnTgUc5J}zz+fH9UY5swhoG@ zz+G?W5gNc1)#2fx)Ll-j2ws;7&(#&p&Bz?zN~tVWuzRErzhct6-gOLQf2FbIWE-IJ z8>Y{pr*3GuN8+SF88B)TQZ((8w~=$Uy`J1i$z6iH6e%IF�eJ9lFs!KXb%r?E;Mf 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 Q)9}Bs)BnG(dLDlNKU{=zJ^%m! literal 0 HcmV?d00001 diff --git a/week8/week8/ContentView.swift b/week8/week8/ContentView.swift new file mode 100644 index 0000000..8164462 --- /dev/null +++ b/week8/week8/ContentView.swift @@ -0,0 +1,302 @@ +// +// ContentView.swift +// week8 +// +// Created by ๋ฐ•ํ˜„์ˆ˜ on 2023/11/28. +// + +import SwiftUI + +class TextUpdater: ObservableObject { + @Published var price = 0 + @Published var additionalPrice = 0 +} + + +struct MyTabBarView: View { + @ObservedObject var textUpdater: TextUpdater + @State var isPresented = false + + func formatNumber(_ value: Int) -> String { + let numberFormatter = NumberFormatter() + numberFormatter.numberStyle = .decimal + return numberFormatter.string(from: NSNumber(value: value)) ?? "" + } + + var body: some View { + HStack { + VStack(alignment: .leading) { + HStack { + Text("๋ฐฐ๋‹ฌ์ตœ์†Œ์ฃผ๋ฌธ๊ธˆ์•ก").foregroundColor(Color.gray).font(.system(size: 15)) + Text("") + } + HStack { + Text("17,000์›") + Text("") + } + }.padding() + Button(action: { + self.isPresented.toggle() + }) { + Text("\(formatNumber(textUpdater.price + textUpdater.additionalPrice))์› ๋‹ด๊ธฐ") + .frame(maxWidth: .infinity, maxHeight: 60) + .foregroundColor(Color.white) + .font(.headline).bold() + }.background(RoundedRectangle(cornerRadius: 10, style: .continuous) + .fill(Color(UIColor(hex: 0x48D1CC)))) + .fullScreenCover(isPresented: $isPresented) { + NextView(price: textUpdater.price + textUpdater.additionalPrice) + } + .padding() + } + } +} + + +struct StoreView: View { + + let textUpdater = TextUpdater() + + @State private var isMediumSelected = false + @State private var isLargeSelected = false + @State private var isDoughSelected = false + @State private var isToppingSelected = false + + var body: some View { + + List() { + Image("pizza").resizable() + .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.width * 9 / 16) + VStack { + HStack { + Image("hot").resizable().frame(width: 30, height: 30) + Text("[์žฌ์ฃผ๋ฌธ1์œ„] ๋ฐ”์‹น๋ถˆ๊ณ ๊ธฐํ”ผ์ž").font(.title3).bold() + Spacer() + } + Text("๋ฐ”์‹น ์ตํžŒ ๋ถˆ๊ณ ๊ธฐ์˜ ํ’๋ฏธ๋ฅผ ์ž…์•ˆ ๊ฐ€๋“ ๋Š๋‚„ ์ˆ˜ ์žˆ๋Š” ์ž๊ฐ€์ œ๋นต์„ ๋ช…ํฌํ”ผ์ž์˜ ์•ผ์‹ฌ์ž‘").foregroundColor(Color.gray) + HStack { + Text(" ") + Text("์˜์–‘์„ฑ๋ถ„ ๋ฐ ์•Œ๋ ˆ๋ฅด๊ธฐ ์„ฑ๋ถ„ ํ‘œ์‹œ ๋ณด๊ธฐ") + .font(.system(size: 10)) + .padding(3) + .background(Color(.systemGray6)) + .cornerRadius(5) + Spacer() + } + }.listRowSeparator(.hidden, edges: .top) + VStack { + HStack { + Text("๊ฐ€๊ฒฉ").font(.title3).bold() + Spacer() + Text("ํ•„์ˆ˜") + .padding(.horizontal, 7) + .padding(.vertical, 3) + .foregroundColor(Color.blue).background(Color.blue.opacity(0.2)).cornerRadius(10) + } + Text("") + Text("") + HStack { + Button(action: { + if isLargeSelected { + textUpdater.price -= 5000 + isLargeSelected = false + isMediumSelected = true + } else { + if isMediumSelected { + textUpdater.price -= 20000 + isMediumSelected = false + } + else { + textUpdater.price += 20000 + isMediumSelected = true + } + } + }) { + Image(systemName: isMediumSelected ? "circle.fill" : "circle") + }.buttonStyle(PlainButtonStyle()) + Text("M") + Spacer() + Text("20,000์›") + } + Text("") + Text("") + HStack { + Button(action: { + if isMediumSelected { + textUpdater.price += 5000 + isMediumSelected = false + isLargeSelected = true + } else { + if isLargeSelected { + textUpdater.price -= 25000 + isLargeSelected = false + } + else { + textUpdater.price += 25000 + isLargeSelected = true + } + } + }) { + Image(systemName: isLargeSelected ? "circle.fill" : "circle") + } + Text("L") + Spacer() + Text("25,000์›") + } + Text("") + } + VStack { + HStack { + Text("๋„์šฐ๋ณ€๊ฒฝ").font(.title3).bold() + Spacer() + Text("์„ ํƒ") + .foregroundColor(Color(.darkGray)) + .padding(.horizontal, 7) + .padding(.vertical, 3) + .background(Color.gray.opacity(0.2)) + .cornerRadius(10) + } + HStack { + Text("์ตœ๋Œ€ 1๊ฐœ ์„ ํƒ").foregroundColor(Color(.darkGray)).font(.system(size: 15)) + Spacer() + } + Text("") + Text("") + HStack { + Button(action: { + if isDoughSelected { + isDoughSelected = false + textUpdater.additionalPrice -= 4500 + } + else { + isDoughSelected = true + textUpdater.additionalPrice += 4500 + } + }) { + Image(systemName: isDoughSelected ? "square.fill" : "square") + }.buttonStyle(PlainButtonStyle()) + Text("ํฌ๋ฆผ๋ฆฌ์น˜๊ณจ๋“œ ํฌ๋Ÿฌ์ŠคํŠธ") + Spacer() + Text("+4,500์›") + } + Text("") + } + VStack { + HStack { + Text("ํ† ํ•‘์ถ”๊ฐ€").font(.title3).bold() + Spacer() + Text("์„ ํƒ") + .foregroundColor(Color(.darkGray)) + .padding(.horizontal, 7) + .padding(.vertical, 3) + .background(Color.gray.opacity(0.2)) + .cornerRadius(10) + } + HStack { + Text("์ตœ๋Œ€ 1๊ฐœ ์„ ํƒ").foregroundColor(Color(.darkGray)).font(.system(size: 15)) + Spacer() + } + Text("") + Text("") + HStack { + Button(action: { + if isToppingSelected { + isToppingSelected = false + textUpdater.additionalPrice -= 700 + } + else { + isToppingSelected = true + textUpdater.additionalPrice += 700 + } + }) { + Image(systemName: isToppingSelected ? "square.fill" : "square") + }.buttonStyle(PlainButtonStyle()) + Text("์˜ฅ์ˆ˜์ˆ˜") + Spacer() + Text("+700์›") + } + Text("") + } + }.listStyle(.plain) + .edgesIgnoringSafeArea(.top) + .listRowBackground( + RoundedRectangle(cornerRadius: 10) + .stroke(Color.red, lineWidth: 2) + ) + MyTabBarView(textUpdater: textUpdater) + } +} + +struct ContentView: View { + + init() { + UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default) + UINavigationBar.appearance().shadowImage = UIImage() + } + + var body: some View { + NavigationView { + VStack{ + StoreView() + .edgesIgnoringSafeArea(.top) + .navigationBarItems( + leading: + HStack { + Image(systemName: "arrow.left") + .foregroundColor(.black) + .padding(.leading, 5) + }, + trailing: + HStack { + Image(systemName: "house.fill") + Image(systemName: "square.and.arrow.up.fill") + Image(systemName: "cart.fill") + } + ).accentColor(.black) + + } + + } + } +} + +struct NextView: View { + @Environment(\.dismiss) private var dismiss + + let price: Int + + init(price: Int) { + self.price = price + } + + func formatNumber(_ value: Int) -> String { + let numberFormatter = NumberFormatter() + numberFormatter.numberStyle = .decimal + return numberFormatter.string(from: NSNumber(value: value)) ?? "" + } + + var body: some View { + Text(formatNumber(price)).onTapGesture { + dismiss() + } + } +} + +extension UIColor { + convenience init(hex: Int, alpha: CGFloat = 1.0) { + self.init( + red: CGFloat((hex >> 16) & 0xFF) / 255.0, + green: CGFloat((hex >> 8) & 0xFF) / 255.0, + blue: CGFloat(hex & 0xFF) / 255.0, + alpha: alpha + ) + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} + + diff --git a/week8/week8/Preview Content/Preview Assets.xcassets/Contents.json b/week8/week8/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/week8/week8/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/week8/week8/week8App.swift b/week8/week8/week8App.swift new file mode 100644 index 0000000..034f0ec --- /dev/null +++ b/week8/week8/week8App.swift @@ -0,0 +1,17 @@ +// +// week8App.swift +// week8 +// +// Created by ๋ฐ•ํ˜„์ˆ˜ on 2023/11/28. +// + +import SwiftUI + +@main +struct week8App: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +}