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조
-
-
-
-## 💻 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/week6.xcodeproj/project.pbxproj
similarity index 60%
rename from iOS_Study_A.xcodeproj/project.pbxproj
rename to week6.xcodeproj/project.pbxproj
index 1f5c336..2b61da7 100644
--- a/iOS_Study_A.xcodeproj/project.pbxproj
+++ b/week6.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 */; };
+ DFF73F6C2B0C978A00947E3E /* week6App.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFF73F6B2B0C978A00947E3E /* week6App.swift */; };
+ DFF73F6E2B0C978A00947E3E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFF73F6D2B0C978A00947E3E /* ContentView.swift */; };
+ DFF73F702B0C978C00947E3E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DFF73F6F2B0C978C00947E3E /* Assets.xcassets */; };
+ DFF73F732B0C978C00947E3E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DFF73F722B0C978C00947E3E /* 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 = ""; };
+ DFF73F682B0C978A00947E3E /* week6.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = week6.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ DFF73F6B2B0C978A00947E3E /* week6App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = week6App.swift; sourceTree = ""; };
+ DFF73F6D2B0C978A00947E3E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
+ DFF73F6F2B0C978C00947E3E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ DFF73F722B0C978C00947E3E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- 954B6B5A2AC57BE100FDCFAB /* Frameworks */ = {
+ DFF73F652B0C978A00947E3E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -37,72 +32,77 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 954B6B542AC57BE100FDCFAB = {
+ DFF73F5F2B0C978A00947E3E = {
isa = PBXGroup;
children = (
- 954B6B5F2AC57BE100FDCFAB /* iOS_Study_A */,
- 954B6B5E2AC57BE100FDCFAB /* Products */,
+ DFF73F6A2B0C978A00947E3E /* week6 */,
+ DFF73F692B0C978A00947E3E /* Products */,
);
sourceTree = "";
};
- 954B6B5E2AC57BE100FDCFAB /* Products */ = {
+ DFF73F692B0C978A00947E3E /* Products */ = {
isa = PBXGroup;
children = (
- 954B6B5D2AC57BE100FDCFAB /* iOS_Study_A.app */,
+ DFF73F682B0C978A00947E3E /* week6.app */,
);
name = Products;
sourceTree = "";
};
- 954B6B5F2AC57BE100FDCFAB /* iOS_Study_A */ = {
+ DFF73F6A2B0C978A00947E3E /* week6 */ = {
isa = PBXGroup;
children = (
- 954B6B602AC57BE100FDCFAB /* AppDelegate.swift */,
- 954B6B622AC57BE100FDCFAB /* SceneDelegate.swift */,
- 954B6B642AC57BE100FDCFAB /* ViewController.swift */,
- 954B6B662AC57BE100FDCFAB /* Main.storyboard */,
- 954B6B692AC57BE200FDCFAB /* Assets.xcassets */,
- 954B6B6B2AC57BE200FDCFAB /* LaunchScreen.storyboard */,
- 954B6B6E2AC57BE200FDCFAB /* Info.plist */,
+ DFF73F6B2B0C978A00947E3E /* week6App.swift */,
+ DFF73F6D2B0C978A00947E3E /* ContentView.swift */,
+ DFF73F6F2B0C978C00947E3E /* Assets.xcassets */,
+ DFF73F712B0C978C00947E3E /* Preview Content */,
);
- path = iOS_Study_A;
+ path = week6;
+ sourceTree = "";
+ };
+ DFF73F712B0C978C00947E3E /* Preview Content */ = {
+ isa = PBXGroup;
+ children = (
+ DFF73F722B0C978C00947E3E /* Preview Assets.xcassets */,
+ );
+ path = "Preview Content";
sourceTree = "";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
- 954B6B5C2AC57BE100FDCFAB /* iOS_Study_A */ = {
+ DFF73F672B0C978A00947E3E /* week6 */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 954B6B712AC57BE200FDCFAB /* Build configuration list for PBXNativeTarget "iOS_Study_A" */;
+ buildConfigurationList = DFF73F762B0C978C00947E3E /* Build configuration list for PBXNativeTarget "week6" */;
buildPhases = (
- 954B6B592AC57BE100FDCFAB /* Sources */,
- 954B6B5A2AC57BE100FDCFAB /* Frameworks */,
- 954B6B5B2AC57BE100FDCFAB /* Resources */,
+ DFF73F642B0C978A00947E3E /* Sources */,
+ DFF73F652B0C978A00947E3E /* Frameworks */,
+ DFF73F662B0C978A00947E3E /* Resources */,
);
buildRules = (
);
dependencies = (
);
- name = iOS_Study_A;
- productName = iOS_Study_A;
- productReference = 954B6B5D2AC57BE100FDCFAB /* iOS_Study_A.app */;
+ name = week6;
+ productName = week6;
+ productReference = DFF73F682B0C978A00947E3E /* week6.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
- 954B6B552AC57BE100FDCFAB /* Project object */ = {
+ DFF73F602B0C978A00947E3E /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1430;
LastUpgradeCheck = 1430;
TargetAttributes = {
- 954B6B5C2AC57BE100FDCFAB = {
+ DFF73F672B0C978A00947E3E = {
CreatedOnToolsVersion = 14.3.1;
};
};
};
- buildConfigurationList = 954B6B582AC57BE100FDCFAB /* Build configuration list for PBXProject "iOS_Study_A" */;
+ buildConfigurationList = DFF73F632B0C978A00947E3E /* Build configuration list for PBXProject "week6" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -110,63 +110,42 @@
en,
Base,
);
- mainGroup = 954B6B542AC57BE100FDCFAB;
- productRefGroup = 954B6B5E2AC57BE100FDCFAB /* Products */;
+ mainGroup = DFF73F5F2B0C978A00947E3E;
+ productRefGroup = DFF73F692B0C978A00947E3E /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
- 954B6B5C2AC57BE100FDCFAB /* iOS_Study_A */,
+ DFF73F672B0C978A00947E3E /* week6 */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
- 954B6B5B2AC57BE100FDCFAB /* Resources */ = {
+ DFF73F662B0C978A00947E3E /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 954B6B6D2AC57BE200FDCFAB /* LaunchScreen.storyboard in Resources */,
- 954B6B6A2AC57BE200FDCFAB /* Assets.xcassets in Resources */,
- 954B6B682AC57BE100FDCFAB /* Main.storyboard in Resources */,
+ DFF73F732B0C978C00947E3E /* Preview Assets.xcassets in Resources */,
+ DFF73F702B0C978C00947E3E /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
- 954B6B592AC57BE100FDCFAB /* Sources */ = {
+ DFF73F642B0C978A00947E3E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 954B6B652AC57BE100FDCFAB /* ViewController.swift in Sources */,
- 954B6B612AC57BE100FDCFAB /* AppDelegate.swift in Sources */,
- 954B6B632AC57BE100FDCFAB /* SceneDelegate.swift in Sources */,
+ DFF73F6E2B0C978A00947E3E /* ContentView.swift in Sources */,
+ DFF73F6C2B0C978A00947E3E /* week6App.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 */ = {
+ DFF73F742B0C978C00947E3E /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -226,7 +205,7 @@
};
name = Debug;
};
- 954B6B702AC57BE200FDCFAB /* Release */ = {
+ DFF73F752B0C978C00947E3E /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@@ -280,18 +259,19 @@
};
name = Release;
};
- 954B6B722AC57BE200FDCFAB /* Debug */ = {
+ DFF73F772B0C978C00947E3E /* 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 = "\"week6/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.week6;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
@@ -307,18 +287,19 @@
};
name = Debug;
};
- 954B6B732AC57BE200FDCFAB /* Release */ = {
+ DFF73F782B0C978C00947E3E /* 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 = "\"week6/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.week6;
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" */ = {
+ DFF73F632B0C978A00947E3E /* Build configuration list for PBXProject "week6" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 954B6B6F2AC57BE200FDCFAB /* Debug */,
- 954B6B702AC57BE200FDCFAB /* Release */,
+ DFF73F742B0C978C00947E3E /* Debug */,
+ DFF73F752B0C978C00947E3E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 954B6B712AC57BE200FDCFAB /* Build configuration list for PBXNativeTarget "iOS_Study_A" */ = {
+ DFF73F762B0C978C00947E3E /* Build configuration list for PBXNativeTarget "week6" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 954B6B722AC57BE200FDCFAB /* Debug */,
- 954B6B732AC57BE200FDCFAB /* Release */,
+ DFF73F772B0C978C00947E3E /* Debug */,
+ DFF73F782B0C978C00947E3E /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
- rootObject = 954B6B552AC57BE100FDCFAB /* Project object */;
+ rootObject = DFF73F602B0C978A00947E3E /* Project object */;
}
diff --git a/iOS_Study_A.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/week6.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from iOS_Study_A.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to week6.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/iOS_Study_A.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/week6.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from iOS_Study_A.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to week6.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/iOS_Study_A/Assets.xcassets/AccentColor.colorset/Contents.json b/week6/Assets.xcassets/AccentColor.colorset/Contents.json
similarity index 100%
rename from iOS_Study_A/Assets.xcassets/AccentColor.colorset/Contents.json
rename to week6/Assets.xcassets/AccentColor.colorset/Contents.json
diff --git a/iOS_Study_A/Assets.xcassets/AppIcon.appiconset/Contents.json b/week6/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from iOS_Study_A/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to week6/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/iOS_Study_A/Assets.xcassets/Contents.json b/week6/Assets.xcassets/Contents.json
similarity index 100%
rename from iOS_Study_A/Assets.xcassets/Contents.json
rename to week6/Assets.xcassets/Contents.json
diff --git a/week6/ContentView.swift b/week6/ContentView.swift
new file mode 100644
index 0000000..1931bdd
--- /dev/null
+++ b/week6/ContentView.swift
@@ -0,0 +1,277 @@
+//
+// ContentView.swift
+// week6
+//
+// Created by 박현수 on 2023/11/21.
+//
+
+import SwiftUI
+
+
+struct ContentView: View {
+ var body: some View {
+
+ let affordableView = BaedalView(viewTitle: "알뜰배달", viewContent: "쿠폰 골라 받기")
+ let baedalView = BaedalView(viewTitle: "배달", viewContent: "세상은 넓고\n맛집은 많다")
+ let storeView = BaedalView(viewTitle: "배민스토어", viewContent: "배달은 지금\n옵니다")
+ let menuView = MenuView()
+ let sinjeonView = SinJeonView()
+
+ TabView {
+ ZStack {
+
+ Color(.systemGray6)
+
+ VStack {
+
+ ZStack {
+
+ Color(UIColor(hex: 0x48D1CC))
+ .frame(height: UIScreen.main.bounds.height / 6)
+ .cornerRadius(20)
+
+ VStack {
+
+ HStack {
+ Button {} label: {Label("우리집", systemImage: "chevron.down").padding(.leading).foregroundColor(Color.white)}
+ Spacer()
+ Button {} label: {Image(systemName: "square.grid.2x2").foregroundColor(Color.white)}
+ Button {} label: {Image(systemName: "bell").foregroundColor(Color.white)}
+ Button {} label: {Image(systemName: "cart").padding(.trailing).foregroundColor(Color.white)}
+ }.padding(.top, 50)
+ SearchBar()
+ .padding(.horizontal)
+ .padding(.bottom, 10)
+ }
+
+ }.ignoresSafeArea()
+
+ ZipCokView()
+ .frame(width: UIScreen.main.bounds.width * 6 / 7,
+ height: UIScreen.main.bounds.height / 7)
+ .background(Color.white)
+ .cornerRadius(10)
+
+ HStack(spacing: 20) {
+
+ ZStack {
+ Color.white
+ .cornerRadius(10)
+ affordableView
+ }.frame(width: UIScreen.main.bounds.width / 4, height: UIScreen.main.bounds.height / 8)
+
+ ZStack {
+ Color.white
+ .cornerRadius(10)
+ baedalView
+ }.frame(width: UIScreen.main.bounds.width / 4, height: UIScreen.main.bounds.height / 8)
+
+ ZStack {
+ Color.white
+ .cornerRadius(10)
+ storeView
+ }.frame(width: UIScreen.main.bounds.width / 4, height: UIScreen.main.bounds.height / 8)
+ }.padding(.top, 20)
+
+ menuView.background(Color.white)
+ .cornerRadius(15)
+ .frame(width: UIScreen.main.bounds.width * 6 / 7)
+ .padding(.top, 20)
+
+ sinjeonView.background(Color.white)
+ .cornerRadius(15)
+ .frame(width: UIScreen.main.bounds.width * 6 / 7)
+ .padding(.top, 20)
+ Spacer()
+
+ }
+ }
+ .tabItem {
+ Image(systemName: "magnifyingglass")
+ Text("검색")
+ }
+ Text("찜")
+ .tabItem {
+ Image(systemName: "heart")
+ Text("찜")
+ }
+ Text("배민")
+ .tabItem {
+ Image(systemName: "circle.fill")
+ Text("배민")
+ }
+ Text("주문내역")
+ .tabItem {
+ Image(systemName: "creditcard")
+ Text("주문내역")
+ }
+ Text("My배민")
+ .tabItem {
+ Image(systemName: "person.circle")
+ Text("My배민")
+ }
+ }.background(Color.white)
+ }
+}
+
+
+struct ContentView_Previews: PreviewProvider {
+ static var previews: some View {
+ ContentView()
+ }
+}
+
+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 SearchBar: View {
+ @State private var searchText: String = ""
+
+ var body: some View {
+ HStack {
+ Image(systemName: "magnifyingglass")
+ .foregroundColor(.white)
+ TextField("찾으시는 맛집이 있으신가요?", text: $searchText)
+ .foregroundColor(.gray)
+ .padding(8)
+ .background(Color.white)
+ .cornerRadius(8)
+ .padding(.trailing, 8)
+ }
+ }
+}
+
+struct ZipCokView: View {
+ var body: some View {
+ HStack {
+ Text("집콕러세요?")
+ Text("30% 쿠폰")
+ .bold()
+ Text("드려요!")
+ }
+ }
+}
+
+struct BaedalView: View {
+ let viewTitle: String
+ let viewContent: String
+
+ init(viewTitle: String, viewContent: String) {
+ self.viewTitle = viewTitle
+ self.viewContent = viewContent
+ }
+
+ var body: some View {
+ VStack {
+ Text(viewTitle).bold()
+ Text(viewContent)
+ }
+ }
+}
+
+struct MenuView: View {
+ var body: some View {
+ VStack {
+ HStack(spacing: 20) {
+ Text("대용량특가").bold()
+ Text("많이 살수록 더 저렴하죠")
+ Spacer()
+ Image(systemName: "chevron.forward")
+ }.padding(20)
+ HStack(spacing: 20) {
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "trophy.circle")
+ Text("인기")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "tag.circle")
+ Text("신상품")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "flame.circle")
+ Text("특가")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "bag.circle")
+ Text("쌀 잡곡")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "bathtub")
+ Text("화장지")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ }.padding(.horizontal, 20)
+ HStack(spacing: 20) {
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "trophy.circle")
+ Text("인기")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "tag.circle")
+ Text("신상품")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "flame.circle")
+ Text("특가")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "bag.circle")
+ Text("쌀 잡곡")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ Button(action: {}) {
+ VStack {
+ Image(systemName: "bathtub")
+ Text("화장지")
+ }
+ }.background(Color.white)
+ .cornerRadius(5)
+ }.padding(.horizontal, 20)
+ .padding(.top, 20)
+ }
+ }
+}
+
+struct SinJeonView: View {
+ var body: some View {
+ VStack {
+ Text("신전떡볶이 신메뉴 출시 기념").frame(maxWidth: UIScreen.main.bounds.width * 6 / 7)
+ Text("신전떡볶이 특급 할인")
+ .bold().frame(maxWidth: UIScreen.main.bounds.width * 6 / 7)
+ Text("최대 7000원 할인").frame(maxWidth: UIScreen.main.bounds.width * 6 / 7)
+ }.padding(.horizontal, 20)
+ }
+}
diff --git a/week6/Preview Content/Preview Assets.xcassets/Contents.json b/week6/Preview Content/Preview Assets.xcassets/Contents.json
new file mode 100644
index 0000000..73c0059
--- /dev/null
+++ b/week6/Preview Content/Preview Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/week6/week6App.swift b/week6/week6App.swift
new file mode 100644
index 0000000..ff56dd9
--- /dev/null
+++ b/week6/week6App.swift
@@ -0,0 +1,17 @@
+//
+// week6App.swift
+// week6
+//
+// Created by 박현수 on 2023/11/21.
+//
+
+import SwiftUI
+
+@main
+struct week6App: App {
+ var body: some Scene {
+ WindowGroup {
+ ContentView()
+ }
+ }
+}