From 6b52c247ef9d1d7a559f319f60b19b5e8595d7f6 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Wed, 18 Sep 2024 23:48:51 +0900 Subject: [PATCH 01/29] =?UTF-8?q?[#66]=20priceLabel=20=EC=A0=95=EB=A0=AC?= =?UTF-8?q?=20=EA=B8=B0=EC=A4=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RestaurantTableViewMenuCell.swift | 67 ++++++++++++------- .../Sources/Utility/Extension/Int+.swift | 8 +++ 2 files changed, 51 insertions(+), 24 deletions(-) create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift index 9de6766..7e10de2 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift @@ -12,7 +12,6 @@ import SnapKit class RestaurantTableViewMenuCell: BaseTableViewCell { // MARK: - Properties - static let identifier = "RestaurantTableViewMenuCell" var model: MenuTypeInfo? { @@ -24,50 +23,48 @@ class RestaurantTableViewMenuCell: BaseTableViewCell { } // MARK: - UI Components + private let contentStackView = UIStackView() + private let nameLabel = UILabel() + private let priceLabel = UILabel() + private let ratingLabel = UILabel() - lazy var menuIDLabel = UILabel() - lazy var nameLabel = UILabel().then { - $0.font = .body3 - $0.numberOfLines = 0 - $0.lineBreakMode = .byWordWrapping - } - lazy var priceLabel = UILabel().then { - $0.font = .body3 - } - lazy var ratingLabel = UILabel().then { - $0.font = .body3 - $0.textAlignment = .center + // MARK: - Life Cycle + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + setViewProperties() } - // MARK: - Life Cycle + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } override func prepareForReuse() { super.prepareForReuse() - nameLabel.text = nil priceLabel.text = nil ratingLabel.text = nil } // MARK: - Functions - override func configureUI() { - super.configureUI() - contentView.addSubviews(nameLabel, + contentView.addSubview(contentStackView) + contentStackView.addSubviews(nameLabel, priceLabel, ratingLabel) } override func setLayout() { + contentStackView.snp.makeConstraints { + $0.horizontalEdges.equalToSuperview().inset(12) + } nameLabel.snp.makeConstraints { - $0.leading.equalTo(contentView.snp.leading).offset(16) $0.top.equalTo(contentView.snp.top).offset(11) $0.width.equalTo(210) $0.bottom.equalTo(contentView.snp.bottom).offset(-5) } priceLabel.snp.makeConstraints { - $0.trailing.equalTo(ratingLabel.snp.leading) - $0.width.equalTo(55) + $0.leading.equalTo(nameLabel.snp.trailing) + $0.width.equalTo(60) $0.centerY.equalTo(nameLabel) } ratingLabel.snp.makeConstraints { @@ -76,11 +73,33 @@ class RestaurantTableViewMenuCell: BaseTableViewCell { $0.centerY.equalTo(nameLabel) } } +} + +extension RestaurantTableViewMenuCell { + private func setViewProperties() { + contentStackView.do { + $0.axis = .horizontal + $0.alignment = .center + } + nameLabel.do { + $0.font = .body3 + $0.numberOfLines = 0 + $0.lineBreakMode = .byWordWrapping + } + priceLabel.do { + $0.font = .body3 + $0.textAlignment = .center + } + ratingLabel.do { + $0.font = .body3 + $0.textAlignment = .center + } + } - func bind(_ model: MenuTypeInfo) { + public func bind(_ model: MenuTypeInfo) { switch model { case .change(let data): - priceLabel.text = data.price != nil ? String(data.price!) : "" + priceLabel.text = data.price != nil ? data.price?.formattedWithCommas : "" if data.mainRating != nil { let formatRating = String(format: "%.1f", data.mainRating ?? 0) @@ -98,7 +117,7 @@ class RestaurantTableViewMenuCell: BaseTableViewCell { case .fix(let data): if let price = data.price { - priceLabel.text = String(price) + priceLabel.text = price.formattedWithCommas let formatRating = String(format: "%.1f", data.mainRating ?? 0) ratingLabel.text = formatRating != "0.0" ? formatRating : "-" nameLabel.text = data.name diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift new file mode 100644 index 0000000..19ccd6d --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift @@ -0,0 +1,8 @@ +// +// Int+.swift +// EATSSU +// +// Created by 최지우 on 9/18/24. +// + +import Foundation From 7ab9ab455917ddc7d9d85b84d99f2e17d7ee4096 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Wed, 18 Sep 2024 23:52:17 +0900 Subject: [PATCH 02/29] =?UTF-8?q?[#66]=20Int=20->=20formattedWithCommas?= =?UTF-8?q?=EB=A5=BC=20=ED=86=B5=ED=95=9C=20String=20=EB=B0=98=ED=99=98=20?= =?UTF-8?q?extension=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EATSSU_MVC/Sources/Utility/Extension/Int+.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift index 19ccd6d..24fc833 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift @@ -6,3 +6,13 @@ // import Foundation + +extension Int { + var formattedWithCommas: String { + let formatter = NumberFormatter() + formatter.numberStyle = .decimal + formatter.groupingSeparator = "," + formatter.groupingSize = 3 + return formatter.string(from: NSNumber(value: self)) ?? "\(self)" + } +} From 785f99beefcc18bd1879d524195b47395b7fefda Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Wed, 18 Sep 2024 23:54:38 +0900 Subject: [PATCH 03/29] =?UTF-8?q?[#66]=20formattedWithCommas=20description?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift index 24fc833..1b1d0d5 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift @@ -8,6 +8,8 @@ import Foundation extension Int { + + /// Int 타입 숫자에서 commas(,)를 추가한 String타입을 반환하는 메소드입니다. var formattedWithCommas: String { let formatter = NumberFormatter() formatter.numberStyle = .decimal From 5e12a5deaf78dd4df73126bdc118c576eb165345 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Thu, 19 Sep 2024 15:59:01 +0900 Subject: [PATCH 04/29] =?UTF-8?q?[#83]=20BaseView=20&=20BaseViewController?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=20=EB=82=B4=20=EB=AC=B8=EC=84=9C=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1=20=EB=B0=8F=20=EC=B6=94=EC=83=81=ED=99=94=20?= =?UTF-8?q?=EA=B0=95=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Utility/Base/BaseUIView.swift | 50 ++++++--- .../Utility/Base/BaseViewController.swift | 102 +++++++++++++----- 2 files changed, 109 insertions(+), 43 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseUIView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseUIView.swift index 1ece28f..3248025 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseUIView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseUIView.swift @@ -5,17 +5,23 @@ // Created by 박윤빈 on 2023/03/15. // -/* - 해야 할 일 - - BaseUIView 코드 모듈화 간 재정비 - */ +// TODO: BaseUIView 코드 Utility 모듈로 모듈화 간 재정비 import UIKit +/// EATSSU 앱에서 스크린으로 사용될 UIView 클래스의 BaseView 클래스입니다. +/// +/// # 소속 메소드 +/// - configureUI +/// - setLayout +/// +/// - Important: configureUI()와 setLayout() 메소드를 오버라이딩 해야 합니다. +/// 오버라이딩 하지 않으면 런타임 에러가 발생합니다. class BaseUIView: UIView { override init(frame: CGRect) { super.init(frame: frame) + configureUI() setLayout() } @@ -25,20 +31,36 @@ class BaseUIView: UIView { fatalError("init(coder:) has not been implemented") } - /* - 해야 할 일 - - 아래 메소드들은 꼭 필요한 성격을 가지는 메소드이다. - - 그럼에도 불구하고 꼭 오버라이드 해야 한다는 옵션을 주고 있지 않기 때문에 해당 함수를 꼭 사용해야 한다는 메시지가 담긴 추상화가 부족함. - - 추상화가 부족하기 때문에 3자가 봤을 때 중복되는 함수를 설계할 가능성이 높음. - - 그러므로 Swift 고유의 문법인 Protocol로 해당 부분을 개편할 것 - */ - + /// 서브뷰를 추가하는 코드를 오버라이딩하여 작성해주세요. + /// + /// # Example + /// + /// ```swift + /// override func configureUI() { + /// addSubviews(view1, view2) + /// } + /// ``` + /// + /// - 위의 형식과 같이 서브뷰로 사용할 UIView 클래스를 추가해주시면 됩니다. func configureUI() { - + fatalError("configureUI() must be overridden") } + /// 추가한 서브뷰의 레이아웃을 조정하는 코드를 오버라이딩하여 작성해주세요. + /// + /// # Example + /// + /// ```swift + /// override func setLayout() { + /// view1.snp.makeConstraints { make in + /// make.center.equalToSuperview() + /// } + /// } + /// ``` + /// + /// - 위의 형식과 같이 추가한 서브뷰의 레이아웃을 조정하는 메소드를 작성해주세요. func setLayout() { - + fatalError("setLayout() must be overridden") } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift index e97b343..0be33c2 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift @@ -5,11 +5,23 @@ // Created by 박윤빈 on 2023/03/15. // +// TODO: BaseViewController 코드 Utility 모듈로 모듈화 간 재정비 + import UIKit import Moya import SnapKit +/// EATSSU 앱에서 Controller로 사용하는 BaseViewController 클래스입니다. +/// +/// # 소속 메소드 +/// - configureUI +/// - setLayout +/// - setButtonEvent +/// - setCustomnavigationBar +/// +/// - Important: configureUI와 setLayout 메소드는 필수로 오버라이딩 해야 합니다. +/// 오버라이딩 하지 않으면 런타임 에러가 발생합니다. class BaseViewController: UIViewController { // MARK: - Properties @@ -18,7 +30,7 @@ class BaseViewController: UIViewController { return type(of: self).description().components(separatedBy: ".").last ?? "" }() - // MARK: - Initializing + // MARK: - Initialize override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { super.init(nibName: nil, bundle: nil) @@ -29,6 +41,7 @@ class BaseViewController: UIViewController { fatalError("init(coder:) has not been implemented") } + // TODO: deinit 메소드의 목적이 무엇인지 알아보기 deinit { print("DEINIT: \(className)") } @@ -36,51 +49,82 @@ class BaseViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - setCustomNavigationBar() configureUI() setLayout() setButtonEvent() + setCustomNavigationBar() view.backgroundColor = .systemBackground - } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) if !NetworkMonitor.shared.isConnected { - print("네트워크오류") + print("네트워크 오류") self.showAlertController(title: "오류", message: "네트워크를 확인해주세요", style: .destructive) - } } - //MARK: - Functions - - func configureUI() { - //override Point - - } - - func setLayout() { - //override Point - } + // MARK: - Functions + + /// UIViewController에서 사용 중인 UIView를 연결합니다. + /// + /// 메소드를 오버라이딩해서 View로 사용할 UIView 클래스를 연결하세요. + /// + /// # Example + /// + /// ```swift + /// override func configureUI() { + /// view.addSubview(rootView) + /// } + /// ``` + func configureUI() { + fatalError("configureUI() must be overridden") + } + + /// 연결된 UIView 클래스의 레이아웃을 UIViewController의 View 프로퍼티를 기준으로 레이아웃을 조정합니다. + /// + /// 메소드를 오버라이딩해서 연결된 UIView 클래스의 레이아웃을 조정하세요. + /// + /// # Example + /// + /// ```swift + /// override func setLayout() { + /// rootView.snp.makeConstraints { make in + /// make.edges.equalToSuperView() + /// } + /// } + /// ``` + func setLayout() { + fatalError("setLayout() must be overridden") + } - func setButtonEvent() { - //override Point - } + /// UIViewController에서 버튼이 있다면 버튼 액션을 연결해주세요. + /// + /// 버튼이 있다면 오버라이딩해서 버튼 액션을 연결해주세요. + /// 없는 UIViewController도 있기 때문에 오버라이딩을 강조하지 않습니다. + func setButtonEvent() {} - func setCustomNavigationBar() { - - // 네비게이션 바 타이틀 속성 - navigationController?.navigationBar.titleTextAttributes = [ - .foregroundColor: EATSSUAsset.Color.GrayScale.gray700.color, - NSAttributedString.Key.font: EATSSUFontFamily.Pretendard.bold.font(size: 16) - ] + /// EATSSU 앱에서 사용하고 있는 네비게이션 바의 속성을 정의합니다. + /// + /// # 네비게이션 타이틀 속성 + /// - `gray700`으로 타이틀 색상을 설정합니다. + /// - `Pretendard Bold 16`으로 폰트를 설정합니다. + /// + /// # 네비게이션 백버튼 속성 + /// - `gray500`으로 백버튼 색상을 설정합니다. + func setCustomNavigationBar() { + + // 네비게이션 바 타이틀 속성 + navigationController?.navigationBar.titleTextAttributes = [ + .foregroundColor: EATSSUAsset.Color.GrayScale.gray700.color, + NSAttributedString.Key.font: EATSSUFontFamily.Pretendard.bold.font(size: 16) + ] - // 네비게이션 바 백버튼 속성 - let backButton = UIBarButtonItem() - backButton.tintColor = EATSSUAsset.Color.GrayScale.gray500.color - navigationController?.navigationBar.topItem?.backBarButtonItem = backButton + // 네비게이션 바 백버튼 속성 + let backButton = UIBarButtonItem() + backButton.tintColor = EATSSUAsset.Color.GrayScale.gray500.color + navigationController?.navigationBar.topItem?.backBarButtonItem = backButton } } From 9ad45c6bd1e9335066a53e6fb940f44e412191ac Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Thu, 19 Sep 2024 16:06:47 +0900 Subject: [PATCH 05/29] =?UTF-8?q?[#66]=20formattedWithCommas=20description?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift index 1b1d0d5..198d335 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/Int+.swift @@ -9,7 +9,7 @@ import Foundation extension Int { - /// Int 타입 숫자에서 commas(,)를 추가한 String타입을 반환하는 메소드입니다. + /// Int 타입 숫자에서 commas(,)를 추가한 String타입을 반환하는 computed property 입니다. var formattedWithCommas: String { let formatter = NumberFormatter() formatter.numberStyle = .decimal From 9e64f53bb3ff4795f5a78cf1c6794109ddd9e0d7 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Thu, 19 Sep 2024 16:26:46 +0900 Subject: [PATCH 06/29] =?UTF-8?q?[#85]=20BaseView=20&=20BaseViewController?= =?UTF-8?q?=20=EC=B6=94=EC=83=81=ED=99=94=20=EA=B0=95=ED=99=94=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=EB=88=84=EB=9D=BD=EB=90=9C=20=EC=98=A4?= =?UTF-8?q?=EB=B2=84=EB=9D=BC=EC=9D=B4=EB=94=A9=20=EB=A9=94=EC=86=8C?= =?UTF-8?q?=EB=93=9C=20=EB=B3=B4=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Screen/MyPage/View/CreatorsView.swift | 70 +++++++++---------- .../CreatorViewController.swift | 46 ++++++------ 2 files changed, 59 insertions(+), 57 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift index ca603a9..495ab51 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift @@ -13,39 +13,39 @@ import SnapKit /// "만든 사람들"을 담고 있는 View 입니다. class CreatorsView: BaseUIView { - - // MARK: - UI Components - - private let creatorsImageView: UIImageView = { - let imageView = UIImageView() - imageView.image = EATSSUAsset.Images.Version2.creators.image - imageView.contentMode = .scaleAspectFit - imageView.snp.makeConstraints { make in - make.width.equalTo(342) - make.height.equalTo(689) - } - return imageView - }() - - // MARK: - Initializer - - init() { - super.init(frame: .zero) - - self.setupLayout() - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - // MARK: - Methods - - private func setupLayout() { - addSubview(creatorsImageView) - - creatorsImageView.snp.makeConstraints { make in - make.center.equalToSuperview() - } - } + + // MARK: - UI Components + + private let creatorsImageView: UIImageView = { + let imageView = UIImageView() + imageView.image = EATSSUAsset.Images.Version2.creators.image + imageView.contentMode = .scaleAspectFit + imageView.snp.makeConstraints { make in + make.width.equalTo(342) + make.height.equalTo(689) + } + return imageView + }() + + // MARK: - Initializer + + init() { + super.init(frame: .zero) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Methods + + override func configureUI() { + addSubview(creatorsImageView) + } + + override func setLayout() { + creatorsImageView.snp.makeConstraints { make in + make.center.equalToSuperview() + } + } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift index de9af9f..52ddf23 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift @@ -13,32 +13,34 @@ import SnapKit class CreatorViewController: BaseViewController { - // MARK: - Properties + // MARK: - Properties - // View Properties - private let creatorsView = CreatorsView() + // View Properties + private let creatorsView = CreatorsView() - // MARK: - View Life Cycle + // MARK: - View Life Cycle - override func viewDidLoad() { - super.viewDidLoad() - - } + override func viewDidLoad() { + super.viewDidLoad() + } - // MARK: - Methods + // MARK: - Methods - override func configureUI() { - view.addSubview(creatorsView) - - creatorsView.snp.makeConstraints { make in - make.top.equalToSuperview().inset(103) - make.leading.trailing.equalToSuperview().inset(24) - make.bottom.equalToSuperview().inset(52) - } - } + override func configureUI() { + view.addSubview(creatorsView) + } + + override func setLayout() { + creatorsView.snp.makeConstraints { make in + make.top.equalToSuperview().inset(103) + make.leading.trailing.equalToSuperview().inset(24) + make.bottom.equalToSuperview().inset(52) + } + } - override func setCustomNavigationBar() { - super.setCustomNavigationBar() - navigationItem.title = "만든 사람들" - } + override func setCustomNavigationBar() { + // TODO: setCustomNavigationBar에 파라미터로 title 값을 받아서 네비게이션 바를 설계하도록 변경 + super.setCustomNavigationBar() + navigationItem.title = "만든 사람들" + } } From b6d047faf488b4b2a64bc58ae3cf02021c9ffe3b Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Thu, 19 Sep 2024 17:19:25 +0900 Subject: [PATCH 07/29] =?UTF-8?q?[#28]=20unsupported=20version=20=EC=9D=B4?= =?UTF-8?q?=EC=8A=88=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20Realm=20v15.2.1=20upg?= =?UTF-8?q?rade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tuist/Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tuist/Package.swift b/Tuist/Package.swift index 527ba43..1531901 100644 --- a/Tuist/Package.swift +++ b/Tuist/Package.swift @@ -27,7 +27,7 @@ let package = Package( .package(url: "https://github.com/onevcat/Kingfisher", from: "7.12.0"), .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "11.1.0"), .package(url: "https://github.com/google/GoogleAppMeasurement", from: "11.1.0"), - .package(url: "https://github.com/realm/realm-swift", from: "10.52.3"), + .package(url: "https://github.com/realm/realm-swift", from: "15.2.1"), .package(url: "https://github.com/ReactiveX/RxSwift", from: "6.7.1"), ] ) From 2bb6c2ebefd93c93ae1257ba9fccf2d15cb3bc68 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:39:54 +0900 Subject: [PATCH 08/29] =?UTF-8?q?[#28]=20Realm=20UserInfo=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EB=A5=BC=20=EC=9C=84=ED=95=9C=20UserInfoManager=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Network/LocalDB/UserInfoManager.swift | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift new file mode 100644 index 0000000..ae61d2d --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift @@ -0,0 +1,48 @@ +// +// UserInfoManager.swift +// EATSSU +// +// Created by 최지우 on 9/19/24. +// + +import RealmSwift + +class UserInfoManager { + static let shared = UserInfoManager() + private init() {} + + private var realm: Realm { + do { + return try Realm() + } catch { + fatalError("Realm을 초기화하는데 실패했습니다: \(error)") + } + } + + func createUserInfo(accountType: UserInfo.AccountType) -> UserInfo { + let userInfo = UserInfo(accountType: accountType) + do { + try realm.write { + realm.add(userInfo) + } + return userInfo + } catch { + print("UserInfo 생성 중 오류 발생: \(error)") + return userInfo + } + } + + func updateNickname(for userInfo: UserInfo, nickname: String) { + do { + try realm.write { + userInfo.updateNickname(nickname) + } + } catch { + print("닉네임 업데이트 중 오류 발생: \(error)") + } + } + + func getCurrentUserInfo() -> UserInfo? { + return realm.objects(UserInfo.self).first + } +} From 7daf5756ae4db6a2b2d05609917e634a4636a2eb Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:41:13 +0900 Subject: [PATCH 09/29] [#28] Realm v20.0.0 update --- Tuist/Package.resolved | 8 ++++---- Tuist/Package.swift | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Tuist/Package.resolved b/Tuist/Package.resolved index 22ef56c..17b432e 100644 --- a/Tuist/Package.resolved +++ b/Tuist/Package.resolved @@ -176,8 +176,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/realm/realm-core.git", "state" : { - "revision" : "c2552e1d36867cb42b28130e894a81fc17081062", - "version" : "14.12.0" + "revision" : "f98720a07e6150c41c953e1937108225550ba155", + "version" : "20.0.0" } }, { @@ -185,8 +185,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/realm/realm-swift", "state" : { - "revision" : "5221a83dc720823e3017493394d00d49ccf13446", - "version" : "10.52.3" + "revision" : "7ea8be1f74034bae860120d58d3491c4fcedff5b", + "version" : "20.0.0" } }, { diff --git a/Tuist/Package.swift b/Tuist/Package.swift index 1531901..ae01931 100644 --- a/Tuist/Package.swift +++ b/Tuist/Package.swift @@ -27,7 +27,7 @@ let package = Package( .package(url: "https://github.com/onevcat/Kingfisher", from: "7.12.0"), .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "11.1.0"), .package(url: "https://github.com/google/GoogleAppMeasurement", from: "11.1.0"), - .package(url: "https://github.com/realm/realm-swift", from: "15.2.1"), + .package(url: "https://github.com/realm/realm-swift", from: "20.0.0"), .package(url: "https://github.com/ReactiveX/RxSwift", from: "6.7.1"), ] ) From dfbe15da5a76a6cb5023fc3e066b28f655459e62 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:43:23 +0900 Subject: [PATCH 10/29] =?UTF-8?q?[#28]=20=EB=A1=9C=EC=BB=ACDB=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90=20nickname/accountType?= =?UTF-8?q?=20=EA=B4=80=EB=A6=AC=EB=A5=BC=20=EC=9C=84=ED=95=9C=20UserInfo?= =?UTF-8?q?=20=EA=B0=9D=EC=B2=B4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Network/LocalDB/NickName.swift | 21 ---------- .../Sources/Network/LocalDB/UserInfo.swift | 40 +++++++++++++++++++ 2 files changed, 40 insertions(+), 21 deletions(-) delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift deleted file mode 100644 index dc33169..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// NickName.swift -// EatSSU-iOS -// -// Created by 박윤빈 on 2023/08/02. -// - -import RealmSwift -import Realm - -class NickName: Object { - @Persisted(primaryKey: true) var accessToken: String = "" - @Persisted var nicknName: String = "" - - convenience init(accessToken: String, nickName: String) { - self.init() - - self.accessToken = accessToken - self.nicknName = nickName - } -} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift new file mode 100644 index 0000000..af96340 --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift @@ -0,0 +1,40 @@ +// +// NickName.swift +// EatSSU-iOS +// +// Created by 박윤빈 on 2023/08/02. +// + +import RealmSwift +import Realm + +class UserInfo: Object { + + @Persisted(primaryKey: true) var id: String = UUID().uuidString + @Persisted var nickname: String = "" + @Persisted private var accountTypeRaw: String? + + var accountType: AccountType? { + get { + guard let rawValue = accountTypeRaw else { return nil } + return AccountType(rawValue: rawValue) + } + set { + accountTypeRaw = newValue?.rawValue + } + } + + convenience init(accountType: AccountType) { + self.init() + self.accountType = accountType + } + + func updateNickname(_ nickname: String) { + self.nickname = nickname + } + + enum AccountType: String { + case apple = "Apple" + case kakao = "Kakao" + } +} From fc1a4826818f41597fe2d415750341414b993704 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:44:29 +0900 Subject: [PATCH 11/29] =?UTF-8?q?[#28]=20Realm=EC=9D=98=20=ED=8A=B9?= =?UTF-8?q?=EC=A0=95=20Object=20=EC=9A=94=EC=86=8C=20=EC=A0=84=EC=B2=B4?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Network/LocalDB/RealmService.swift | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift index 095cea9..a136ebc 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift @@ -13,6 +13,10 @@ class RealmService{ static let shared = RealmService() let realm = try! Realm() + + init() { + print("Realm Location: ", realm.configuration.fileURL ?? "cannot find location.") + } func addToken(accessToken:String,refreshToken:String) { let token = Token(accessToken: accessToken,refreshToken: refreshToken) @@ -40,20 +44,19 @@ class RealmService{ try! realm.write { realm.deleteAll() } - } - - func addUser(accessToken: String, nickName: String) { - let nickName = NickName(accessToken: accessToken, nickName: nickName) - try! realm.write { - realm.add(nickName) + + func deleteAll(_ objectType: T.Type) { + do { + let objects = realm.objects(objectType) + try realm.write { + realm.delete(objects) + print("Successfully deleted all objects of type \(objectType)") + } + } catch let error { + print(error) } } - - init() { - print("Realm Location: ", realm.configuration.fileURL ?? "cannot find location.") - } - } From 88f8d8a3439c7db998de6ce302c840d2aaa571a1 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:47:33 +0900 Subject: [PATCH 12/29] =?UTF-8?q?[#28]=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=8B=9C,=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EB=A1=9C=EC=BB=ACDB=EC=97=90=20=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Screen/Auth/ViewController/LoginViewController.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift index af10a36..2d2de9a 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift @@ -135,6 +135,9 @@ final class LoginViewController: BaseViewController { case nil: self.pushToNicknameVC() default: + if let currentUserInfo = UserInfoManager.shared.getCurrentUserInfo() { + UserInfoManager.shared.updateNickname(for: currentUserInfo, nickname: info.nickname ?? "") + } self.changeIntoHomeViewController() } } @@ -194,6 +197,7 @@ extension LoginViewController { let responseData = try moyaResponse.map(BaseResponse.self) self.addTokenInRealm(accessToken: responseData.result.accessToken, refreshToken: responseData.result.refreshToken) + let userInfo = UserInfoManager.shared.createUserInfo(accountType: .kakao) self.getMyInfo() } catch(let err) { self.presentBottomAlert(err.localizedDescription) @@ -231,6 +235,7 @@ extension LoginViewController { let responseData = try JSONDecoder().decode(BaseResponse.self, from: moyaResponse.data) self.addTokenInRealm(accessToken: responseData.result.accessToken, refreshToken: responseData.result.refreshToken) + let userInfo = UserInfoManager.shared.createUserInfo(accountType: .apple) self.getMyInfo() } catch(let err) { self.presentBottomAlert(err.localizedDescription) From ca47b64e2ecc1c3aae4805f0ddb4d2c176372ef9 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:51:34 +0900 Subject: [PATCH 13/29] =?UTF-8?q?[#28]=20realm=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A0=95=EB=B3=B4=20=EB=B6=88?= =?UTF-8?q?=EB=9F=AC=EC=98=A4=EB=8A=94=20=EB=A1=9C=EC=A7=81=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Network/LocalDB/UserInfo.swift | 2 +- .../Screen/MyPage/View/MyPageView.swift | 46 ++++++++----------- .../ViewController/MyPageViewController.swift | 32 +++---------- 3 files changed, 26 insertions(+), 54 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift index af96340..59f172d 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift @@ -1,5 +1,5 @@ // -// NickName.swift +// UserInfo.swift // EatSSU-iOS // // Created by 박윤빈 on 2023/08/02. diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift index 1ca9f18..a8a9d1c 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift @@ -16,29 +16,7 @@ final class MyPageView: BaseUIView { let myPageServiceLabelList = MyPageLocalData.myPageServiceLabelList let myPageRightItemListDate = MyPageRightItemData.myPageRightItemList - private var dataModel: MyInfoResponse? { - didSet { - if let nickname = dataModel?.nickname { - userNicknameButton.addTitleAttribute( - title: "\(nickname) >", - titleColor: .black, - fontName: .semiBold(size: 20) - ) - } - - switch dataModel?.provider { - case "KAKAO": - accountLabel.text = "카카오" - accountImage.image = ImageLiteral.signInWithKakao - case "APPLE": - accountLabel.text = "APPLE" - accountImage.image = ImageLiteral.signInWithApple - default: - return - } - } - } - + // MARK: - UI Components // 사용자 이미지 @@ -54,7 +32,6 @@ final class MyPageView: BaseUIView { fontName: EATSSUFontFamily.Pretendard.regular.font(size: 16)) } - // public let accountTitleLabel = UILabel().then { $0.text = TextLiteral.linkedAccount $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) @@ -103,6 +80,7 @@ final class MyPageView: BaseUIView { totalAccountStackView, myPageTableView) } + override func setLayout() { userImage.snp.makeConstraints { $0.top.equalToSuperview().offset(127) @@ -126,12 +104,26 @@ final class MyPageView: BaseUIView { } } - func register() { + private func register() { myPageTableView.register(MyPageServiceCell.self, forCellReuseIdentifier: MyPageServiceCell.identifier) } - func dataBind(model: MyInfoResponse) { - dataModel = model + public func setUserInfo(nickname: String) { + userNicknameButton.addTitleAttribute( + title: "\(nickname) >", + titleColor: .black, + fontName: .semiBold(size: 20) + ) + if let accountType = UserInfoManager.shared.getCurrentUserInfo()?.accountType { + switch accountType { + case .apple: + accountLabel.text = "APPLE" + accountImage.image = ImageLiteral.signInWithApple + case .kakao: + accountLabel.text = "카카오" + accountImage.image = ImageLiteral.signInWithKakao + } + } } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift index d08a6a4..08765e4 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift @@ -23,7 +23,7 @@ final class MyPageViewController: BaseViewController { // MARK: - Properties private let myProvider = MoyaProvider(plugins: [MoyaLoggingPlugin()]) - private var nickName = String() + private var nickName: String = "" // MARK: - UI Components @@ -41,7 +41,8 @@ final class MyPageViewController: BaseViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - getMyInfo() + nickName = UserInfoManager.shared.getCurrentUserInfo()?.nickname ?? "fail" + mypageView.setUserInfo(nickname: nickName) } // MARK: - Functions @@ -110,27 +111,6 @@ final class MyPageViewController: BaseViewController { } } -// MARK: - Server - -extension MyPageViewController { - private func getMyInfo() { - self.myProvider.request(.myInfo) { response in - switch response { - case .success(let moyaResponse): - do { - let responseData = try moyaResponse.map(BaseResponse.self) - self.mypageView.dataBind(model: responseData.result) - self.nickName = responseData.result.nickname ?? "" - } catch(let err) { - print(err.localizedDescription) - } - case .failure(let err): - print(err.localizedDescription) - } - } - } -} - // MARK: - TableView DataSource extension MyPageViewController: UITableViewDataSource { @@ -206,9 +186,9 @@ extension MyPageViewController: UITableViewDelegate { self.logoutShowAlert() // "탈퇴하기" 스크린으로 이동 case MyPageLabels.Withdraw.rawValue: - let userWithdrawViewController = UserWithdrawViewController() - userWithdrawViewController.getUsernickName(nickName: self.nickName) - self.navigationController?.pushViewController(userWithdrawViewController, animated: true) + let userWithdrawViewController = UserWithdrawViewController() + userWithdrawViewController.getUsernickName(nickName: self.nickName) + self.navigationController?.pushViewController(userWithdrawViewController, animated: true) // "만든사람들" 스크린으로 이동 case MyPageLabels.Creator.rawValue: let creatorViewController = CreatorViewController() From 9e23e22de7e49a37b72785b0bac148fc463a5013 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:52:47 +0900 Subject: [PATCH 14/29] =?UTF-8?q?[#28]=20=EB=8B=89=EB=84=A4=EC=9E=84=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95/=EB=B3=80=EA=B2=BD=20=EC=8B=9C=20realm?= =?UTF-8?q?=EC=9D=98=20=EC=A0=95=EB=B3=B4=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Auth/ViewController/SetNickNameViewController.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift index 0c24d0a..ef4108c 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift @@ -8,9 +8,6 @@ import UIKit import Moya -import SnapKit -import Then -import Realm final class SetNickNameViewController: BaseViewController { @@ -121,6 +118,9 @@ extension SetNickNameViewController { switch response { case .success(let moyaResponse): do { + if let currentUserInfo = UserInfoManager.shared.getCurrentUserInfo() { + UserInfoManager.shared.updateNickname(for: currentUserInfo, nickname: nickname) + } self.showAlertController(title: "완료", message: "닉네임 설정이 완료되었습니다.", style: .cancel) { if let myPageViewController = self.navigationController?.viewControllers.first(where: { $0 is MyPageViewController }) { self.navigationController?.popToViewController(myPageViewController, animated: true) From 9f6134504800f3e8407c5a5c54641f9153a87b9e Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Thu, 19 Sep 2024 21:16:28 +0900 Subject: [PATCH 15/29] =?UTF-8?q?[#78]=20=ED=91=B8=EC=8B=9C=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=ED=86=A0=EA=B8=80=20=EC=8A=A4=EC=9C=84=EC=B9=98=20?= =?UTF-8?q?+=20=EC=9E=AC=EC=84=A4=EA=B3=84=EB=90=9C=20UI=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WithdrawIcon.imageset/Contents.json | 12 ++ .../WithdrawIcon.imageset/Unsubscribe.png | Bin 0 -> 248 bytes .../Screen/MyPage/Model/MyPageLocalData.swift | 40 ++++ .../Screen/MyPage/Model/MyPageModel.swift | 42 ---- .../MyPage/Model/MyPageRightItemData.swift | 21 ++ .../MyPage/View/Cell/MyPageServiceCell.swift | 60 ------ .../Screen/MyPage/View/MyPageView.swift | 137 ------------ .../Cell/MyPageTableDefaultCell.swift | 63 ++++++ .../NotificationSettingTableViewCell.swift | 88 ++++++++ .../MyPage/View/MyPageView/MyPageView.swift | 203 ++++++++++++++++++ .../Screen/MyPage/View/RequestView.swift | 146 ------------- .../Screen/MyPage/View/UserWithdrawView.swift | 10 +- .../ViewController/MyPageViewController.swift | 158 ++++++++------ .../MyReviewViewController.swift | 2 +- .../ProvisionViewController.swift | 2 +- .../RequestViewController.swift | 138 ------------ .../Utility/Base/BaseViewController.swift | 2 + .../Sources/Utility/Literal/DummyModel.swift | 10 - .../Sources/Utility/Literal/TextLiteral.swift | 171 +++++++++------ .../Utility/Namespace/MyPageLabels.swift | 44 ++-- .../Utility/Protocol/DataTypeProtocol.swift | 10 - 21 files changed, 647 insertions(+), 712 deletions(-) create mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json create mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageLocalData.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageModel.swift create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageRightItemData.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/Cell/MyPageServiceCell.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/RequestView.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/RequestViewController.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json new file mode 100644 index 0000000..20d863f --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Unsubscribe.png", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png b/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png new file mode 100644 index 0000000000000000000000000000000000000000..49f678a838decd301b088a963f9955da50d2e027 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBey^vCV@L(#)1ZyK4GIEJdYLVl7N6iKx$sh@ zFNrgxCt;3@+lHlwmMg2g3YOAWl$ZNgR9<<^j$cFn+AU^o{c11Ggb)SCq}~^r^Y?sr z?zy;pO4`~|jr&$yjZ;1yc__", appVersion: MyPageRightItemData.version ?? "")] -} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageRightItemData.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageRightItemData.swift new file mode 100644 index 0000000..7b4a699 --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageRightItemData.swift @@ -0,0 +1,21 @@ +// +// MyPageRightItemData.swift +// EATSSU_MVC +// +// Created by Jiwoong CHOI on 9/19/24. +// + +import Foundation + +/// "마이페이지"에서 사용하는 셀의 오른쪽 데이터 +struct MyPageRightItemData { + + /// 앱의 배포 버전 + static var version: String? { + if let info = Bundle.main.infoDictionary, let version = info["CFBundleShortVersionString"] as? String { + return version + } else { + return nil + } + } +} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/Cell/MyPageServiceCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/Cell/MyPageServiceCell.swift deleted file mode 100644 index c4d402b..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/Cell/MyPageServiceCell.swift +++ /dev/null @@ -1,60 +0,0 @@ -// -// MyPageServiceCell.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/07/25. -// - -import UIKit - -final class MyPageServiceCell: UITableViewCell { - - // MARK: - Properties - - static let identifier = "MyPageServiceCell" - - // MARK: - UI Components - - var serviceLabel = UILabel().then { - $0.font = EATSSUFontFamily.Pretendard.medium.font(size: 16) - $0.textColor = .black - } - - var rightItemLabel = UILabel().then { - $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 16) - $0.textColor = .gray700 - } - - // MARK: - init - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) - - configureUI() - setLayout() - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - // MARK: - Functions - - func configureUI() { - self.addSubviews( - serviceLabel, - rightItemLabel - ) - } - - func setLayout() { - serviceLabel.snp.makeConstraints { - $0.leading.equalToSuperview().offset(16) - $0.centerY.equalToSuperview() - } - rightItemLabel.snp.makeConstraints { - $0.trailing.equalToSuperview().inset(16) - $0.centerY.equalToSuperview() - } - } -} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift deleted file mode 100644 index 1ca9f18..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift +++ /dev/null @@ -1,137 +0,0 @@ -// -// MyPageView.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/07/25. -// - -import UIKit - -import SnapKit -import Then - -final class MyPageView: BaseUIView { - - // MARK: - Properties - - let myPageServiceLabelList = MyPageLocalData.myPageServiceLabelList - let myPageRightItemListDate = MyPageRightItemData.myPageRightItemList - private var dataModel: MyInfoResponse? { - didSet { - if let nickname = dataModel?.nickname { - userNicknameButton.addTitleAttribute( - title: "\(nickname) >", - titleColor: .black, - fontName: .semiBold(size: 20) - ) - } - - switch dataModel?.provider { - case "KAKAO": - accountLabel.text = "카카오" - accountImage.image = ImageLiteral.signInWithKakao - case "APPLE": - accountLabel.text = "APPLE" - accountImage.image = ImageLiteral.signInWithApple - default: - return - } - } - } - - // MARK: - UI Components - - // 사용자 이미지 - public var userImage = UIImageView().then { - $0.image = ImageLiteral.profileIcon - } - - // 닉네임이 들어간 닉네임 변경 버튼 - public var userNicknameButton = UIButton().then { - $0.addTitleAttribute( - title: "다시 시도해주세요", - titleColor: .black, - fontName: EATSSUFontFamily.Pretendard.regular.font(size: 16)) - } - - // - public let accountTitleLabel = UILabel().then { - $0.text = TextLiteral.linkedAccount - $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) - } - - public var accountLabel = UILabel().then { - $0.text = "없음" - $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) - $0.font = .bold(size: 14) - } - - public var accountImage = UIImageView() - - public lazy var totalAccountStackView = UIStackView( - arrangedSubviews: [accountTitleLabel,accountStackView]).then { - $0.alignment = .bottom - $0.axis = .horizontal - $0.spacing = 20 - } - - public lazy var accountStackView = UIStackView( - arrangedSubviews: [accountLabel,accountImage]).then { - $0.alignment = .bottom - $0.axis = .horizontal - $0.spacing = 5 - } - - public let myPageTableView = UITableView().then { - $0.separatorStyle = .none - $0.rowHeight = 55 - } - - // MARK: - init - - override init(frame: CGRect) { - super.init(frame: frame) - - register() - } - - // MARK: - Functions - - override func configureUI() { - self.addSubviews(userImage, - userNicknameButton, - totalAccountStackView, - myPageTableView) - } - override func setLayout() { - userImage.snp.makeConstraints { - $0.top.equalToSuperview().offset(127) - $0.centerX.equalToSuperview() - $0.height.width.equalTo(100) - } - userNicknameButton.snp.makeConstraints { - $0.top.equalTo(userImage.snp.bottom).offset(6) - $0.centerX.equalTo(userImage) - $0.height.equalTo(40) - } - - totalAccountStackView.snp.makeConstraints { - $0.centerX.equalToSuperview() - $0.top.equalTo(userNicknameButton.snp.bottom).offset(10) - } - myPageTableView.snp.makeConstraints { - $0.top.equalTo(accountTitleLabel.snp.bottom).offset(24) - $0.horizontalEdges.equalToSuperview() - $0.bottom.equalToSuperview() - } - } - - func register() { - myPageTableView.register(MyPageServiceCell.self, forCellReuseIdentifier: MyPageServiceCell.identifier) - } - - func dataBind(model: MyInfoResponse) { - dataModel = model - } -} - diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift new file mode 100644 index 0000000..5da8f0a --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift @@ -0,0 +1,63 @@ +// +// MyPageTableDefaultCell.swift +// EATSSU_MVC +// +// Created by Jiwoong CHOI on 9/19/24. +// + +import UIKit + +import SnapKit + +final class MyPageTableDefaultCell: UITableViewCell { + + // MARK: - Properties + + static let identifier = "MyPageTableDefaultCell" + + // MARK: - UI Components + + let serviceLabel = UILabel().then { + $0.font = EATSSUFontFamily.Pretendard.medium.font(size: 16) + $0.textColor = .black + } + + let rigthChevronImage = UIImageView().then { imageView in + imageView.image = UIImage(systemName: "chevron.right") + imageView.tintColor = EATSSUAsset.Color.GrayScale.gray300.color + } + + + // MARK: - Initializer + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureUI() + setLayout() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Functions + + private func configureUI() { + self.addSubviews( + serviceLabel, + rigthChevronImage + ) + } + + private func setLayout() { + serviceLabel.snp.makeConstraints { + $0.leading.equalToSuperview().offset(24) + $0.centerY.equalToSuperview() + } + rigthChevronImage.snp.makeConstraints { + $0.trailing.equalToSuperview().inset(24) + $0.centerY.equalToSuperview() + } + } +} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift new file mode 100644 index 0000000..963d5ae --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift @@ -0,0 +1,88 @@ +// +// NotificationSettingTableViewCell.swift +// EATSSU +// +// Created by Jiwoong CHOI on 9/19/24. +// + +import UIKit + +import SnapKit + +class NotificationSettingTableViewCell: UITableViewCell { + + // MARK: - Properties + static let identifier = "NotificationSettingTableViewCell" + + // MARK: - UI Components + + // "푸시 알림 설정" + private let pushNotificationTitleLabel: UILabel = { + let label = UILabel() + label.text = "푸시 알림 설정" + label.font = EATSSUFontFamily.Pretendard.regular.font(size: 16) + label.textColor = .black + return label + }() + + // "매일 오전 11시에 알림을 보내드려요" + private let dailyNotificationInfoLabel: UILabel = { + let label = UILabel() + label.text = "매일 오전 11시에 알림을 보내드려요" + label.font = EATSSUFontFamily.Pretendard.regular.font(size: 12) + label.textColor = EATSSUAsset.Color.GrayScale.gray400.color + return label + }() + + private let labelStackView: UIStackView = { + let stackView = UIStackView() + stackView.axis = .vertical + return stackView + }() + + internal let toggleSwitch: UISwitch = { + let toggleSwitch = UISwitch() + toggleSwitch.onTintColor = EATSSUAsset.Color.Main.primary.color + return toggleSwitch + }() + + + // MARK: - Initializer + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + + configureUI() + setupLayout() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Methods + + private func configureUI() { + addSubviews( + pushNotificationTitleLabel, + dailyNotificationInfoLabel, + labelStackView, + toggleSwitch + ) + } + + private func setupLayout() { + labelStackView.addArrangedSubviews([pushNotificationTitleLabel, dailyNotificationInfoLabel]) + + labelStackView.snp.makeConstraints { make in + make.leading.equalToSuperview().inset(24) + make.centerY.equalToSuperview() + } + + toggleSwitch.snp.makeConstraints { make in + make.trailing.equalToSuperview().inset(24) + make.centerY.equalToSuperview() + } + } + +} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift new file mode 100644 index 0000000..03add45 --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift @@ -0,0 +1,203 @@ +// +// MyPageView.swift +// EatSSU-iOS +// +// Created by 최지우 on 2023/07/25. +// + +import UIKit + +import SnapKit +import Then + +final class MyPageView: BaseUIView { + + // MARK: - Properties + + private var dataModel: MyInfoResponse? { + didSet { + if let nickname = dataModel?.nickname { + userNicknameButton.addTitleAttribute( + title: "\(nickname) >", + titleColor: .black, + fontName: .semiBold(size: 20) + ) + } + + switch dataModel?.provider { + case "KAKAO": + accountTypeDefaultLabel.text = "카카오" + accountTypeImage.image = ImageLiteral.signInWithKakao + case "APPLE": + accountTypeDefaultLabel.text = "APPLE" + accountTypeImage.image = ImageLiteral.signInWithApple + default: + return + } + } + } + + // MARK: - UI Components + + // 사용자 이미지 + internal var userImage = UIImageView().then { + $0.image = ImageLiteral.profileIcon + } + + // 닉네임이 들어간 닉네임 변경 버튼 + internal var userNicknameButton = UIButton().then { + $0.addTitleAttribute( + title: "다시 시도해주세요", + titleColor: .black, + fontName: EATSSUFontFamily.Pretendard.regular.font(size: 16)) + } + + // "연결된 계정" 레이블 + internal let accountTitleLabel = UILabel().then { + $0.text = TextLiteral.MyPage.linkedAccount + $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) + } + + // 서버에서 계정 정보를 가져오기 전 기본값 + internal var accountTypeDefaultLabel = UILabel().then { + $0.text = "없음" + $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) + $0.font = .bold(size: 14) + } + + // 소셜 로그인 공급업체 아이콘 + internal var accountTypeImage = UIImageView() + + internal lazy var totalAccountStackView = UIStackView( + arrangedSubviews: [accountTitleLabel,accountStackView]).then { + $0.alignment = .bottom + $0.axis = .horizontal + $0.spacing = 20 + } + + internal lazy var accountStackView = UIStackView( + arrangedSubviews: [accountTypeDefaultLabel,accountTypeImage]).then { + $0.alignment = .bottom + $0.axis = .horizontal + $0.spacing = 5 + } + + internal let myPageTableView = UITableView().then { + $0.separatorStyle = .none + $0.isScrollEnabled = false + } + + // "앱 버전" 레이블 + private let appVersionStringLabel = UILabel().then { label in + label.text = TextLiteral.MyPage.appVersion + label.font = EATSSUFontFamily.Pretendard.regular.font(size: 12) + label.textColor = EATSSUAsset.Color.GrayScale.gray400.color + } + + // 현재 배포된 앱의 버전 + private let appVersionLabel = UILabel().then { label in + label.text = MyPageRightItemData.version + label.font = EATSSUFontFamily.Pretendard.regular.font(size: 12) + label.textColor = EATSSUAsset.Color.GrayScale.gray400.color + } + + // "탈퇴하기" + private let withdrawLabel = UILabel().then { label in + label.text = TextLiteral.MyPage.withdraw + label.font = EATSSUFontFamily.Pretendard.regular.font(size: 12) + label.textColor = EATSSUAsset.Color.GrayScale.gray400.color + } + + // "탈퇴하기" 옆 아이콘 + private let withdrawIconImageView = UIImageView().then { imageView in + imageView.image = EATSSUAsset.Images.Version2.withdrawIcon.image + imageView.tintColor = EATSSUAsset.Color.GrayScale.gray400.color + } + + // "탈퇴하기" 레이블과 탈퇴하기 아이콘 + private let withdrawStackView: UIStackView = { + let stackView = UIStackView() + stackView.axis = .horizontal + return stackView + }() + + // MARK: - Intializer + + override init(frame: CGRect) { + super.init(frame: frame) + + registerTableViewCells() + } + + // MARK: - Functions + + override func configureUI() { + addSubviews(userImage, + userNicknameButton, + totalAccountStackView, + myPageTableView, + appVersionStringLabel, + appVersionLabel, + withdrawLabel, + withdrawIconImageView, + withdrawStackView + ) + } + + override func setLayout() { + userImage.snp.makeConstraints { + $0.top.equalToSuperview().offset(127) + $0.centerX.equalToSuperview() + $0.height.width.equalTo(100) + } + + userNicknameButton.snp.makeConstraints { + $0.top.equalTo(userImage.snp.bottom).offset(6) + $0.centerX.equalTo(userImage) + $0.height.equalTo(40) + } + + totalAccountStackView.snp.makeConstraints { + $0.centerX.equalToSuperview() + $0.top.equalTo(userNicknameButton.snp.bottom).offset(10) + } + + myPageTableView.snp.makeConstraints { + $0.top.equalTo(accountTitleLabel.snp.bottom).offset(24) + $0.leading.trailing.equalToSuperview() + $0.height.equalTo(420) + $0.width.equalToSuperview() + } + + appVersionStringLabel.snp.makeConstraints { make in + make.top.equalTo(myPageTableView.snp.bottom).offset(6) + make.leading.equalToSuperview().inset(24) + } + + appVersionLabel.snp.makeConstraints { make in + make.top.equalTo(myPageTableView.snp.bottom).offset(6) + make.trailing.equalToSuperview().inset(24) + } + + // TODO: withdrawStackView를 프로퍼티로 선언할 때, lazy를 사용하면 레이아웃이 한 타임 늦게 잡히는 문제로 인해서 여기에서 스택 안에 들어갈 뷰를 추가함. 개선 방법이 없는지 확인. + withdrawStackView.addArrangedSubviews([withdrawLabel, withdrawIconImageView]) + withdrawStackView.snp.makeConstraints { make in + make.top.equalTo(appVersionLabel.snp.bottom).offset(16) + make.trailing.equalToSuperview().inset(24) + } + + } + + private func registerTableViewCells() { + myPageTableView.register( + MyPageTableDefaultCell.self, + forCellReuseIdentifier: MyPageTableDefaultCell.identifier) + myPageTableView.register( + NotificationSettingTableViewCell.self, + forCellReuseIdentifier: NotificationSettingTableViewCell.identifier) + } + + func dataBind(model: MyInfoResponse) { + dataModel = model + } +} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/RequestView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/RequestView.swift deleted file mode 100644 index c1c6420..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/RequestView.swift +++ /dev/null @@ -1,146 +0,0 @@ -// -// RequestView.swift -// EAT-SSU -// -// Created by 박윤빈 on 2023/12/27. -// - -import UIKit - -import SnapKit -import Then - -final class RequestView: BaseUIView { - - // MARK: - UI Component - - private let requestLabel = UILabel() - private let emailLabel = UILabel() - var emailTextField = UITextField() - private let requestContentLabel = UILabel() - var contentTextView = UITextView() - var maximumTextCountLabel = UILabel() - var sendButton = PostUIButton() - private lazy var emailStackView = UIStackView(arrangedSubviews: [emailLabel, - emailTextField]) - - // MARK: - init - - override init(frame: CGRect) { - super.init(frame: frame) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - // MARK: - Functions - - override func configureUI() { - super.configureUI() - self.addSubviews(requestLabel, - emailStackView, - requestContentLabel, - contentTextView, - maximumTextCountLabel, - sendButton) - - requestLabel.do { - $0.text = TextLiteral.request - $0.font = .bold(size: 16.adjusted) - $0.textColor = .black - } - - emailLabel.do { - $0.text = TextLiteral.email - $0.font = .medium(size: 16.adjusted) - $0.textColor = .black - } - - emailTextField.do { - $0.placeholder = TextLiteral.inputEmail - $0.font = .medium(size: 14.adjusted) - $0.textColor = .black - $0.layer.masksToBounds = true - $0.layer.borderWidth = 1.0 - $0.layer.cornerRadius = 10 - $0.layer.borderColor = UIColor.gray200.cgColor - $0.addLeftPadding() - } - - requestContentLabel.do { - $0.text = TextLiteral.requestContent - $0.font = .medium(size: 16.adjusted) - $0.textColor = .black - } - - contentTextView.do { - $0.font = .medium(size: 16.adjusted) - $0.layer.cornerRadius = 5 - $0.backgroundColor = .white - $0.layer.borderWidth = 1 - $0.layer.borderColor = UIColor.gray200.cgColor - $0.text = "여기에 내용을 작성해주세요." - $0.textColor = .gray500 - $0.textContainerInset = UIEdgeInsets(top: 16.0, left: 8.5, bottom: 16.0, right: 8.5) - } - - maximumTextCountLabel.do { - $0.text = TextLiteral.requestMaximumText - $0.font = .medium(size: 12.adjusted) - $0.textColor = .gray700 - } - - emailStackView.do { - $0.axis = .horizontal - $0.spacing = 30.adjusted - $0.alignment = .center - $0.distribution = .fillProportionally - } - - sendButton.do { - $0.addTitleAttribute(title: "전송하기", - titleColor: .white, - fontName: .bold(size: 14.adjusted)) - $0.isEnabled = true - } - } - - override func setLayout() { - requestLabel.snp.makeConstraints { - $0.top.equalTo(safeAreaLayoutGuide) - $0.leading.equalToSuperview().inset(16.adjusted) - } - - emailTextField.snp.makeConstraints { - $0.height.equalTo(42.adjusted) - } - - emailStackView.snp.makeConstraints { - $0.leading.trailing.equalToSuperview().inset(16.adjusted) - $0.top.equalTo(requestLabel.snp.bottom).offset(16.adjusted) - } - - requestContentLabel.snp.makeConstraints { - $0.top.equalTo(emailStackView.snp.bottom).offset(17.adjusted) - $0.leading.equalToSuperview().inset(16.adjusted) - } - - contentTextView.snp.makeConstraints { - $0.top.equalTo(requestContentLabel.snp.bottom).offset(6.adjusted) - $0.leading.trailing.equalToSuperview().inset(16.adjusted) - $0.height.equalTo(270.adjusted) - } - - maximumTextCountLabel.snp.makeConstraints { - $0.top.equalTo(contentTextView.snp.bottom).offset(6.adjusted) - $0.trailing.equalToSuperview().inset(16.adjusted) - } - - sendButton.snp.makeConstraints { - $0.leading.trailing.equalToSuperview().inset(16.adjusted) - $0.bottom.equalToSuperview().inset(50.adjusted) - $0.height.equalTo(48.adjusted) - } - } -} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift index 510b8ba..ca46f11 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift @@ -90,12 +90,12 @@ final class UserWithdrawView: BaseUIView { private func setProperties() { nickNameLabel.do { - $0.text = TextLiteral.signOut + $0.text = TextLiteral.MyPage.confirmWithdrawal $0.font = .bold(size: 16) } subscription.do { - $0.text = TextLiteral.signOutSubscription + $0.text = TextLiteral.MyPage.withdrawalNotice $0.numberOfLines = 2 $0.font = .medium(size: 12) $0.textColor = .gray700 @@ -121,7 +121,7 @@ final class UserWithdrawView: BaseUIView { } completeSignOutButton.do { - $0.addTitleAttribute(title: TextLiteral.withdraw, + $0.addTitleAttribute(title: TextLiteral.MyPage.withdraw, titleColor: .white, fontName: .bold(size: 18)) $0.setRoundBorder(borderColor: .gray300, borderWidth: 0, cornerRadius: 10) @@ -136,13 +136,13 @@ final class UserWithdrawView: BaseUIView { private func setValidationLabel(state: ValidationLabelState) { switch state { case .corrected: - nickNameStateGuideLabel.text = TextLiteral.correctInput + nickNameStateGuideLabel.text = TextLiteral.MyPage.validInputMessage nickNameStateGuideLabel.textColor = .systemGreen completeSignOutButton.isEnabled = true case .unCorrected: nickNameStateGuideLabel.do { $0.isHidden = false - $0.text = TextLiteral.uncorrectNickName + $0.text = TextLiteral.MyPage.invalidNicknameMessage $0.textColor = .primary } completeSignOutButton.isEnabled = false diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift index d08a6a4..65344ce 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift @@ -24,7 +24,8 @@ final class MyPageViewController: BaseViewController { private let myProvider = MoyaProvider(plugins: [MoyaLoggingPlugin()]) private var nickName = String() - + private let myPageTableLabelList = MyPageLocalData.myPageTableLabelList + // MARK: - UI Components let mypageView = MyPageView() @@ -48,7 +49,7 @@ final class MyPageViewController: BaseViewController { override func setCustomNavigationBar() { super.setCustomNavigationBar() - navigationItem.title = TextLiteral.myPage + navigationItem.title = TextLiteral.MyPage.myPage } override func configureUI() { @@ -62,8 +63,17 @@ final class MyPageViewController: BaseViewController { } override func setButtonEvent() { - mypageView.userNicknameButton.addTarget(self, action: #selector(didTappedChangeNicknameButton), for: .touchUpInside) + mypageView.userNicknameButton + .addTarget( + self, + action: #selector(didTappedChangeNicknameButton), + for: .touchUpInside) } + + @objc + func toggleSwitchTapped() { + + } @objc func didTappedChangeNicknameButton() { @@ -77,10 +87,10 @@ final class MyPageViewController: BaseViewController { mypageView.myPageTableView.delegate = self } - /* - 해야 할 일 - - 알림 팝업을 띄우는 코드를 모듈화 - */ + /* + 해야 할 일 + - 알림 팝업을 띄우는 코드를 모듈화 + */ private func logoutShowAlert() { let alert = UIAlertController(title: "로그아웃", message: "정말 로그아웃 하시겠습니까?", @@ -99,7 +109,7 @@ final class MyPageViewController: BaseViewController { let loginViewController = LoginViewController() if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, let keyWindow = windowScene.windows.first(where: { $0.isKeyWindow }) { - keyWindow.replaceRootViewController(UINavigationController(rootViewController: loginViewController)) + keyWindow.replaceRootViewController(UINavigationController(rootViewController: loginViewController)) } }) @@ -136,85 +146,95 @@ extension MyPageViewController { extension MyPageViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return mypageView.myPageServiceLabelList.count + return myPageTableLabelList.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - guard let cell = tableView.dequeueReusableCell(withIdentifier: MyPageServiceCell.identifier, - for: indexPath) - as? MyPageServiceCell else { - return MyPageServiceCell() - } - - let title = mypageView.myPageServiceLabelList[indexPath.row].titleLabel - cell.serviceLabel.text = title - if title == TextLiteral.myReview || title == TextLiteral.termsOfUse || title == TextLiteral.privacyTermsOfUse || title == TextLiteral.inquiry { - cell.rightItemLabel.text = mypageView.myPageRightItemListDate[0].rightArrow - } else if title == TextLiteral.appVersion { - cell.rightItemLabel.text = mypageView.myPageRightItemListDate[0].appVersion - cell.selectionStyle = .none - } - return cell + if indexPath.row == MyPageLabels.NotificationSetting.rawValue { + let cell = tableView + .dequeueReusableCell( + withIdentifier: NotificationSettingTableViewCell.identifier, + for: indexPath) as! NotificationSettingTableViewCell + + cell.toggleSwitch.addTarget(self, action: #selector(toggleSwitchTapped), for: .valueChanged) + + return cell + } else { + let cell = tableView + .dequeueReusableCell( + withIdentifier: MyPageTableDefaultCell.identifier, + for: indexPath) as! MyPageTableDefaultCell + + let title = myPageTableLabelList[indexPath.row].titleLabel + cell.serviceLabel.text = title + return cell + } } } // MARK: - UITableView Delegate extension MyPageViewController: UITableViewDelegate { + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + return 60 + } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { tableView.deselectRow(at: indexPath, animated: true) - switch indexPath.row { - // "내가 쓴 리뷰" 스크린으로 이동 - case MyPageLabels.MyReview.rawValue: + switch indexPath.row { + // "내가 쓴 리뷰" 스크린으로 이동 + case MyPageLabels.MyReview.rawValue: let myReviewViewController = MyReviewViewController() self.navigationController?.pushViewController(myReviewViewController, animated: true) - // "문의하기" 스크린으로 이동 - case MyPageLabels.Inquiry.rawValue: - TalkApi.shared.chatChannel(channelPublicId: TextLiteral.KakaoChannel.id) { [weak self] error in - if error != nil { - if let kakaoChannelLink = URL(string: "http://pf.kakao.com/\(TextLiteral.KakaoChannel.id)") { - UIApplication.shared.open(kakaoChannelLink) - } else { - self?.showAlertController(title: "다시 시도하세요", message: "에러가 발생했습니다", style: .default) + + // "푸시 알림 설정" 스위치 토글 + case MyPageLabels.NotificationSetting.rawValue: + if let cell = tableView.cellForRow(at: indexPath) as? NotificationSettingTableViewCell { + // TODO: 스위치 값을 앱 저장소에 보관하고, 값에 따라 알림을 보내는 여부를 제어하는 코드를 설계할 것 + cell.toggleSwitch.isOn.toggle() + } + + // "문의하기" 스크린으로 이동 + case MyPageLabels.Inquiry.rawValue: + TalkApi.shared.chatChannel(channelPublicId: TextLiteral.KakaoChannel.id) { [weak self] error in + if error != nil { + if let kakaoChannelLink = URL(string: "http://pf.kakao.com/\(TextLiteral.KakaoChannel.id)") { + UIApplication.shared.open(kakaoChannelLink) + } else { + self?.showAlertController( + title: "다시 시도하세요", + message: "에러가 발생했습니다", + style: .default) + } + } else { + // TODO: 카카오톡 채널 채팅방으로 연결 성공했을 때, 앱에서 동작되어야 하는 로직 고민 + } } - /* - 해야 할 일 - - 채팅방에 진입하지 못했을 때, 앱에서 어떻게 처리해야 할 지 고민해야 합니다 - - 지금은 웹으로 연결되게 조치해두었습니다만, 어떻게 해봐야 할 지 고민을 해봐야 한다고 생각합니다. - */ - } else { - /* - 해야 할 일 - - 정상적으로 코드가 동작할 때, 앱에서 처리해야 할 일이 있는지 확인 - */ - } - } - // "서비스 이용약관" 스크린으로 이동 - case MyPageLabels.TermsOfUse.rawValue: - let provisionViewController = ProvisionViewController(agreementType: .termsOfService) - provisionViewController.navigationTitle = TextLiteral.termsOfUse + + // "서비스 이용약관" 스크린으로 이동 + case MyPageLabels.TermsOfUse.rawValue: + let provisionViewController = ProvisionViewController(agreementType: .termsOfService) + provisionViewController.navigationTitle = TextLiteral.MyPage.termsOfUse self.navigationController?.pushViewController(provisionViewController, animated: true) - // "개인정보 이용약관" 스크린으로 이동 - case MyPageLabels.PrivacyTermsOfUse.rawValue: + + // "개인정보 이용약관" 스크린으로 이동 + case MyPageLabels.PrivacyTermsOfUse.rawValue: let provisionViewController = ProvisionViewController(agreementType: .privacyPolicy) - provisionViewController.navigationTitle = TextLiteral.privacyTermsOfUse + provisionViewController.navigationTitle = TextLiteral.MyPage.privacyTermsOfUse self.navigationController?.pushViewController(provisionViewController, animated: true) - // "로그아웃" 팝업알림 표시 - case MyPageLabels.Logout.rawValue: - self.logoutShowAlert() - // "탈퇴하기" 스크린으로 이동 - case MyPageLabels.Withdraw.rawValue: - let userWithdrawViewController = UserWithdrawViewController() - userWithdrawViewController.getUsernickName(nickName: self.nickName) - self.navigationController?.pushViewController(userWithdrawViewController, animated: true) - // "만든사람들" 스크린으로 이동 - case MyPageLabels.Creator.rawValue: - let creatorViewController = CreatorViewController() - navigationController?.pushViewController(creatorViewController, animated: true) - default: - return - } + + // "만든사람들" 스크린으로 이동 + case MyPageLabels.Creator.rawValue: + let creatorViewController = CreatorViewController() + navigationController?.pushViewController(creatorViewController, animated: true) + + // "로그아웃" 팝업알림 표시 + case MyPageLabels.Logout.rawValue: + self.logoutShowAlert() + default: + return + } } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift index e3ce69c..a037d1a 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift @@ -52,7 +52,7 @@ final class MyReviewViewController: BaseViewController { override func setCustomNavigationBar() { super.setCustomNavigationBar() - navigationItem.title = TextLiteral.myReview + navigationItem.title = TextLiteral.MyPage.myReview } override func configureUI() { diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift index abcd587..3411593 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift @@ -16,7 +16,7 @@ final class ProvisionViewController: BaseViewController { // MARK: - Properties - internal var navigationTitle = TextLiteral.defaultTerms + internal var navigationTitle = TextLiteral.MyPage.defaultTerms // MARK: - UI Components diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/RequestViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/RequestViewController.swift deleted file mode 100644 index 8b50a05..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/RequestViewController.swift +++ /dev/null @@ -1,138 +0,0 @@ -// -// RequestViewController.swift -// EAT-SSU -// -// Created by 박윤빈 on 2023/12/27. -// - -import UIKit - -import SnapKit -import Then -import Moya - -final class RequestViewController: BaseViewController { - - // MARK: - Properties - - private let myProvider = MoyaProvider(plugins: [MoyaLoggingPlugin()]) - - // MARK: - UI Component - - private let requestView = RequestView() - - // MARK: - Life Cycles - - override func viewDidLoad() { - super.viewDidLoad() - dismissKeyboard() - setDelegate() - } - - // MARK: - Functions - override func configureUI() { - self.view.addSubview(requestView) - } - - override func setLayout() { - requestView.snp.makeConstraints { - $0.edges.equalToSuperview() - } - } - - override func setButtonEvent() { - requestView.sendButton.addTarget(self, action: #selector(sendButtonDidTap), for: .touchUpInside) - } - - private func setDelegate() { - requestView.contentTextView.delegate = self - } - - @objc - private func sendButtonDidTap() { - if requestView.contentTextView.text == "여기에 내용을 작성해주세요." { - view.showToast(message: "문의 내용을 작성해주세요!") - } else if requestView.contentTextView.text?.count ?? 0 < 5 { - view.showToast(message: "문의 내용을 5글자 이상 작성해주세요!") - } else if requestView.emailTextField.text == "답변받을 이메일 주소를 남겨주세요." || isTextFieldEmpty(email: requestView.emailTextField.text ?? ""){ - view.showToast(message: "이메일 주소를 남겨주세요!") - } else { - postInquiry(email: requestView.emailTextField.text ?? "", - content: requestView.contentTextView.text) - } - } - - private func isTextFieldEmpty(email: String) -> Bool { - guard let inputValue = requestView.emailTextField.text?.trimmingCharacters(in: .whitespaces) else { return true } - - if inputValue.isEmpty { - return true - } else { - return false - } - } - - private func showSuccessAlert() { - let alert = UIAlertController(title: "문의 완료", - message: "문의 내용이 성공적으로 접수되었어요!", - preferredStyle: UIAlertController.Style.alert - ) - - let okAction = UIAlertAction(title: "마이페이지로 돌아가기", - style: .default, - handler: { okAction in - self.navigationController?.popViewController(animated: true) - }) - - alert.addAction(okAction) - present(alert, animated: true, completion: nil) - } -} - -extension RequestViewController: UITextViewDelegate { - func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { - let newLength = requestView.contentTextView.text.count - range.length + text.count - requestView.maximumTextCountLabel.text = "\(requestView.contentTextView.text.count) / 500" - if newLength > 500 { - return false - } - return true - } - - func textViewDidBeginEditing(_ textView: UITextView) { - if textView.text == "여기에 내용을 작성해주세요." { - textView.text = "" - textView.textColor = .black - } - } - - func textViewDidEndEditing(_ textView: UITextView) { - if textView.text.isEmpty { - textView.text = "여기에 내용을 작성해주세요." - textView.textColor = .gray500 - } - } -} - -// MARK: - server - -extension RequestViewController { - private func postInquiry(email: String, content: String) { - let param = InquiryRequest(email, content) - self.myProvider.request(.inquiry(param: param)) { response in - switch response { - case .success(let moyaResponse): - do { - let responseData = try moyaResponse.map(BaseResponse.self) - print(responseData) - self.showSuccessAlert() - } catch(let err) { - print(err.localizedDescription) - self.showSuccessAlert() - } - case .failure(let err): - print(err.localizedDescription) - } - } - } -} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift index 0be33c2..3303de8 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Base/BaseViewController.swift @@ -99,6 +99,8 @@ class BaseViewController: UIViewController { fatalError("setLayout() must be overridden") } + // TODO: setButtonEvent를 setButtonAction으로 변경했으면 합니다. + /// UIViewController에서 버튼이 있다면 버튼 액션을 연결해주세요. /// /// 버튼이 있다면 오버라이딩해서 버튼 액션을 연결해주세요. diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift deleted file mode 100644 index 7eeab01..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift +++ /dev/null @@ -1,10 +0,0 @@ -// -// DummyModel.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/07/16. -// - -import UIKit - -struct DummyModel: AppData {} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift index 068f43b..b26dfe9 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift @@ -13,28 +13,29 @@ import Foundation - 마크업 주석으로 해당 리터럴이 의미하는 실제 문자열 기록 */ +// ... existing code ... + enum TextLiteral { - - // MARK: - Notification - - enum Notification { - - /// 🤔 오늘 밥 뭐 먹지… - static let dailyWeekdayNotificationTitle: String = "🤔 오늘 밥 뭐 먹지…" - - /// 오늘의 학식을 확인해보세요! - static let dailyWeekdayNotificationBody: String = "오늘의 학식을 확인해보세요!" - } - - enum KakaoChannel { - - /// EATSSU 카카오 채널 ID - static let id: String = "_ZlVAn" - } - - + + // MARK: - Notification + + enum Notification { + + /// 🤔 오늘 밥 뭐 먹지… + static let dailyWeekdayNotificationTitle: String = "🤔 오늘 밥 뭐 먹지…" + + /// 오늘의 학식을 확인해보세요! + static let dailyWeekdayNotificationBody: String = "오늘의 학식을 확인해보세요!" + } + + enum KakaoChannel { + + /// EATSSU 카카오 채널 ID + static let id: String = "_ZlVAn" + } + // MARK: - Sign In - + static let signInWithApple: String = "Apple로 로그인" static let signInWithKakao: String = "카카오 로그인" static let lookingWithNoSignIn: String = "둘러보기" @@ -45,55 +46,87 @@ enum TextLiteral { static let doubleCheckNickName: String = "중복확인" static let hintInputNickName: String = "2~8글자를 입력해주세요." static let completeLabel: String = "완료하기" - - // MARK: - Home - - static let menu: String = "오늘의 메뉴" - static let price: String = "가격" - static let rating: String = "평점" - static let emptyRating: String = " -" - - // MARK: - Restaurant - - static let dormitoryRestaurant: String = "기숙사 식당" - static let dodamRestaurant: String = "도담 식당" - static let studentRestaurant: String = "학생 식당" - static let snackCorner: String = "스낵 코너" - static let dormitoryRawValue: String = "DORMITORY" - static let dodamRawValue: String = "DODAM" - static let studentRestaurantRawValue: String = "HAKSIK" - static let snackCornerRawValue: String = "SNACK_CORNER" - static let lunchRawValue: String = "LUNCH" + // MARK: - Home + + static let menu: String = "오늘의 메뉴" + static let price: String = "가격" + static let rating: String = "평점" + static let emptyRating: String = " -" + + // MARK: - Restaurant + + static let dormitoryRestaurant: String = "기숙사 식당" + static let dodamRestaurant: String = "도담 식당" + static let studentRestaurant: String = "학생 식당" + static let snackCorner: String = "스낵 코너" + static let dormitoryRawValue: String = "DORMITORY" + static let dodamRawValue: String = "DODAM" + static let studentRestaurantRawValue: String = "HAKSIK" + static let snackCornerRawValue: String = "SNACK_CORNER" + static let lunchRawValue: String = "LUNCH" + // MARK: - MyPage - - /// "만든사람들" 텍스트 리터럴 - static let creators: String = "만든사람들" - static let myPage: String = "마이페이지" - static let linkedAccount: String = "연결된 계정" - static let myReview: String = "내가 쓴 리뷰" - static let logout: String = "로그아웃" - static let withdraw: String = "탈퇴하기" - static let defaultTerms: String = "이용약관" - static let termsOfUse: String = "서비스 이용약관" - static let privacyTermsOfUse: String = "개인정보 이용약관" - static let appVersion: String = "앱 버전" - static let changeNickname: String = "닉네임 변경" - static let newNickname: String = "새로운 닉네임" - static let existingNickname: String = "기존 닉네임" - static let inquiry: String = "문의하기" - static let inputEmail: String = "답변받을 이메일 주소를 남겨주세요." - static let signOut = "정말 탈퇴하시겠습니까?" - static let signOutSubscription = - "작성한 리뷰 게시글은 삭제되지 않으며, (알수없음)으로 표시됩니다.\n자세한 내용은 서비스이용약관 및 개인정보처리방침을 확인해 주세요." - static let correctInput = "올바른 입력입니다" - static let uncorrectNickName = "올바르지 않은 닉네임입니다" - static let request = "문의할 내용을 남겨주세요." - static let email = "이메일" - static let requestContent = "문의내용" - static let requestContentGuide = "여기에 내용을 작성해주세요." - static let requestMaximumText = "0 / 500" - static let send = "전송하기" -} - + /// "마이페이지" 텍스트 리터럴 + enum MyPage { + + /// "푸시 알림 설정" + static let pushNotificationSetting: String = "푸시 알림 설정" + + /// "만든사람들" + static let creators: String = "만든사람들" + + /// "마이페이지 + static let myPage: String = "마이페이지" + + /// "연결된 계정" + static let linkedAccount: String = "연결된 계정" + + /// "내가 쓴 리뷰" + static let myReview: String = "내가 쓴 리뷰" + + /// "로그아웃" + static let logout: String = "로그아웃" + + /// "탈퇴하기" + static let withdraw: String = "탈퇴하기" + + /// "이용약관" + static let defaultTerms: String = "이용약관" + + /// "서비스 이용약관" + static let termsOfUse: String = "서비스 이용약관" + + /// "개인정보 이용약관" + static let privacyTermsOfUse: String = "개인정보 이용약관" + + /// "앱 버전" + static let appVersion: String = "앱 버전" + + /// "닉네임 변경" + static let changeNickname: String = "닉네임 변경" + + /// "새로운 닉네임" + static let newNickname: String = "새로운 닉네임" + + /// "기존 닉네임" + static let existingNickname: String = "기존 닉네임" + + /// "문의하기" + static let inquiry: String = "문의하기" + + /// "정말 탈퇴하시겠습니까?" + static let confirmWithdrawal: String = "정말 탈퇴하시겠습니까?" + + /// "작성한 리뷰 게시글은 삭제되지 않으며, (알수없음)으로 표시됩니다.\n자세한 내용은 서비스이용약관 및 개인정보처리방침을 확인해 주세요." + static let withdrawalNotice: String = + "작성한 리뷰 게시글은 삭제되지 않으며, (알수없음)으로 표시됩니다.\n자세한 내용은 서비스이용약관 및 개인정보처리방침을 확인해 주세요." + + /// "올바른 입력입니다." + static let validInputMessage: String = "올바른 입력입니다" + + /// "올바르지 않은 닉네임입니다" + static let invalidNicknameMessage: String = "올바르지 않은 닉네임입니다" + } +} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift index 253ce53..a7a45ba 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift @@ -9,28 +9,24 @@ import Foundation /// "마이파이지"에서 확인할 수 있는 서비스 리스트 enum MyPageLabels : Int { - - /// 내가 쓴 리뷰 - case MyReview = 0 - - /// 문의하기 - case Inquiry - - /// 서비스 이용약관 - case TermsOfUse - - /// 개인정보 이용약관 - case PrivacyTermsOfUse - - /// 로그아웃 - case Logout - - /// 탈퇴하기 - case Withdraw - - /// 만든사람들 - case Creator - - /// 앱버전 - case AppVersion + /// 푸시 알림 설정 + case NotificationSetting = 0 + + /// 내가 쓴 리뷰 + case MyReview + + /// 문의하기 + case Inquiry + + /// 서비스 이용약관 + case TermsOfUse + + /// 개인정보 이용약관 + case PrivacyTermsOfUse + + /// 만든사람들 + case Creator + + /// 로그아웃 + case Logout } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift deleted file mode 100644 index 1dd8b3f..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift +++ /dev/null @@ -1,10 +0,0 @@ -// -// DataTypeProtocol.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/07/16. -// - -import Foundation - -protocol AppData {} From b0942635dbb0eacc22204b6aa61cde843ea5b0f1 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Sat, 21 Sep 2024 18:03:26 +0900 Subject: [PATCH 16/29] =?UTF-8?q?[#88]=20=ED=8F=B4=EB=8D=94=EB=A7=81=20?= =?UTF-8?q?=EA=B0=9C=ED=8E=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => Assets}/Color.xcassets/Contents.json | 0 .../Color.xcassets/GrayScale/Contents.json | 0 .../GrayScale/gray100.colorset/Contents.json | 0 .../GrayScale/gray200.colorset/Contents.json | 0 .../GrayScale/gray300.colorset/Contents.json | 0 .../GrayScale/gray400.colorset/Contents.json | 0 .../GrayScale/gray500.colorset/Contents.json | 0 .../GrayScale/gray600.colorset/Contents.json | 0 .../GrayScale/gray700.colorset/Contents.json | 0 .../Color.xcassets/Main/Contents.json | 0 .../Main/primary.colorset/Contents.json | 0 .../Main/secondary.colorset/Contents.json | 0 .../Color.xcassets/Red/Contents.json | 0 .../Red/error.colorset/Contents.json | 0 .../Color.xcassets/Yellow/Contents.json | 0 .../Yellow/star.colorset/Contents.json | 0 .../AppIcon.appiconset/100.png | Bin .../AppIcon.appiconset/1024.png | Bin .../AppIcon.appiconset/114.png | Bin .../AppIcon.appiconset/120.png | Bin .../AppIcon.appiconset/128.png | Bin .../AppIcon.appiconset/144.png | Bin .../AppIcon.appiconset/152.png | Bin .../Images.xcassets/AppIcon.appiconset/16.png | Bin .../AppIcon.appiconset/167.png | Bin .../AppIcon.appiconset/172.png | Bin .../AppIcon.appiconset/180.png | Bin .../AppIcon.appiconset/196.png | Bin .../Images.xcassets/AppIcon.appiconset/20.png | Bin .../AppIcon.appiconset/216.png | Bin .../AppIcon.appiconset/256.png | Bin .../Images.xcassets/AppIcon.appiconset/29.png | Bin .../Images.xcassets/AppIcon.appiconset/32.png | Bin .../Images.xcassets/AppIcon.appiconset/40.png | Bin .../Images.xcassets/AppIcon.appiconset/48.png | Bin .../Images.xcassets/AppIcon.appiconset/50.png | Bin .../AppIcon.appiconset/512.png | Bin .../Images.xcassets/AppIcon.appiconset/55.png | Bin .../Images.xcassets/AppIcon.appiconset/57.png | Bin .../Images.xcassets/AppIcon.appiconset/58.png | Bin .../Images.xcassets/AppIcon.appiconset/60.png | Bin .../Images.xcassets/AppIcon.appiconset/64.png | Bin .../Images.xcassets/AppIcon.appiconset/66.png | Bin .../Images.xcassets/AppIcon.appiconset/72.png | Bin .../Images.xcassets/AppIcon.appiconset/76.png | Bin .../Images.xcassets/AppIcon.appiconset/80.png | Bin .../Images.xcassets/AppIcon.appiconset/87.png | Bin .../Images.xcassets/AppIcon.appiconset/88.png | Bin .../Images.xcassets/AppIcon.appiconset/92.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../Images.xcassets/Contents.json | 0 .../version1/AddImageButton.imageset/Add.svg | 0 .../AddImageButton.imageset/Contents.json | 0 .../Images.xcassets/version1}/Contents.json | 0 .../EatSSULogo.imageset/Contents.json | 0 .../version1/EatSSULogo.imageset/appLogo.pdf | Bin .../appleLoginButton.imageset/Contents.json | 0 .../appleLoginButton.pdf | Bin .../version1/check.imageset/Contents.json | 0 .../version1/check.imageset/btn check 1.png | Bin .../version1/check.imageset/btn check 2.png | Bin .../version1/check.imageset/btn check.png | Bin .../checkedIcon.imageset/Contents.json | 0 .../checkedIcon.imageset/checkedIcon.pdf | Bin .../coordinate.imageset/Contents.json | 0 .../version1/coordinate.imageset/Vector.svg | 0 .../greySideButton.imageset/Contents.json | 0 .../greySideButton.imageset/Vector (4) 1.svg | 0 .../greySideButton.imageset/Vector (4) 2.svg | 0 .../greySideButton.imageset/Vector (4).svg | 0 .../kakaoLoginButton.imageset/Contents.json | 0 .../kakaoLoginButton.pdf | Bin .../lookingButton.imageset/Contents.json | 0 .../lookingButton.imageset/lookingButton.pdf | Bin .../myPageIcon.imageset/Contents.json | 0 .../version1/myPageIcon.imageset/menuIcon.pdf | Bin .../noMyReview.imageset/Contents.json | 0 .../noMyReview.imageset/noMyReview.pdf | Bin .../version1/noReview.imageset/Contents.json | 0 .../version1/noReview.imageset/noReview.pdf | Bin .../pleaseLogin.imageset/Contents.json | 0 .../pleaseLogin.imageset/Group 506.svg | 0 .../profileIcon.imageset/Contents.json | 0 .../profileIcon.imageset/profileIcon.pdf | Bin .../signInImage.imageset/Contents.json | 0 .../signInImage.imageset/Group 107.pdf | Bin .../signInWithApple.imageset/Contents.json | 0 ..._with_Apple_-_Logo_Only_-_White_Square.svg | 0 .../signInWithKakao.imageset/Contents.json | 0 .../signInWithKakao.imageset/kakaoLogo.pdf | Bin .../splashLogo.imageset/Contents.json | 0 .../splashLogo.imageset/noticeLogo.pdf | Bin .../version1/starEmpty.imageset/Contents.json | 0 .../starEmpty.imageset/Vector (2) 1.svg | 0 .../starEmpty.imageset/Vector (2) 2.svg | 0 .../starEmpty.imageset/Vector (2).svg | 0 .../starEmptyBig.imageset/Contents.json | 0 .../starEmptyBig.imageset/Vector (4) 1.svg | 0 .../starEmptyBig.imageset/Vector (4) 2.svg | 0 .../starEmptyBig.imageset/Vector (4).svg | 0 .../starFilled.imageset/Contents.json | 0 .../starFilled.imageset/Vector (1) 1.svg | 0 .../starFilled.imageset/Vector (1) 2.svg | 0 .../starFilled.imageset/Vector (1).svg | 0 .../starFilledBig.imageset/Contents.json | 0 .../starFilledBig.imageset/Vector (3) 1.svg | 0 .../starFilledBig.imageset/Vector (3) 2.svg | 0 .../starFilledBig.imageset/Vector (3).svg | 0 .../version1/unChecked.imageset/Contents.json | 0 .../mdi_circle-outline 1.png | Bin .../mdi_circle-outline 2.png | Bin .../unChecked.imageset/mdi_circle-outline.png | Bin .../uncheckedIcon.imageset/Contents.json | 0 .../uncheckedIcon.imageset/uncheckedIcon.pdf | Bin .../userProfile.imageset/Contents.json | 0 .../userProfile.imageset/Group (1) 1.svg | 0 .../userProfile.imageset/Group (1) 2.svg | 0 .../userProfile.imageset/Group (1).svg | 0 .../AppleLoginButton.svg | 0 .../AppleLoginButton.imageset/Contents.json | 0 .../version2/AuthLogo.imageset/AuthLogo.svg | 0 .../version2/AuthLogo.imageset/Contents.json | 0 .../AuthSubTitle.imageset/AuthSubTitle.svg | 0 .../AuthSubTitle.imageset/Contents.json | 0 .../Images.xcassets/version2}/Contents.json | 3 + .../version2/Creators.imageset/Contents.json | 0 .../version2/Creators.imageset/Creators.png | Bin .../KakaoLoginButton.imageset/Contents.json | 12 ++++ .../KakaoLoginButton.svg | 0 .../LookAroundButton.imageset/Contents.json | 12 ++++ .../LookAroundButton.svg | 0 .../version2/MainLogo.imageset/Contents.json | 0 .../version2/MainLogo.imageset/MainLogo.png | Bin .../MainLogoSmall.imageset/Contents.json | 0 .../MainLogoSmall.imageset/MainLogoSmall.svg | 0 .../SplashLogo.imageset/Contents.json | 0 .../SplashLogo.imageset/SplashLogo.svg | 0 .../version2/ic_check.imageset/Contents.json | 0 .../ic_check.imageset/ic_check[24].png | Bin .../ic_check.imageset/ic_check[24]@2x.png | Bin .../ic_check.imageset/ic_check[24]@3x.png | Bin .../version2/ic_info.imageset/Contents.json | 0 .../version2/ic_info.imageset/info.svg | 0 .../version2/ic_menu.imageset/Contents.json | 0 .../version2/ic_menu.imageset/ic_menu[12].svg | 0 .../ic_selected.imageset/Contents.json | 0 .../ic_selected.imageset/ic_selected[24].png | Bin .../ic_selected[24]@2x.png | Bin .../ic_selected[24]@3x.png | Bin .../ic_star_gray.imageset/Contents.json | 0 .../ic_star_gray[24].svg | 0 .../ic_star_yellow.imageset/Contents.json | 0 .../ic_star_yellow[24].png | Bin .../ic_uncheck.imageset/Contents.json | 0 .../ic_uncheck.imageset/ic_uncheck[24].png | Bin .../ic_uncheck.imageset/ic_uncheck[24]@2x.png | Bin .../ic_uncheck.imageset/ic_uncheck[24]@3x.png | Bin .../version2/profile.imageset/Contents.json | 0 .../version2/profile.imageset/profile.svg | 0 .../restaurantImage.imageset/Contents.json | 0 .../restaurantImage.png | Bin .../review_photo_dummy.imageset/Contents.json | 0 .../Rectangle 161123839.png | Bin .../thumb-down.imageset/Contents.json | 0 .../thumb-down.imageset/thumb-down.svg | 0 .../version2/thumb-up.imageset/Contents.json | 0 .../version2/thumb-up.imageset/thumb-up.svg | 0 .../KakaoLoginButton.imageset/Contents.json | 21 ------ .../LookAroundButton.imageset/Contents.json | 21 ------ .../EATSSU_MVC/Resources/SplashEvent.png | Bin 26330 -> 0 bytes .../Firebase/FirebaseRemoteConfig.swift | 0 .../Firebase/NoticeMessage.swift | 0 .../Firebase/NoticeViewController.swift | 3 +- .../LocalDB/RealmService.swift | 0 .../{Network => Data}/LocalDB/Token.swift | 0 .../{Network => Data}/LocalDB/UserInfo.swift | 0 .../LocalDB/UserInfoManager.swift | 0 .../{ => Data}/Network/Config/Config.swift | 0 .../Network/DTO/Auth/AppleLoginRequest.swift | 0 .../Network/DTO/Auth/AuthRouter.swift | 0 .../Network/DTO/Auth/KakaoLoginRequest.swift | 0 .../Network/DTO/Auth/SignInRequest.swift | 0 .../Network/DTO/Auth/SignResponse.swift | 0 .../Network/DTO/Auth/SignUpRequest.swift | 0 .../DTO/Auth/UserNicknameRequest.swift | 0 .../Network/DTO/Auth/WriteReviewRouter.swift | 0 .../DTO/Home/ChangeMenuTableResponse.swift | 0 .../DTO/Home/FixedMenuTableResponse.swift | 0 .../DTO/Home/RestaurantInfoResponse.swift | 0 .../Network/DTO/My/InquiryRequest.swift | 0 .../Network/DTO/My/MyInfoResponse.swift | 0 .../Network/DTO/My/MyReviewResponse.swift | 0 .../DTO/Review/BeforeSelectedImageDTO.swift | 0 .../DTO/Review/FixedReviewRateResponse.swift | 0 .../Network/DTO/Review/MenuInfoResponse.swift | 0 .../DTO/Review/MenuReviewResponse.swift | 0 .../Network/DTO/Review/ReportRequest.swift | 0 .../DTO/Review/ReviewListResponse.swift | 0 .../DTO/Review/ReviewRateResponse.swift | 0 .../Network/DTO/Review/ReviewRouter.swift | 0 .../DTO/Review/TotalReviewResponse.swift | 0 .../DTO/Review/UploadImageResponse.swift | 0 .../DTO/Review/WriteReviewRequest.swift | 0 .../Network/Foundation/AuthInterceptor.swift | 0 .../Network/Foundation/BaseResponse.swift | 0 .../Network/Foundation/MoyaPluggin.swift | 0 .../Network/Foundation/NetworkMonitor.swift | 0 .../Network/Router/HomeRouter.swift | 0 .../{ => Data}/Network/Router/MyRouter.swift | 0 .../Network/Router/ReissueRouter.swift | 0 .../Network/Router/UserNicknameRouter.swift | 0 .../Enum/NIcknameTextFieldResultType.swift | 0 .../Auth/View/LoginView.swift | 0 .../Auth/View/SetNickNameView.swift | 0 .../ViewController/LoginViewController.swift | 0 .../SetNickNameViewController.swift | 0 .../Home/Enum/MenuTypeInfo.swift | 0 .../Home/Enum/Weekday.swift | 0 .../Home/Model/FixedMenuInfoModel.swift | 0 .../Home/Model/RestaurantInfoModel.swift | 0 .../Home/Model/ReviewMenuTypeInfo.swift | 0 .../Home/Model/TimeData.swift | 0 .../Home/Protocol/MenuType.swift | 0 .../Home/View/HomeCalendarView.swift | 0 .../Home/View/HomeRestaurantView.swift | 0 .../RestaurantInfoTimeTableView.swift | 0 .../RestaurantInfoView.swift | 0 .../TimeDataTableViewCell.swift | 0 .../RestaurantTableViewHeader.swift | 0 .../RestaurantTableViewMenuCell.swift | 0 .../RestaurantTableViewMenuTitleCell.swift | 0 .../HomeRestaurantViewController.swift | 0 .../HomeTimeTabmanController.swift | 0 .../ViewController/HomeViewController.swift | 3 +- .../RestaurantInfoViewController.swift | 0 .../MyPage/Enum}/MyPageLabels.swift | 0 .../MyPage/Model/MyPageModel.swift | 0 .../MyPage/View/Cell/MyPageServiceCell.swift | 0 .../MyPage/View/CreatorsView.swift | 0 .../MyPage/View/MyPageView.swift | 0 .../MyPage/View/MyReviewView.swift | 0 .../MyPage/View/ProvisionView.swift | 0 .../MyPage/View/RequestView.swift | 0 .../MyPage/View/UserWithdrawView.swift | 0 .../CreatorViewController.swift | 0 .../ViewController/MyPageViewController.swift | 0 .../MyReviewViewController.swift | 0 .../ProvisionViewController.swift | 0 .../RequestViewController.swift | 0 .../UserWithdrawViewController.swift | 0 .../ChoiceMenuTableViewCell.swift | 0 .../Review/View/RateReview/RateView.swift | 0 .../Review/View/RerportView/ReportView.swift | 0 .../View/SeeReview/RateNumberView.swift | 0 .../View/SeeReview/ReviewEmptyViewCell.swift | 0 .../View/SeeReview/ReviewRateViewCell.swift | 0 .../View/SeeReview/ReviewTableCell.swift | 0 .../ChoiceMenuViewController.swift | 0 .../FormerReportViewController.swift | 0 .../ViewController/ReportViewController.swift | 0 .../ViewController/ReviewViewController.swift | 0 .../SetRateViewController.swift | 0 .../WriteReviewViewController.swift | 0 .../Sources/Utility/Literal/DummyModel.swift | 6 +- .../Sources/Utility/Literal/TextLiteral.swift | 1 - .../Utility/Protocol/DataTypeProtocol.swift | 6 +- .../Utility/UIComponent/NavigationBar.swift | 65 ------------------ .../Sources/Utility/UIComponent/exNavi.swift | 8 --- EATSSU_MVC/Project.swift | 4 +- 269 files changed, 43 insertions(+), 122 deletions(-) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray100.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray200.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray300.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray400.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray500.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray600.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray700.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Main/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Main/primary.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Main/secondary.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Red/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Red/error.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Yellow/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Yellow/star.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/100.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/1024.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/114.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/120.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/128.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/144.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/152.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/16.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/167.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/172.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/180.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/196.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/20.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/216.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/256.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/29.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/32.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/40.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/48.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/50.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/512.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/55.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/57.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/58.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/60.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/64.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/66.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/72.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/76.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/80.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/87.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/88.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/92.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/AddImageButton.imageset/Add.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/AddImageButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{Images.xcassets/version2 => Assets/Images.xcassets/version1}/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/EatSSULogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/appleLoginButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/btn check 1.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/btn check 2.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/btn check.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/checkedIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/coordinate.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/coordinate.imageset/Vector.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/lookingButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/myPageIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noMyReview.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noReview.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noReview.imageset/noReview.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/pleaseLogin.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/profileIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInImage.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInImage.imageset/Group 107.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithApple.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithKakao.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/splashLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Vector (1).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Group (1).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{Images.xcassets/version1 => Assets/Images.xcassets/version2}/Contents.json (52%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/Creators.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/Creators.imageset/Creators.png (100%) create mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg (100%) create mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/Contents.json rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogo.imageset/MainLogo.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/SplashLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/ic_check[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_info.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_info.imageset/info.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_menu.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_gray.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/profile.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/profile.imageset/profile.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/restaurantImage.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-down.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-up.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg (100%) delete mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json delete mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/Contents.json delete mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/SplashEvent.png rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility => Data}/Firebase/FirebaseRemoteConfig.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility => Data}/Firebase/NoticeMessage.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility => Data}/Firebase/NoticeViewController.swift (94%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/RealmService.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/Token.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/UserInfo.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/UserInfoManager.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Config/Config.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/AppleLoginRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/AuthRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/KakaoLoginRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/SignInRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/SignResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/SignUpRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/UserNicknameRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/WriteReviewRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Home/ChangeMenuTableResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Home/FixedMenuTableResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Home/RestaurantInfoResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/My/InquiryRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/My/MyInfoResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/My/MyReviewResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/BeforeSelectedImageDTO.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/FixedReviewRateResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/MenuInfoResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/MenuReviewResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReportRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReviewListResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReviewRateResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReviewRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/TotalReviewResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/UploadImageResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/WriteReviewRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/AuthInterceptor.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/BaseResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/MoyaPluggin.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/NetworkMonitor.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/HomeRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/MyRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/ReissueRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/UserNicknameRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/Enum/NIcknameTextFieldResultType.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/View/LoginView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/View/SetNickNameView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/ViewController/LoginViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/ViewController/SetNickNameViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Enum/MenuTypeInfo.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Enum/Weekday.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/FixedMenuInfoModel.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/RestaurantInfoModel.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/ReviewMenuTypeInfo.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/TimeData.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Protocol/MenuType.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/HomeCalendarView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/HomeRestaurantView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantInfoView/RestaurantInfoView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/HomeRestaurantViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/HomeTimeTabmanController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/HomeViewController.swift (95%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/RestaurantInfoViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility/Namespace => Presentation/MyPage/Enum}/MyPageLabels.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/Model/MyPageModel.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/Cell/MyPageServiceCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/CreatorsView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/MyPageView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/MyReviewView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/ProvisionView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/RequestView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/UserWithdrawView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/CreatorViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/MyPageViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/MyReviewViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/ProvisionViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/RequestViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/UserWithdrawViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/RateReview/RateView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/RerportView/ReportView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/RateNumberView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/ReviewEmptyViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/ReviewRateViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/ReviewTableCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/ChoiceMenuViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/FormerReportViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/ReportViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/ReviewViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/SetRateViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/WriteReviewViewController.swift (100%) delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray100.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray100.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray100.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray100.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray200.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray200.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray200.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray200.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray300.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray300.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray300.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray300.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray400.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray400.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray400.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray400.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray500.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray500.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray500.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray500.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray600.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray600.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray600.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray600.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray700.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray700.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray700.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray700.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/primary.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/primary.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/primary.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/primary.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/secondary.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/secondary.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/secondary.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/secondary.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/error.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/error.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/error.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/error.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/star.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/star.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/star.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/star.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/100.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/100.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/1024.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/1024.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/114.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/114.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/120.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/120.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/128.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/128.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/128.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/128.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/144.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/144.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/152.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/152.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/16.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/16.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/16.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/16.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/167.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/167.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/172.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/172.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/172.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/172.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/180.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/180.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/196.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/196.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/196.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/196.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/20.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/20.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/216.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/216.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/216.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/216.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/256.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/256.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/256.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/256.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/29.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/29.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/32.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/32.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/32.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/32.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/40.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/40.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/48.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/48.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/48.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/48.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/50.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/50.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/512.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/512.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/512.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/512.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/55.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/55.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/55.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/55.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/57.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/57.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/58.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/58.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/60.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/60.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/64.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/64.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/64.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/64.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/66.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/66.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/66.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/66.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/72.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/72.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/76.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/76.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/80.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/80.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/87.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/87.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/88.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/88.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/88.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/88.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/92.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/92.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/92.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/92.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Add.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Add.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Add.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Add.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 1.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 1.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 1.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 1.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 2.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 2.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 2.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 2.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Vector.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Vector.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Vector.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Vector.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/noReview.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/noReview.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/noReview.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/noReview.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Group 107.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Group 107.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Group 107.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Group 107.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Contents.json similarity index 52% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Contents.json index 73c0059..6e96565 100644 --- a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/Contents.json +++ b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Contents.json @@ -2,5 +2,8 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "provides-namespace" : true } } diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Creators.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Creators.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Creators.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Creators.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json new file mode 100644 index 0000000..1cb770d --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "KakaoLoginButton.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/Contents.json new file mode 100644 index 0000000..0e0074c --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "LookAroundButton.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/MainLogo.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/MainLogo.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/MainLogo.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/MainLogo.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/info.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/info.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/info.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/info.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/profile.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/profile.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/profile.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/profile.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json deleted file mode 100644 index 75d6af1..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "KakaoLoginButton.svg", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/Contents.json deleted file mode 100644 index 298d533..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "LookAroundButton.svg", - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/SplashEvent.png b/EATSSU_MVC/EATSSU_MVC/Resources/SplashEvent.png deleted file mode 100644 index 4cd8a94976d51cfa101b856fc645dbbd63be4dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26330 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 I@#eGt0av@GPXGV_ diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/FirebaseRemoteConfig.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/FirebaseRemoteConfig.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/FirebaseRemoteConfig.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/FirebaseRemoteConfig.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeMessage.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeMessage.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeMessage.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeMessage.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeViewController.swift similarity index 94% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeViewController.swift index 209d09e..3b63208 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeViewController.swift @@ -9,7 +9,8 @@ import UIKit import SnapKit -class NoticeViewController:BaseViewController { +/// FirebaseRemoteConfig 관련 ViewController +class NoticeViewController: BaseViewController { // MARK: - Properties var noticeMessage: String diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/RealmService.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/RealmService.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/Token.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/Token.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/Token.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/Token.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfo.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfoManager.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfoManager.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Config/Config.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Config/Config.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Config/Config.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Config/Config.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AppleLoginRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AppleLoginRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AppleLoginRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AppleLoginRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AuthRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AuthRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AuthRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AuthRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/KakaoLoginRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/KakaoLoginRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/KakaoLoginRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/KakaoLoginRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignInRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignInRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignInRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignInRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignUpRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignUpRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignUpRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignUpRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/UserNicknameRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/UserNicknameRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/UserNicknameRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/UserNicknameRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/WriteReviewRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/WriteReviewRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/WriteReviewRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/WriteReviewRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/ChangeMenuTableResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/ChangeMenuTableResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/ChangeMenuTableResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/ChangeMenuTableResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/FixedMenuTableResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/FixedMenuTableResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/FixedMenuTableResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/FixedMenuTableResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/RestaurantInfoResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/RestaurantInfoResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/RestaurantInfoResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/RestaurantInfoResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/InquiryRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/InquiryRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/InquiryRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/InquiryRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyInfoResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyInfoResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyInfoResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyInfoResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyReviewResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyReviewResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyReviewResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyReviewResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/BeforeSelectedImageDTO.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/BeforeSelectedImageDTO.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/BeforeSelectedImageDTO.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/BeforeSelectedImageDTO.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/FixedReviewRateResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/FixedReviewRateResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/FixedReviewRateResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/FixedReviewRateResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuInfoResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuInfoResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuInfoResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuInfoResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuReviewResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuReviewResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuReviewResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuReviewResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReportRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReportRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReportRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReportRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewListResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewListResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewListResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewListResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRateResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRateResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRateResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRateResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/TotalReviewResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/TotalReviewResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/TotalReviewResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/TotalReviewResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/UploadImageResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/UploadImageResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/UploadImageResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/UploadImageResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/WriteReviewRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/WriteReviewRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/WriteReviewRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/WriteReviewRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/AuthInterceptor.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/AuthInterceptor.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/AuthInterceptor.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/AuthInterceptor.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/BaseResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/BaseResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/BaseResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/BaseResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/MoyaPluggin.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/MoyaPluggin.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/MoyaPluggin.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/MoyaPluggin.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/NetworkMonitor.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/NetworkMonitor.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/NetworkMonitor.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/NetworkMonitor.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/HomeRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/HomeRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/HomeRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/HomeRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/MyRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/MyRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/MyRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/MyRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/ReissueRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/ReissueRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/ReissueRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/ReissueRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/UserNicknameRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/UserNicknameRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/UserNicknameRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/UserNicknameRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/Enum/NIcknameTextFieldResultType.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/Enum/NIcknameTextFieldResultType.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/Enum/NIcknameTextFieldResultType.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/Enum/NIcknameTextFieldResultType.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/LoginView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/LoginView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/LoginView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/LoginView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/SetNickNameView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/SetNickNameView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/SetNickNameView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/SetNickNameView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/LoginViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/LoginViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/SetNickNameViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/SetNickNameViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/MenuTypeInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/MenuTypeInfo.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/MenuTypeInfo.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/MenuTypeInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/Weekday.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/Weekday.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/Weekday.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/Weekday.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/FixedMenuInfoModel.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/FixedMenuInfoModel.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/FixedMenuInfoModel.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/FixedMenuInfoModel.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/RestaurantInfoModel.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/RestaurantInfoModel.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/RestaurantInfoModel.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/RestaurantInfoModel.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/ReviewMenuTypeInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/ReviewMenuTypeInfo.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/ReviewMenuTypeInfo.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/ReviewMenuTypeInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/TimeData.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/TimeData.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/TimeData.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/TimeData.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Protocol/MenuType.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Protocol/MenuType.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Protocol/MenuType.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Protocol/MenuType.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeCalendarView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeCalendarView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeCalendarView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeCalendarView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeRestaurantView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeRestaurantView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeRestaurantView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeRestaurantView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeRestaurantViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeRestaurantViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeRestaurantViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeRestaurantViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeTimeTabmanController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeTimeTabmanController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeTimeTabmanController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeTimeTabmanController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeViewController.swift similarity index 95% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeViewController.swift index a70295d..9a0e973 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeViewController.swift @@ -66,7 +66,8 @@ final class HomeViewController: BaseViewController { navigationItem.titleView = UIImageView(image: EATSSUAsset.Images.Version2.mainLogoSmall.image) let rightButton = UIBarButtonItem( - image: EATSSUAsset.Images.myPageIcon.image, + // FIXME: myPageIcon은 Version 1 소속 이미지 파일입니다. 앞으로도 사용한다면 Version 2로 옮겨주세요. + image: EATSSUAsset.Images.Version1.myPageIcon.image, style: .plain, target: self, action: #selector(rightBarButtonTapped)) navigationItem.rightBarButtonItem = rightButton diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/RestaurantInfoViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/RestaurantInfoViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/RestaurantInfoViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/RestaurantInfoViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Enum/MyPageLabels.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Enum/MyPageLabels.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageModel.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Model/MyPageModel.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageModel.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Model/MyPageModel.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/Cell/MyPageServiceCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/Cell/MyPageServiceCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/Cell/MyPageServiceCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/Cell/MyPageServiceCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/CreatorsView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/CreatorsView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyReviewView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyReviewView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyReviewView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyReviewView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/ProvisionView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/ProvisionView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/ProvisionView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/ProvisionView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/RequestView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/RequestView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/RequestView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/RequestView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/CreatorViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/CreatorViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyReviewViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyReviewViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/ProvisionViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/ProvisionViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/RequestViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/RequestViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/RequestViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/RequestViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/UserWithdrawViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/UserWithdrawViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RateReview/RateView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RateReview/RateView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RateReview/RateView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RateReview/RateView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RerportView/ReportView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RerportView/ReportView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RerportView/ReportView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RerportView/ReportView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/RateNumberView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/RateNumberView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/RateNumberView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/RateNumberView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewEmptyViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewEmptyViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewEmptyViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewEmptyViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewRateViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewRateViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewRateViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewRateViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewTableCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewTableCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewTableCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewTableCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ChoiceMenuViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ChoiceMenuViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ChoiceMenuViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ChoiceMenuViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/FormerReportViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/FormerReportViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/FormerReportViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/FormerReportViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReportViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReportViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReportViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReportViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReviewViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReviewViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReviewViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReviewViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/SetRateViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/SetRateViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/SetRateViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/SetRateViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/WriteReviewViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/WriteReviewViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/WriteReviewViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/WriteReviewViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift index 7eeab01..5cc8f92 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/DummyModel.swift @@ -7,4 +7,8 @@ import UIKit -struct DummyModel: AppData {} +// TODO: 해당 파일을 남겨둘지 앞으로 유지 관련해서 명세해주세요. + +struct DummyModel: AppData { + +} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift index 068f43b..ee491da 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift @@ -96,4 +96,3 @@ enum TextLiteral { static let send = "전송하기" } - diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift index 1dd8b3f..27ab611 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Protocol/DataTypeProtocol.swift @@ -7,4 +7,8 @@ import Foundation -protocol AppData {} +// TODO: 해당 프로토콜이 왜 필요한 지 마크업 주석으로 명세를 남겨주세요. + +protocol AppData { + +} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift deleted file mode 100644 index 77b2523..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift +++ /dev/null @@ -1,65 +0,0 @@ -// -// NavigationBar.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/04/08. -// - -import UIKit - -import SnapKit -import Then - -class NavigationBar: BaseViewController { - -// // MARK: - Properties -// -// private lazy var titleLabel = UILabel() -// private lazy var backButton = UIBarButtonItem() -// private lazy var rightButton = UIBarButtonItem() -// -// // MARK: - UI Components -// -// // MARK: - Life Cycles -// -// override func viewDidLoad() { -// super.viewDidLoad() -// view.backgroundColor = .systemBackground -// configureUI() -// setLayout() -// setButtonEvent() -// } -// -// //MARK: - Functions -// -// override func configureUI() { -// //override Point -// } -// -// override func setLayout() { -// //override Point -// } -//} -// -//// MARK: - Custom Methods -//extension NavigationBar { -// -// /// title 지정 함수 -// func setTitle(_ title: String) { -// titleLabel.text = title -// } - -} - - -//func customNavigationBar() { -// navigationController?.navigationBar.tintColor = .primary -// navigationController?.navigationBar.barTintColor = .white -// -// let backButton: UIBarButtonItem = UIBarButtonItem() -// backButton.title = "" -// navigationController?.navigationBar.topItem?.backBarButtonItem = backButton -// -// navigationItem.title = "회원가입" -// navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.primary, NSAttributedString.Key.font: UIFont.bold(size: 22)] -// } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift deleted file mode 100644 index 6e2f32e..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// exNavi.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/04/08. -// - -import Foundation diff --git a/EATSSU_MVC/Project.swift b/EATSSU_MVC/Project.swift index 40b5830..51463fc 100644 --- a/EATSSU_MVC/Project.swift +++ b/EATSSU_MVC/Project.swift @@ -48,8 +48,8 @@ let eatSSUSettings: Settings = .settings( "DEVELOPMENT_LANGUAGE": "ko" ], configurations: [ - .debug(name: "Debug", xcconfig: "EATSSU_MVC/Resources/Debug.xcconfig"), - .release(name: "Release", xcconfig: "EATSSU_MVC/Resources/Release.xcconfig"), + .debug(name: "Debug", xcconfig: "EATSSU_MVC/Resources/Secrets/Debug.xcconfig"), + .release(name: "Release", xcconfig: "EATSSU_MVC/Resources/Secrets/Release.xcconfig"), ] ) From 9b24e170dfa6a4aa403b31af96215e5cf84f334c Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Thu, 19 Sep 2024 17:19:25 +0900 Subject: [PATCH 17/29] =?UTF-8?q?[#28]=20unsupported=20version=20=EC=9D=B4?= =?UTF-8?q?=EC=8A=88=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20Realm=20v15.2.1=20upg?= =?UTF-8?q?rade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Tuist/Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tuist/Package.swift b/Tuist/Package.swift index 527ba43..1531901 100644 --- a/Tuist/Package.swift +++ b/Tuist/Package.swift @@ -27,7 +27,7 @@ let package = Package( .package(url: "https://github.com/onevcat/Kingfisher", from: "7.12.0"), .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "11.1.0"), .package(url: "https://github.com/google/GoogleAppMeasurement", from: "11.1.0"), - .package(url: "https://github.com/realm/realm-swift", from: "10.52.3"), + .package(url: "https://github.com/realm/realm-swift", from: "15.2.1"), .package(url: "https://github.com/ReactiveX/RxSwift", from: "6.7.1"), ] ) From 45e374105806b2799715abc6d374692aa59f392f Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:39:54 +0900 Subject: [PATCH 18/29] =?UTF-8?q?[#28]=20Realm=20UserInfo=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EB=A5=BC=20=EC=9C=84=ED=95=9C=20UserInfoManager=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Network/LocalDB/UserInfoManager.swift | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift new file mode 100644 index 0000000..ae61d2d --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift @@ -0,0 +1,48 @@ +// +// UserInfoManager.swift +// EATSSU +// +// Created by 최지우 on 9/19/24. +// + +import RealmSwift + +class UserInfoManager { + static let shared = UserInfoManager() + private init() {} + + private var realm: Realm { + do { + return try Realm() + } catch { + fatalError("Realm을 초기화하는데 실패했습니다: \(error)") + } + } + + func createUserInfo(accountType: UserInfo.AccountType) -> UserInfo { + let userInfo = UserInfo(accountType: accountType) + do { + try realm.write { + realm.add(userInfo) + } + return userInfo + } catch { + print("UserInfo 생성 중 오류 발생: \(error)") + return userInfo + } + } + + func updateNickname(for userInfo: UserInfo, nickname: String) { + do { + try realm.write { + userInfo.updateNickname(nickname) + } + } catch { + print("닉네임 업데이트 중 오류 발생: \(error)") + } + } + + func getCurrentUserInfo() -> UserInfo? { + return realm.objects(UserInfo.self).first + } +} From 80f7b448454c3b5a272e21a22cc6af6b84b98216 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:43:23 +0900 Subject: [PATCH 19/29] =?UTF-8?q?[#28]=20=EB=A1=9C=EC=BB=ACDB=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90=20nickname/accountType?= =?UTF-8?q?=20=EA=B4=80=EB=A6=AC=EB=A5=BC=20=EC=9C=84=ED=95=9C=20UserInfo?= =?UTF-8?q?=20=EA=B0=9D=EC=B2=B4=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Network/LocalDB/NickName.swift | 21 ---------- .../Sources/Network/LocalDB/UserInfo.swift | 40 +++++++++++++++++++ 2 files changed, 40 insertions(+), 21 deletions(-) delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift create mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift deleted file mode 100644 index dc33169..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/NickName.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// NickName.swift -// EatSSU-iOS -// -// Created by 박윤빈 on 2023/08/02. -// - -import RealmSwift -import Realm - -class NickName: Object { - @Persisted(primaryKey: true) var accessToken: String = "" - @Persisted var nicknName: String = "" - - convenience init(accessToken: String, nickName: String) { - self.init() - - self.accessToken = accessToken - self.nicknName = nickName - } -} diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift new file mode 100644 index 0000000..af96340 --- /dev/null +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift @@ -0,0 +1,40 @@ +// +// NickName.swift +// EatSSU-iOS +// +// Created by 박윤빈 on 2023/08/02. +// + +import RealmSwift +import Realm + +class UserInfo: Object { + + @Persisted(primaryKey: true) var id: String = UUID().uuidString + @Persisted var nickname: String = "" + @Persisted private var accountTypeRaw: String? + + var accountType: AccountType? { + get { + guard let rawValue = accountTypeRaw else { return nil } + return AccountType(rawValue: rawValue) + } + set { + accountTypeRaw = newValue?.rawValue + } + } + + convenience init(accountType: AccountType) { + self.init() + self.accountType = accountType + } + + func updateNickname(_ nickname: String) { + self.nickname = nickname + } + + enum AccountType: String { + case apple = "Apple" + case kakao = "Kakao" + } +} From 466d6d9abfcdcfeb5012a7d7f82cc660c14dc6be Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:44:29 +0900 Subject: [PATCH 20/29] =?UTF-8?q?[#28]=20Realm=EC=9D=98=20=ED=8A=B9?= =?UTF-8?q?=EC=A0=95=20Object=20=EC=9A=94=EC=86=8C=20=EC=A0=84=EC=B2=B4?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Network/LocalDB/RealmService.swift | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift index 095cea9..a136ebc 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift @@ -13,6 +13,10 @@ class RealmService{ static let shared = RealmService() let realm = try! Realm() + + init() { + print("Realm Location: ", realm.configuration.fileURL ?? "cannot find location.") + } func addToken(accessToken:String,refreshToken:String) { let token = Token(accessToken: accessToken,refreshToken: refreshToken) @@ -40,20 +44,19 @@ class RealmService{ try! realm.write { realm.deleteAll() } - } - - func addUser(accessToken: String, nickName: String) { - let nickName = NickName(accessToken: accessToken, nickName: nickName) - try! realm.write { - realm.add(nickName) + + func deleteAll(_ objectType: T.Type) { + do { + let objects = realm.objects(objectType) + try realm.write { + realm.delete(objects) + print("Successfully deleted all objects of type \(objectType)") + } + } catch let error { + print(error) } } - - init() { - print("Realm Location: ", realm.configuration.fileURL ?? "cannot find location.") - } - } From a8c8250adaf76bce7d75538a6834a6b2612d644a Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:47:33 +0900 Subject: [PATCH 21/29] =?UTF-8?q?[#28]=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=8B=9C,=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EB=A1=9C=EC=BB=ACDB=EC=97=90=20=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Screen/Auth/ViewController/LoginViewController.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift index af10a36..2d2de9a 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift @@ -135,6 +135,9 @@ final class LoginViewController: BaseViewController { case nil: self.pushToNicknameVC() default: + if let currentUserInfo = UserInfoManager.shared.getCurrentUserInfo() { + UserInfoManager.shared.updateNickname(for: currentUserInfo, nickname: info.nickname ?? "") + } self.changeIntoHomeViewController() } } @@ -194,6 +197,7 @@ extension LoginViewController { let responseData = try moyaResponse.map(BaseResponse.self) self.addTokenInRealm(accessToken: responseData.result.accessToken, refreshToken: responseData.result.refreshToken) + let userInfo = UserInfoManager.shared.createUserInfo(accountType: .kakao) self.getMyInfo() } catch(let err) { self.presentBottomAlert(err.localizedDescription) @@ -231,6 +235,7 @@ extension LoginViewController { let responseData = try JSONDecoder().decode(BaseResponse.self, from: moyaResponse.data) self.addTokenInRealm(accessToken: responseData.result.accessToken, refreshToken: responseData.result.refreshToken) + let userInfo = UserInfoManager.shared.createUserInfo(accountType: .apple) self.getMyInfo() } catch(let err) { self.presentBottomAlert(err.localizedDescription) From 5b195b7d63970ee5e5e21aca44e743d4054886f9 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Sun, 22 Sep 2024 10:10:42 +0900 Subject: [PATCH 22/29] =?UTF-8?q?[#28]=20Realm=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90=20=EC=A0=95=EB=B3=B4=20=EB=B6=88?= =?UTF-8?q?=EB=9F=AC=EC=98=A4=EB=8A=94=20=EB=A1=9C=EC=A7=81=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Sources/Network/LocalDB/UserInfo.swift | 2 +- .../MyPage/View/MyPageView/MyPageView.swift | 47 ++++++++----------- .../ViewController/MyPageViewController.swift | 37 +++++---------- Tuist/Package.resolved | 8 ++-- Tuist/Package.swift | 2 +- 5 files changed, 38 insertions(+), 58 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift index af96340..59f172d 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift @@ -1,5 +1,5 @@ // -// NickName.swift +// UserInfo.swift // EatSSU-iOS // // Created by 박윤빈 on 2023/08/02. diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift index 03add45..f7c36d6 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift @@ -13,29 +13,6 @@ import Then final class MyPageView: BaseUIView { // MARK: - Properties - - private var dataModel: MyInfoResponse? { - didSet { - if let nickname = dataModel?.nickname { - userNicknameButton.addTitleAttribute( - title: "\(nickname) >", - titleColor: .black, - fontName: .semiBold(size: 20) - ) - } - - switch dataModel?.provider { - case "KAKAO": - accountTypeDefaultLabel.text = "카카오" - accountTypeImage.image = ImageLiteral.signInWithKakao - case "APPLE": - accountTypeDefaultLabel.text = "APPLE" - accountTypeImage.image = ImageLiteral.signInWithApple - default: - return - } - } - } // MARK: - UI Components @@ -59,7 +36,7 @@ final class MyPageView: BaseUIView { } // 서버에서 계정 정보를 가져오기 전 기본값 - internal var accountTypeDefaultLabel = UILabel().then { + internal var accountTypeLabel = UILabel().then { $0.text = "없음" $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) $0.font = .bold(size: 14) @@ -76,7 +53,7 @@ final class MyPageView: BaseUIView { } internal lazy var accountStackView = UIStackView( - arrangedSubviews: [accountTypeDefaultLabel,accountTypeImage]).then { + arrangedSubviews: [accountTypeLabel,accountTypeImage]).then { $0.alignment = .bottom $0.axis = .horizontal $0.spacing = 5 @@ -197,7 +174,21 @@ final class MyPageView: BaseUIView { forCellReuseIdentifier: NotificationSettingTableViewCell.identifier) } - func dataBind(model: MyInfoResponse) { - dataModel = model - } + public func setUserInfo(nickname: String) { + userNicknameButton.addTitleAttribute( + title: "\(nickname) >", + titleColor: .black, + fontName: .semiBold(size: 20) + ) + if let accountType = UserInfoManager.shared.getCurrentUserInfo()?.accountType { + switch accountType { + case .apple: + accountTypeLabel.text = "APPLE" + accountTypeImage.image = ImageLiteral.signInWithApple + case .kakao: + accountTypeLabel.text = "카카오" + accountTypeImage.image = ImageLiteral.signInWithKakao + } + } + } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift index 65344ce..bfc63fe 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift @@ -18,12 +18,21 @@ import Realm import KakaoSDKCommon import KakaoSDKTalk +// TODO: "탈퇴하기" 로직 연결 + +/* + 아래 코드를 탈퇴하기 버튼에 연결 +let userWithdrawViewController = UserWithdrawViewController() +userWithdrawViewController.getUsernickName(nickName: self.nickName) +self.navigationController?.pushViewController(userWithdrawViewController, animated: true) + */ + final class MyPageViewController: BaseViewController { // MARK: - Properties private let myProvider = MoyaProvider(plugins: [MoyaLoggingPlugin()]) - private var nickName = String() + private var nickName = "" private let myPageTableLabelList = MyPageLocalData.myPageTableLabelList // MARK: - UI Components @@ -41,8 +50,9 @@ final class MyPageViewController: BaseViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - - getMyInfo() + + nickName = UserInfoManager.shared.getCurrentUserInfo()?.nickname ?? "fail" + mypageView.setUserInfo(nickname: nickName) } // MARK: - Functions @@ -120,27 +130,6 @@ final class MyPageViewController: BaseViewController { } } -// MARK: - Server - -extension MyPageViewController { - private func getMyInfo() { - self.myProvider.request(.myInfo) { response in - switch response { - case .success(let moyaResponse): - do { - let responseData = try moyaResponse.map(BaseResponse.self) - self.mypageView.dataBind(model: responseData.result) - self.nickName = responseData.result.nickname ?? "" - } catch(let err) { - print(err.localizedDescription) - } - case .failure(let err): - print(err.localizedDescription) - } - } - } -} - // MARK: - TableView DataSource extension MyPageViewController: UITableViewDataSource { diff --git a/Tuist/Package.resolved b/Tuist/Package.resolved index 22ef56c..607d560 100644 --- a/Tuist/Package.resolved +++ b/Tuist/Package.resolved @@ -176,8 +176,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/realm/realm-core.git", "state" : { - "revision" : "c2552e1d36867cb42b28130e894a81fc17081062", - "version" : "14.12.0" + "revision" : "e474a8d2270a8b12ac63ac9504e4757e39814b99", + "version" : "14.13.0" } }, { @@ -185,8 +185,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/realm/realm-swift", "state" : { - "revision" : "5221a83dc720823e3017493394d00d49ccf13446", - "version" : "10.52.3" + "revision" : "863498d37a9f0e72caa65963da9641d8cdfc8228", + "version" : "10.54.0" } }, { diff --git a/Tuist/Package.swift b/Tuist/Package.swift index 1531901..c3eb438 100644 --- a/Tuist/Package.swift +++ b/Tuist/Package.swift @@ -27,7 +27,7 @@ let package = Package( .package(url: "https://github.com/onevcat/Kingfisher", from: "7.12.0"), .package(url: "https://github.com/firebase/firebase-ios-sdk", from: "11.1.0"), .package(url: "https://github.com/google/GoogleAppMeasurement", from: "11.1.0"), - .package(url: "https://github.com/realm/realm-swift", from: "15.2.1"), + .package(url: "https://github.com/realm/realm-swift", from: "10.54.0"), .package(url: "https://github.com/ReactiveX/RxSwift", from: "6.7.1"), ] ) From 7b458d77b2d1b5ee5667128fe732e81d73db1255 Mon Sep 17 00:00:00 2001 From: CJiu01 Date: Fri, 20 Sep 2024 03:52:47 +0900 Subject: [PATCH 23/29] =?UTF-8?q?[#28]=20=EB=8B=89=EB=84=A4=EC=9E=84=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95/=EB=B3=80=EA=B2=BD=20=EC=8B=9C=20realm?= =?UTF-8?q?=EC=9D=98=20=EC=A0=95=EB=B3=B4=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Auth/ViewController/SetNickNameViewController.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift index 0c24d0a..ef4108c 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift @@ -8,9 +8,6 @@ import UIKit import Moya -import SnapKit -import Then -import Realm final class SetNickNameViewController: BaseViewController { @@ -121,6 +118,9 @@ extension SetNickNameViewController { switch response { case .success(let moyaResponse): do { + if let currentUserInfo = UserInfoManager.shared.getCurrentUserInfo() { + UserInfoManager.shared.updateNickname(for: currentUserInfo, nickname: nickname) + } self.showAlertController(title: "완료", message: "닉네임 설정이 완료되었습니다.", style: .cancel) { if let myPageViewController = self.navigationController?.viewControllers.first(where: { $0 is MyPageViewController }) { self.navigationController?.popToViewController(myPageViewController, animated: true) From 89a32bedfb07680a00e69247f8a8e6287c26a590 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Sun, 22 Sep 2024 16:19:16 +0900 Subject: [PATCH 24/29] =?UTF-8?q?[#88]=20=ED=8F=B4=EB=8D=94=EB=A7=81=20?= =?UTF-8?q?=EA=B0=9C=ED=8E=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => Assets}/Color.xcassets/Contents.json | 0 .../Color.xcassets/GrayScale/Contents.json | 0 .../GrayScale/gray100.colorset/Contents.json | 0 .../GrayScale/gray200.colorset/Contents.json | 0 .../GrayScale/gray300.colorset/Contents.json | 0 .../GrayScale/gray400.colorset/Contents.json | 0 .../GrayScale/gray500.colorset/Contents.json | 0 .../GrayScale/gray600.colorset/Contents.json | 0 .../GrayScale/gray700.colorset/Contents.json | 0 .../Color.xcassets/Main/Contents.json | 0 .../Main/primary.colorset/Contents.json | 0 .../Main/secondary.colorset/Contents.json | 0 .../Color.xcassets/Red/Contents.json | 0 .../Red/error.colorset/Contents.json | 0 .../Color.xcassets/Yellow/Contents.json | 0 .../Yellow/star.colorset/Contents.json | 0 .../AppIcon.appiconset/100.png | Bin .../AppIcon.appiconset/1024.png | Bin .../AppIcon.appiconset/114.png | Bin .../AppIcon.appiconset/120.png | Bin .../AppIcon.appiconset/128.png | Bin .../AppIcon.appiconset/144.png | Bin .../AppIcon.appiconset/152.png | Bin .../Images.xcassets/AppIcon.appiconset/16.png | Bin .../AppIcon.appiconset/167.png | Bin .../AppIcon.appiconset/172.png | Bin .../AppIcon.appiconset/180.png | Bin .../AppIcon.appiconset/196.png | Bin .../Images.xcassets/AppIcon.appiconset/20.png | Bin .../AppIcon.appiconset/216.png | Bin .../AppIcon.appiconset/256.png | Bin .../Images.xcassets/AppIcon.appiconset/29.png | Bin .../Images.xcassets/AppIcon.appiconset/32.png | Bin .../Images.xcassets/AppIcon.appiconset/40.png | Bin .../Images.xcassets/AppIcon.appiconset/48.png | Bin .../Images.xcassets/AppIcon.appiconset/50.png | Bin .../AppIcon.appiconset/512.png | Bin .../Images.xcassets/AppIcon.appiconset/55.png | Bin .../Images.xcassets/AppIcon.appiconset/57.png | Bin .../Images.xcassets/AppIcon.appiconset/58.png | Bin .../Images.xcassets/AppIcon.appiconset/60.png | Bin .../Images.xcassets/AppIcon.appiconset/64.png | Bin .../Images.xcassets/AppIcon.appiconset/66.png | Bin .../Images.xcassets/AppIcon.appiconset/72.png | Bin .../Images.xcassets/AppIcon.appiconset/76.png | Bin .../Images.xcassets/AppIcon.appiconset/80.png | Bin .../Images.xcassets/AppIcon.appiconset/87.png | Bin .../Images.xcassets/AppIcon.appiconset/88.png | Bin .../Images.xcassets/AppIcon.appiconset/92.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../Images.xcassets/Contents.json | 0 .../version1/AddImageButton.imageset/Add.svg | 0 .../AddImageButton.imageset/Contents.json | 0 .../Images.xcassets/version1}/Contents.json | 0 .../EatSSULogo.imageset/Contents.json | 0 .../version1/EatSSULogo.imageset/appLogo.pdf | Bin .../appleLoginButton.imageset/Contents.json | 0 .../appleLoginButton.pdf | Bin .../version1/check.imageset/Contents.json | 0 .../version1/check.imageset/btn check 1.png | Bin .../version1/check.imageset/btn check 2.png | Bin .../version1/check.imageset/btn check.png | Bin .../checkedIcon.imageset/Contents.json | 0 .../checkedIcon.imageset/checkedIcon.pdf | Bin .../coordinate.imageset/Contents.json | 0 .../version1/coordinate.imageset/Vector.svg | 0 .../greySideButton.imageset/Contents.json | 0 .../greySideButton.imageset/Vector (4) 1.svg | 0 .../greySideButton.imageset/Vector (4) 2.svg | 0 .../greySideButton.imageset/Vector (4).svg | 0 .../kakaoLoginButton.imageset/Contents.json | 0 .../kakaoLoginButton.pdf | Bin .../lookingButton.imageset/Contents.json | 0 .../lookingButton.imageset/lookingButton.pdf | Bin .../myPageIcon.imageset/Contents.json | 0 .../version1/myPageIcon.imageset/menuIcon.pdf | Bin .../noMyReview.imageset/Contents.json | 0 .../noMyReview.imageset/noMyReview.pdf | Bin .../version1/noReview.imageset/Contents.json | 0 .../version1/noReview.imageset/noReview.pdf | Bin .../pleaseLogin.imageset/Contents.json | 0 .../pleaseLogin.imageset/Group 506.svg | 0 .../profileIcon.imageset/Contents.json | 0 .../profileIcon.imageset/profileIcon.pdf | Bin .../signInImage.imageset/Contents.json | 0 .../signInImage.imageset/Group 107.pdf | Bin .../signInWithApple.imageset/Contents.json | 0 ..._with_Apple_-_Logo_Only_-_White_Square.svg | 0 .../signInWithKakao.imageset/Contents.json | 0 .../signInWithKakao.imageset/kakaoLogo.pdf | Bin .../splashLogo.imageset/Contents.json | 0 .../splashLogo.imageset/noticeLogo.pdf | Bin .../version1/starEmpty.imageset/Contents.json | 0 .../starEmpty.imageset/Vector (2) 1.svg | 0 .../starEmpty.imageset/Vector (2) 2.svg | 0 .../starEmpty.imageset/Vector (2).svg | 0 .../starEmptyBig.imageset/Contents.json | 0 .../starEmptyBig.imageset/Vector (4) 1.svg | 0 .../starEmptyBig.imageset/Vector (4) 2.svg | 0 .../starEmptyBig.imageset/Vector (4).svg | 0 .../starFilled.imageset/Contents.json | 0 .../starFilled.imageset/Vector (1) 1.svg | 0 .../starFilled.imageset/Vector (1) 2.svg | 0 .../starFilled.imageset/Vector (1).svg | 0 .../starFilledBig.imageset/Contents.json | 0 .../starFilledBig.imageset/Vector (3) 1.svg | 0 .../starFilledBig.imageset/Vector (3) 2.svg | 0 .../starFilledBig.imageset/Vector (3).svg | 0 .../version1/unChecked.imageset/Contents.json | 0 .../mdi_circle-outline 1.png | Bin .../mdi_circle-outline 2.png | Bin .../unChecked.imageset/mdi_circle-outline.png | Bin .../uncheckedIcon.imageset/Contents.json | 0 .../uncheckedIcon.imageset/uncheckedIcon.pdf | Bin .../userProfile.imageset/Contents.json | 0 .../userProfile.imageset/Group (1) 1.svg | 0 .../userProfile.imageset/Group (1) 2.svg | 0 .../userProfile.imageset/Group (1).svg | 0 .../AppleLoginButton.svg | 0 .../AppleLoginButton.imageset/Contents.json | 0 .../version2/AuthLogo.imageset/AuthLogo.svg | 0 .../version2/AuthLogo.imageset/Contents.json | 0 .../AuthSubTitle.imageset/AuthSubTitle.svg | 0 .../AuthSubTitle.imageset/Contents.json | 0 .../Images.xcassets/version2}/Contents.json | 3 + .../version2/Creators.imageset/Contents.json | 0 .../version2/Creators.imageset/Creators.png | Bin .../KakaoLoginButton.imageset/Contents.json | 0 .../KakaoLoginButton.svg | 0 .../LookAroundButton.imageset/Contents.json | 0 .../LookAroundButton.svg | 0 .../version2/MainLogo.imageset/Contents.json | 0 .../version2/MainLogo.imageset/MainLogo.png | Bin .../MainLogoSmall.imageset/Contents.json | 0 .../MainLogoSmall.imageset/MainLogoSmall.svg | 0 .../SplashLogo.imageset/Contents.json | 0 .../SplashLogo.imageset/SplashLogo.svg | 0 .../WithdrawIcon.imageset/Contents.json | 0 .../WithdrawIcon.imageset/Unsubscribe.png | Bin .../version2/ic_check.imageset/Contents.json | 0 .../ic_check.imageset/ic_check[24].png | Bin .../ic_check.imageset/ic_check[24]@2x.png | Bin .../ic_check.imageset/ic_check[24]@3x.png | Bin .../version2/ic_info.imageset/Contents.json | 0 .../version2/ic_info.imageset/info.svg | 0 .../version2/ic_menu.imageset/Contents.json | 0 .../version2/ic_menu.imageset/ic_menu[12].svg | 0 .../ic_selected.imageset/Contents.json | 0 .../ic_selected.imageset/ic_selected[24].png | Bin .../ic_selected[24]@2x.png | Bin .../ic_selected[24]@3x.png | Bin .../ic_star_gray.imageset/Contents.json | 0 .../ic_star_gray[24].svg | 0 .../ic_star_yellow.imageset/Contents.json | 0 .../ic_star_yellow[24].png | Bin .../ic_uncheck.imageset/Contents.json | 0 .../ic_uncheck.imageset/ic_uncheck[24].png | Bin .../ic_uncheck.imageset/ic_uncheck[24]@2x.png | Bin .../ic_uncheck.imageset/ic_uncheck[24]@3x.png | Bin .../version2/profile.imageset/Contents.json | 0 .../version2/profile.imageset/profile.svg | 0 .../restaurantImage.imageset/Contents.json | 0 .../restaurantImage.png | Bin .../review_photo_dummy.imageset/Contents.json | 0 .../Rectangle 161123839.png | Bin .../thumb-down.imageset/Contents.json | 0 .../thumb-down.imageset/thumb-down.svg | 0 .../version2/thumb-up.imageset/Contents.json | 0 .../version2/thumb-up.imageset/thumb-up.svg | 0 .../EATSSU_MVC/Resources/SplashEvent.png | Bin 26330 -> 0 bytes .../Firebase/FirebaseRemoteConfig.swift | 0 .../Firebase/NoticeMessage.swift | 0 .../Firebase/NoticeViewController.swift | 0 .../LocalDB/RealmService.swift | 0 .../{Network => Data}/LocalDB/Token.swift | 0 .../{Network => Data}/LocalDB/UserInfo.swift | 0 .../LocalDB/UserInfoManager.swift | 0 .../{ => Data}/Network/Config/Config.swift | 0 .../Network/DTO/Auth/AppleLoginRequest.swift | 0 .../Network/DTO/Auth/AuthRouter.swift | 0 .../Network/DTO/Auth/KakaoLoginRequest.swift | 0 .../Network/DTO/Auth/SignInRequest.swift | 0 .../Network/DTO/Auth/SignResponse.swift | 0 .../Network/DTO/Auth/SignUpRequest.swift | 0 .../DTO/Auth/UserNicknameRequest.swift | 0 .../Network/DTO/Auth/WriteReviewRouter.swift | 0 .../DTO/Home/ChangeMenuTableResponse.swift | 0 .../DTO/Home/FixedMenuTableResponse.swift | 0 .../DTO/Home/RestaurantInfoResponse.swift | 0 .../Network/DTO/My/InquiryRequest.swift | 0 .../Network/DTO/My/MyInfoResponse.swift | 0 .../Network/DTO/My/MyReviewResponse.swift | 0 .../DTO/Review/BeforeSelectedImageDTO.swift | 0 .../DTO/Review/FixedReviewRateResponse.swift | 0 .../Network/DTO/Review/MenuInfoResponse.swift | 0 .../DTO/Review/MenuReviewResponse.swift | 0 .../Network/DTO/Review/ReportRequest.swift | 0 .../DTO/Review/ReviewListResponse.swift | 0 .../DTO/Review/ReviewRateResponse.swift | 0 .../Network/DTO/Review/ReviewRouter.swift | 0 .../DTO/Review/TotalReviewResponse.swift | 0 .../DTO/Review/UploadImageResponse.swift | 0 .../DTO/Review/WriteReviewRequest.swift | 0 .../Network/Foundation/AuthInterceptor.swift | 0 .../Network/Foundation/BaseResponse.swift | 0 .../Network/Foundation/MoyaPluggin.swift | 0 .../Network/Foundation/NetworkMonitor.swift | 0 .../Network/Router/HomeRouter.swift | 0 .../{ => Data}/Network/Router/MyRouter.swift | 0 .../Network/Router/ReissueRouter.swift | 0 .../Network/Router/UserNicknameRouter.swift | 0 .../Enum/NIcknameTextFieldResultType.swift | 0 .../Auth/View/LoginView.swift | 0 .../Auth/View/SetNickNameView.swift | 0 .../ViewController/LoginViewController.swift | 0 .../SetNickNameViewController.swift | 0 .../Home/Enum/MenuTypeInfo.swift | 0 .../Home/Enum/Weekday.swift | 0 .../Home/Model/FixedMenuInfoModel.swift | 0 .../Home/Model/RestaurantInfoModel.swift | 0 .../Home/Model/ReviewMenuTypeInfo.swift | 0 .../Home/Model/TimeData.swift | 0 .../Home/Protocol/MenuType.swift | 0 .../Home/View/HomeCalendarView.swift | 0 .../Home/View/HomeRestaurantView.swift | 0 .../RestaurantInfoTimeTableView.swift | 0 .../RestaurantInfoView.swift | 0 .../TimeDataTableViewCell.swift | 0 .../RestaurantTableViewHeader.swift | 0 .../RestaurantTableViewMenuCell.swift | 0 .../RestaurantTableViewMenuTitleCell.swift | 0 .../HomeRestaurantViewController.swift | 0 .../HomeTimeTabmanController.swift | 0 .../ViewController/HomeViewController.swift | 0 .../RestaurantInfoViewController.swift | 0 .../MyPage/Enum}/MyPageLabels.swift | 0 .../MyPage/Model/MyPageLocalData.swift | 0 .../MyPage/Model/MyPageRightItemData.swift | 0 .../MyPage/View/CreatorsView.swift | 0 .../Cell/MyPageTableDefaultCell.swift | 0 .../NotificationSettingTableViewCell.swift | 0 .../MyPage/View/MyPageView/MyPageView.swift | 0 .../MyPage/View/MyReviewView.swift | 0 .../MyPage/View/ProvisionView.swift | 0 .../MyPage/View/UserWithdrawView.swift | 0 .../CreatorViewController.swift | 0 .../ViewController/MyPageViewController.swift | 0 .../MyReviewViewController.swift | 0 .../ProvisionViewController.swift | 0 .../UserWithdrawViewController.swift | 0 .../ChoiceMenuTableViewCell.swift | 0 .../Review/View/RateReview/RateView.swift | 0 .../Review/View/RerportView/ReportView.swift | 0 .../View/SeeReview/RateNumberView.swift | 0 .../View/SeeReview/ReviewEmptyViewCell.swift | 0 .../View/SeeReview/ReviewRateViewCell.swift | 0 .../View/SeeReview/ReviewTableCell.swift | 0 .../ChoiceMenuViewController.swift | 0 .../FormerReportViewController.swift | 0 .../ViewController/ReportViewController.swift | 0 .../ViewController/ReviewViewController.swift | 0 .../SetRateViewController.swift | 0 .../WriteReviewViewController.swift | 0 .../Utility/UIComponent/NavigationBar.swift | 65 ------------------ .../Sources/Utility/UIComponent/exNavi.swift | 8 --- EATSSU_MVC/Project.swift | 4 +- 266 files changed, 5 insertions(+), 75 deletions(-) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray100.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray200.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray300.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray400.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray500.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray600.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/GrayScale/gray700.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Main/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Main/primary.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Main/secondary.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Red/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Red/error.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Yellow/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Color.xcassets/Yellow/star.colorset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/100.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/1024.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/114.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/120.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/128.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/144.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/152.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/16.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/167.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/172.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/180.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/196.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/20.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/216.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/256.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/29.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/32.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/40.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/48.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/50.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/512.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/55.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/57.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/58.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/60.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/64.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/66.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/72.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/76.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/80.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/87.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/88.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/92.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/AppIcon.appiconset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/AddImageButton.imageset/Add.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/AddImageButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{Images.xcassets/version2 => Assets/Images.xcassets/version1}/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/EatSSULogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/appleLoginButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/btn check 1.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/btn check 2.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/check.imageset/btn check.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/checkedIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/coordinate.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/coordinate.imageset/Vector.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/lookingButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/myPageIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noMyReview.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noReview.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/noReview.imageset/noReview.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/pleaseLogin.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/profileIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInImage.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInImage.imageset/Group 107.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithApple.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithKakao.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/splashLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilled.imageset/Vector (1).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version1/userProfile.imageset/Group (1).svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{Images.xcassets/version1 => Assets/Images.xcassets/version2}/Contents.json (52%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/Creators.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/Creators.imageset/Creators.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/LookAroundButton.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogo.imageset/MainLogo.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/SplashLogo.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/ic_check[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_info.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_info.imageset/info.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_menu.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_gray.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/profile.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/profile.imageset/profile.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/restaurantImage.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-down.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-up.imageset/Contents.json (100%) rename EATSSU_MVC/EATSSU_MVC/Resources/{ => Assets}/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg (100%) delete mode 100644 EATSSU_MVC/EATSSU_MVC/Resources/SplashEvent.png rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility => Data}/Firebase/FirebaseRemoteConfig.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility => Data}/Firebase/NoticeMessage.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility => Data}/Firebase/NoticeViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/RealmService.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/Token.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/UserInfo.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Network => Data}/LocalDB/UserInfoManager.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Config/Config.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/AppleLoginRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/AuthRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/KakaoLoginRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/SignInRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/SignResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/SignUpRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/UserNicknameRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Auth/WriteReviewRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Home/ChangeMenuTableResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Home/FixedMenuTableResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Home/RestaurantInfoResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/My/InquiryRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/My/MyInfoResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/My/MyReviewResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/BeforeSelectedImageDTO.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/FixedReviewRateResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/MenuInfoResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/MenuReviewResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReportRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReviewListResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReviewRateResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/ReviewRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/TotalReviewResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/UploadImageResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/DTO/Review/WriteReviewRequest.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/AuthInterceptor.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/BaseResponse.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/MoyaPluggin.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Foundation/NetworkMonitor.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/HomeRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/MyRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/ReissueRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{ => Data}/Network/Router/UserNicknameRouter.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/Enum/NIcknameTextFieldResultType.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/View/LoginView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/View/SetNickNameView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/ViewController/LoginViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Auth/ViewController/SetNickNameViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Enum/MenuTypeInfo.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Enum/Weekday.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/FixedMenuInfoModel.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/RestaurantInfoModel.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/ReviewMenuTypeInfo.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Model/TimeData.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/Protocol/MenuType.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/HomeCalendarView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/HomeRestaurantView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantInfoView/RestaurantInfoView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/HomeRestaurantViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/HomeTimeTabmanController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/HomeViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Home/ViewController/RestaurantInfoViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Utility/Namespace => Presentation/MyPage/Enum}/MyPageLabels.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/Model/MyPageLocalData.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/Model/MyPageRightItemData.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/CreatorsView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/MyPageView/MyPageView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/MyReviewView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/ProvisionView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/View/UserWithdrawView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/CreatorViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/MyPageViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/MyReviewViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/ProvisionViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/MyPage/ViewController/UserWithdrawViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/RateReview/RateView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/RerportView/ReportView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/RateNumberView.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/ReviewEmptyViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/ReviewRateViewCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/View/SeeReview/ReviewTableCell.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/ChoiceMenuViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/FormerReportViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/ReportViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/ReviewViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/SetRateViewController.swift (100%) rename EATSSU_MVC/EATSSU_MVC/Sources/{Screen => Presentation}/Review/ViewController/WriteReviewViewController.swift (100%) delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift delete mode 100644 EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray100.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray100.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray100.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray100.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray200.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray200.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray200.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray200.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray300.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray300.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray300.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray300.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray400.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray400.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray400.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray400.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray500.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray500.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray500.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray500.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray600.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray600.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray600.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray600.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray700.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray700.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/GrayScale/gray700.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/GrayScale/gray700.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/primary.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/primary.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/primary.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/primary.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/secondary.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/secondary.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Main/secondary.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Main/secondary.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/error.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/error.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Red/error.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Red/error.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/star.colorset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/star.colorset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Color.xcassets/Yellow/star.colorset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Color.xcassets/Yellow/star.colorset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/100.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/100.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/100.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/1024.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/1024.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/1024.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/114.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/114.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/114.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/120.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/120.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/120.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/128.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/128.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/128.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/128.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/144.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/144.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/144.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/152.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/152.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/152.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/16.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/16.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/16.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/16.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/167.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/167.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/167.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/172.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/172.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/172.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/172.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/180.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/180.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/180.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/196.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/196.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/196.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/196.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/20.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/20.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/20.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/216.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/216.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/216.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/216.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/256.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/256.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/256.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/256.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/29.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/29.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/29.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/32.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/32.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/32.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/32.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/40.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/40.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/40.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/48.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/48.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/48.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/48.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/50.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/50.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/50.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/512.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/512.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/512.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/512.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/55.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/55.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/55.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/55.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/57.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/57.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/57.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/58.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/58.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/58.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/60.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/60.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/60.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/64.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/64.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/64.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/64.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/66.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/66.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/66.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/66.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/72.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/72.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/72.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/76.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/76.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/76.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/80.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/80.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/80.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/87.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/87.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/87.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/88.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/88.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/88.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/88.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/92.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/92.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/92.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/92.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/AppIcon.appiconset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Add.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Add.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Add.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Add.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/AddImageButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/AddImageButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/EatSSULogo.imageset/appLogo.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/appleLoginButton.imageset/appleLoginButton.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 1.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 1.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 1.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 1.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 2.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 2.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check 2.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check 2.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/check.imageset/btn check.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/check.imageset/btn check.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/checkedIcon.imageset/checkedIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Vector.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Vector.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/coordinate.imageset/Vector.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/coordinate.imageset/Vector.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/greySideButton.imageset/Vector (4).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/kakaoLoginButton.imageset/kakaoLoginButton.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/lookingButton.imageset/lookingButton.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/myPageIcon.imageset/menuIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noMyReview.imageset/noMyReview.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/noReview.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/noReview.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/noReview.imageset/noReview.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/noReview.imageset/noReview.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/pleaseLogin.imageset/Group 506.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/profileIcon.imageset/profileIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Group 107.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Group 107.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInImage.imageset/Group 107.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInImage.imageset/Group 107.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithApple.imageset/Sign_in_with_Apple_-_Logo_Only_-_White_Square.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/signInWithKakao.imageset/kakaoLogo.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/splashLogo.imageset/noticeLogo.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmpty.imageset/Vector (2).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starEmptyBig.imageset/Vector (4).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilled.imageset/Vector (1).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilled.imageset/Vector (1).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/starFilledBig.imageset/Vector (3).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 1.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline 2.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/unChecked.imageset/mdi_circle-outline.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/uncheckedIcon.imageset/uncheckedIcon.pdf diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 1.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1) 2.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1).svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1).svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/userProfile.imageset/Group (1).svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version1/userProfile.imageset/Group (1).svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/AppleLoginButton.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AppleLoginButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/AuthLogo.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/AuthSubTitle.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/AuthSubTitle.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Contents.json similarity index 52% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Contents.json index 73c0059..6e96565 100644 --- a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version1/Contents.json +++ b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Contents.json @@ -2,5 +2,8 @@ "info" : { "author" : "xcode", "version" : 1 + }, + "properties" : { + "provides-namespace" : true } } diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Creators.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Creators.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/Creators.imageset/Creators.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/Creators.imageset/Creators.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/KakaoLoginButton.imageset/KakaoLoginButton.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/LookAroundButton.imageset/LookAroundButton.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/MainLogo.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/MainLogo.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogo.imageset/MainLogo.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogo.imageset/MainLogo.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/MainLogoSmall.imageset/MainLogoSmall.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/SplashLogo.imageset/SplashLogo.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/WithdrawIcon.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/WithdrawIcon.imageset/Unsubscribe.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@2x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_check.imageset/ic_check[24]@3x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/info.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/info.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_info.imageset/info.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_info.imageset/info.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_menu.imageset/ic_menu[12].svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@2x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_selected.imageset/ic_selected[24]@3x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_gray.imageset/ic_star_gray[24].svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_star_yellow.imageset/ic_star_yellow[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24].png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@2x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/ic_uncheck.imageset/ic_uncheck[24]@3x.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/profile.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/profile.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/profile.imageset/profile.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/profile.imageset/profile.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/restaurantImage.imageset/restaurantImage.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/review_photo_dummy.imageset/Rectangle 161123839.png diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-down.imageset/thumb-down.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/Contents.json b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/Contents.json similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/Contents.json rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/Contents.json diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg b/EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Resources/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg rename to EATSSU_MVC/EATSSU_MVC/Resources/Assets/Images.xcassets/version2/thumb-up.imageset/thumb-up.svg diff --git a/EATSSU_MVC/EATSSU_MVC/Resources/SplashEvent.png b/EATSSU_MVC/EATSSU_MVC/Resources/SplashEvent.png deleted file mode 100644 index 4cd8a94976d51cfa101b856fc645dbbd63be4dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26330 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 I@#eGt0av@GPXGV_ diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/FirebaseRemoteConfig.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/FirebaseRemoteConfig.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/FirebaseRemoteConfig.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/FirebaseRemoteConfig.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeMessage.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeMessage.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeMessage.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeMessage.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Firebase/NoticeViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Firebase/NoticeViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/RealmService.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/RealmService.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/RealmService.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/Token.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/Token.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/Token.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/Token.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfo.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfo.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfoManager.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/LocalDB/UserInfoManager.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/LocalDB/UserInfoManager.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Config/Config.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Config/Config.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Config/Config.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Config/Config.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AppleLoginRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AppleLoginRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AppleLoginRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AppleLoginRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AuthRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AuthRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/AuthRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/AuthRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/KakaoLoginRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/KakaoLoginRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/KakaoLoginRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/KakaoLoginRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignInRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignInRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignInRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignInRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignUpRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignUpRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/SignUpRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/SignUpRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/UserNicknameRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/UserNicknameRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/UserNicknameRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/UserNicknameRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/WriteReviewRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/WriteReviewRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Auth/WriteReviewRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Auth/WriteReviewRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/ChangeMenuTableResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/ChangeMenuTableResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/ChangeMenuTableResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/ChangeMenuTableResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/FixedMenuTableResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/FixedMenuTableResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/FixedMenuTableResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/FixedMenuTableResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/RestaurantInfoResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/RestaurantInfoResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Home/RestaurantInfoResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Home/RestaurantInfoResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/InquiryRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/InquiryRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/InquiryRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/InquiryRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyInfoResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyInfoResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyInfoResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyInfoResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyReviewResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyReviewResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/My/MyReviewResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/My/MyReviewResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/BeforeSelectedImageDTO.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/BeforeSelectedImageDTO.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/BeforeSelectedImageDTO.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/BeforeSelectedImageDTO.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/FixedReviewRateResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/FixedReviewRateResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/FixedReviewRateResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/FixedReviewRateResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuInfoResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuInfoResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuInfoResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuInfoResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuReviewResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuReviewResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/MenuReviewResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/MenuReviewResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReportRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReportRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReportRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReportRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewListResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewListResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewListResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewListResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRateResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRateResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRateResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRateResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/ReviewRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/ReviewRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/TotalReviewResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/TotalReviewResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/TotalReviewResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/TotalReviewResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/UploadImageResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/UploadImageResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/UploadImageResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/UploadImageResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/WriteReviewRequest.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/WriteReviewRequest.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/DTO/Review/WriteReviewRequest.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/DTO/Review/WriteReviewRequest.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/AuthInterceptor.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/AuthInterceptor.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/AuthInterceptor.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/AuthInterceptor.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/BaseResponse.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/BaseResponse.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/BaseResponse.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/BaseResponse.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/MoyaPluggin.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/MoyaPluggin.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/MoyaPluggin.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/MoyaPluggin.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/NetworkMonitor.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/NetworkMonitor.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Foundation/NetworkMonitor.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Foundation/NetworkMonitor.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/HomeRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/HomeRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/HomeRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/HomeRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/MyRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/MyRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/MyRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/MyRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/ReissueRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/ReissueRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/ReissueRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/ReissueRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/UserNicknameRouter.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/UserNicknameRouter.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Network/Router/UserNicknameRouter.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Data/Network/Router/UserNicknameRouter.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/Enum/NIcknameTextFieldResultType.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/Enum/NIcknameTextFieldResultType.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/Enum/NIcknameTextFieldResultType.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/Enum/NIcknameTextFieldResultType.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/LoginView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/LoginView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/LoginView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/LoginView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/SetNickNameView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/SetNickNameView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/View/SetNickNameView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/View/SetNickNameView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/LoginViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/LoginViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/LoginViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/SetNickNameViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Auth/ViewController/SetNickNameViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Auth/ViewController/SetNickNameViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/MenuTypeInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/MenuTypeInfo.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/MenuTypeInfo.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/MenuTypeInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/Weekday.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/Weekday.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Enum/Weekday.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Enum/Weekday.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/FixedMenuInfoModel.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/FixedMenuInfoModel.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/FixedMenuInfoModel.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/FixedMenuInfoModel.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/RestaurantInfoModel.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/RestaurantInfoModel.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/RestaurantInfoModel.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/RestaurantInfoModel.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/ReviewMenuTypeInfo.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/ReviewMenuTypeInfo.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/ReviewMenuTypeInfo.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/ReviewMenuTypeInfo.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/TimeData.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/TimeData.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Model/TimeData.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Model/TimeData.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Protocol/MenuType.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Protocol/MenuType.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/Protocol/MenuType.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/Protocol/MenuType.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeCalendarView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeCalendarView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeCalendarView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeCalendarView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeRestaurantView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeRestaurantView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/HomeRestaurantView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/HomeRestaurantView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoTimeTableView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/RestaurantInfoView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/RestaurantInfoView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantInfoView/TimeDataTableViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewHeader.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/View/RestaurantTableView/RestaurantTableViewMenuTitleCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeRestaurantViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeRestaurantViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeRestaurantViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeRestaurantViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeTimeTabmanController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeTimeTabmanController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeTimeTabmanController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeTimeTabmanController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/HomeViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/HomeViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/RestaurantInfoViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/RestaurantInfoViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Home/ViewController/RestaurantInfoViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Home/ViewController/RestaurantInfoViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Enum/MyPageLabels.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Utility/Namespace/MyPageLabels.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Enum/MyPageLabels.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageLocalData.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Model/MyPageLocalData.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageLocalData.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Model/MyPageLocalData.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageRightItemData.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Model/MyPageRightItemData.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/Model/MyPageRightItemData.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/Model/MyPageRightItemData.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/CreatorsView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/CreatorsView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/CreatorsView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyPageView/MyPageView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyReviewView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyReviewView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/MyReviewView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyReviewView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/ProvisionView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/ProvisionView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/ProvisionView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/ProvisionView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/View/UserWithdrawView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/CreatorViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/CreatorViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/CreatorViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyPageViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyReviewViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/MyReviewViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyReviewViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/ProvisionViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/ProvisionViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/ProvisionViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/UserWithdrawViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/MyPage/ViewController/UserWithdrawViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/ChoiceMenuView/ChoiceMenuTableViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RateReview/RateView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RateReview/RateView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RateReview/RateView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RateReview/RateView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RerportView/ReportView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RerportView/ReportView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/RerportView/ReportView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/RerportView/ReportView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/RateNumberView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/RateNumberView.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/RateNumberView.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/RateNumberView.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewEmptyViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewEmptyViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewEmptyViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewEmptyViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewRateViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewRateViewCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewRateViewCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewRateViewCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewTableCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewTableCell.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/View/SeeReview/ReviewTableCell.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/View/SeeReview/ReviewTableCell.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ChoiceMenuViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ChoiceMenuViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ChoiceMenuViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ChoiceMenuViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/FormerReportViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/FormerReportViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/FormerReportViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/FormerReportViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReportViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReportViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReportViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReportViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReviewViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReviewViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/ReviewViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/ReviewViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/SetRateViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/SetRateViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/SetRateViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/SetRateViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/WriteReviewViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/WriteReviewViewController.swift similarity index 100% rename from EATSSU_MVC/EATSSU_MVC/Sources/Screen/Review/ViewController/WriteReviewViewController.swift rename to EATSSU_MVC/EATSSU_MVC/Sources/Presentation/Review/ViewController/WriteReviewViewController.swift diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift deleted file mode 100644 index 77b2523..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/NavigationBar.swift +++ /dev/null @@ -1,65 +0,0 @@ -// -// NavigationBar.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/04/08. -// - -import UIKit - -import SnapKit -import Then - -class NavigationBar: BaseViewController { - -// // MARK: - Properties -// -// private lazy var titleLabel = UILabel() -// private lazy var backButton = UIBarButtonItem() -// private lazy var rightButton = UIBarButtonItem() -// -// // MARK: - UI Components -// -// // MARK: - Life Cycles -// -// override func viewDidLoad() { -// super.viewDidLoad() -// view.backgroundColor = .systemBackground -// configureUI() -// setLayout() -// setButtonEvent() -// } -// -// //MARK: - Functions -// -// override func configureUI() { -// //override Point -// } -// -// override func setLayout() { -// //override Point -// } -//} -// -//// MARK: - Custom Methods -//extension NavigationBar { -// -// /// title 지정 함수 -// func setTitle(_ title: String) { -// titleLabel.text = title -// } - -} - - -//func customNavigationBar() { -// navigationController?.navigationBar.tintColor = .primary -// navigationController?.navigationBar.barTintColor = .white -// -// let backButton: UIBarButtonItem = UIBarButtonItem() -// backButton.title = "" -// navigationController?.navigationBar.topItem?.backBarButtonItem = backButton -// -// navigationItem.title = "회원가입" -// navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.primary, NSAttributedString.Key.font: UIFont.bold(size: 22)] -// } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift deleted file mode 100644 index 6e2f32e..0000000 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/UIComponent/exNavi.swift +++ /dev/null @@ -1,8 +0,0 @@ -// -// exNavi.swift -// EatSSU-iOS -// -// Created by 최지우 on 2023/04/08. -// - -import Foundation diff --git a/EATSSU_MVC/Project.swift b/EATSSU_MVC/Project.swift index 40b5830..51463fc 100644 --- a/EATSSU_MVC/Project.swift +++ b/EATSSU_MVC/Project.swift @@ -48,8 +48,8 @@ let eatSSUSettings: Settings = .settings( "DEVELOPMENT_LANGUAGE": "ko" ], configurations: [ - .debug(name: "Debug", xcconfig: "EATSSU_MVC/Resources/Debug.xcconfig"), - .release(name: "Release", xcconfig: "EATSSU_MVC/Resources/Release.xcconfig"), + .debug(name: "Debug", xcconfig: "EATSSU_MVC/Resources/Secrets/Debug.xcconfig"), + .release(name: "Release", xcconfig: "EATSSU_MVC/Resources/Secrets/Release.xcconfig"), ] ) From 0b755bbda2e747f10588dd53497d877ec62bfacf Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Sun, 22 Sep 2024 17:25:08 +0900 Subject: [PATCH 25/29] =?UTF-8?q?[#91]=20ImageLiteral=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=20=EC=A4=91=EC=9D=B8=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=ED=8C=8C=EC=9D=BC=20=EA=B2=BD=EB=A1=9C=20=EC=9E=AC?= =?UTF-8?q?=EC=B0=B8=EC=A1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Utility/Literal/ImageLiteral.swift | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/ImageLiteral.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/ImageLiteral.swift index a9253df..7337497 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/ImageLiteral.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/ImageLiteral.swift @@ -7,40 +7,43 @@ import UIKit +// TODO: Tuist가 이미지 리터럴 코드를 생성해주기 때문에 해당 이미지 리터럴 코드를 제거 +// FIXME: 아직 코드에서 사용하고 있는 ImageLiteral 코드들을 전부 tuist 생성 코드로 변경 + enum ImageLiteral { // MARK: - logo - static var splashLogo: UIImage { .load(name: "splashLogo")} - static var EatSSULogo: UIImage { .load(name: "EatSSULogo")} + static var splashLogo: UIImage { .load(name: "version1/splashLogo")} + static var EatSSULogo: UIImage { .load(name: "version1/EatSSULogo")} // MARK: - sign in - static var appleLoginButton: UIImage { .load(name: "appleLoginButton")} - static var kakaoLoginButton: UIImage { .load(name: "kakaoLoginButton")} - static var signInImage: UIImage { .load(name: "signInImage")} - static var lookingButton: UIImage { .load(name: "lookingButton")} + static var appleLoginButton: UIImage { .load(name: "version1/appleLoginButton")} + static var kakaoLoginButton: UIImage { .load(name: "version1/kakaoLoginButton")} + static var signInImage: UIImage { .load(name: "version1/signInImage")} + static var lookingButton: UIImage { .load(name: "version1/lookingButton")} // MARK: - icon - static var menuIcon: UIImage { .load(name: "menuIcon")} - static var checkedIcon: UIImage {.load(name: "checkedIcon")} - static var uncheckedIcon: UIImage {.load(name: "uncheckedIcon")} - static var coordinate: UIImage {.load(name: "coordinate")} - static var myPageIcon: UIImage {.load(name: "myPageIcon")} - static var profileIcon: UIImage {.load(name: "profileIcon")} - static var signInWithKakao: UIImage {.load(name: "signInWithKakao")} - static var signInWithApple: UIImage {.load(name: "signInWithApple")} + static var menuIcon: UIImage { .load(name: "version1/menuIcon")} + static var checkedIcon: UIImage {.load(name: "version1/checkedIcon")} + static var uncheckedIcon: UIImage {.load(name: "version1/uncheckedIcon")} + static var coordinate: UIImage {.load(name: "version1/coordinate")} + static var myPageIcon: UIImage {.load(name: "version1/myPageIcon")} + static var profileIcon: UIImage {.load(name: "version1/profileIcon")} + static var signInWithKakao: UIImage {.load(name: "version1/signInWithKakao")} + static var signInWithApple: UIImage {.load(name: "version1/signInWithApple")} // MARK: - My - static var greySideButton: UIImage { .load(name: "greySideButton")} + static var greySideButton: UIImage { .load(name: "version1/greySideButton")} //MARK: - Review - static var noReview: UIImage { .load(name: "noReview")} - static var noMyReview: UIImage { .load(name: "noMyReview")} - static var pleaseLogin: UIImage { .load(name: "pleaseLogin")} + static var noReview: UIImage { .load(name: "version1/noReview")} + static var noMyReview: UIImage { .load(name: "version1/noMyReview")} + static var pleaseLogin: UIImage { .load(name: "version1/pleaseLogin")} } extension UIImage { From 71e57d2085f6203afd74cd2b04e848d74a7d2b30 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Sun, 22 Sep 2024 18:24:30 +0900 Subject: [PATCH 26/29] =?UTF-8?q?[#78]=20=ED=91=B8=EC=8B=9C=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=ED=86=A0=EA=B8=80=20=EC=8A=A4=EC=9C=84=EC=B9=98=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Notification/NotificationManager.swift | 12 +++- .../NotificationSettingTableViewCell.swift | 1 + .../ViewController/MyPageViewController.swift | 60 +++++++++++++------ .../Sources/Utility/Literal/TextLiteral.swift | 5 +- 4 files changed, 57 insertions(+), 21 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift index d8a3d62..1f8196e 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift @@ -16,7 +16,7 @@ class NotificationManager { // MARK: - Methods - /// 평일 11시에 앱의 유입을 유도하는 알림을 발송하는 메소드 + /// 평일 11시에 앱의 유입을 유도하는 푸시 알림을 발송하는 메소드 /// /// - Title : 🤔 오늘 밥 뭐 먹지… /// - Body : 오늘의 학식을 확인해보세요! @@ -31,7 +31,6 @@ class NotificationManager { content.sound = .default // 반복할 요일 및 시간 설정 (평일 오전 11시) - let calendar = Calendar.current let weekdays = [2, 3, 4, 5, 6] // 월, 화, 수, 목, 금 (Calendar에서 1이 일요일) for weekday in weekdays { @@ -55,6 +54,15 @@ class NotificationManager { } } } + + /// 평일 11시에 앱의 유입을 유도하는 푸시 알림을 취소하는 메소드 + func cancelWeekday11AMNotification() { + let weekday = [2, 3, 4, 5, 6] + let identifier = "weekdayNotification-\(weekday)" + + let center = UNUserNotificationCenter.current() + center.removePendingNotificationRequests(withIdentifiers: [identifier]) + } /// 앱 실행 시 알림 발송 권한을 요청하는 팝업 호출 메소드 func requestNotificationPermission() { diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift index 963d5ae..6a29f66 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift @@ -43,6 +43,7 @@ class NotificationSettingTableViewCell: UITableViewCell { internal let toggleSwitch: UISwitch = { let toggleSwitch = UISwitch() toggleSwitch.onTintColor = EATSSUAsset.Color.Main.primary.color + toggleSwitch.isOn = UserDefaults.standard.bool(forKey: TextLiteral.MyPage.pushNotificationUserSettingKey) return toggleSwitch }() diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift index bfc63fe..84e0969 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift @@ -33,6 +33,8 @@ final class MyPageViewController: BaseViewController { private let myProvider = MoyaProvider(plugins: [MoyaLoggingPlugin()]) private var nickName = "" + private var switchState = false + private let userDefaultsKey = TextLiteral.MyPage.pushNotificationUserSettingKey private let myPageTableLabelList = MyPageLocalData.myPageTableLabelList // MARK: - UI Components @@ -44,14 +46,15 @@ final class MyPageViewController: BaseViewController { override func viewDidLoad() { super.viewDidLoad() - setDelegate() - Analytics.logEvent("MypageViewControllerLoad", parameters: nil) + Analytics.logEvent("MypageViewControllerLoad", parameters: nil) + setTableViewDelegate() + loadSwitchStateFromUserDefaults() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - nickName = UserInfoManager.shared.getCurrentUserInfo()?.nickname ?? "fail" + nickName = UserInfoManager.shared.getCurrentUserInfo()?.nickname ?? "실패" mypageView.setUserInfo(nickname: nickName) } @@ -79,28 +82,20 @@ final class MyPageViewController: BaseViewController { action: #selector(didTappedChangeNicknameButton), for: .touchUpInside) } - - @objc - func toggleSwitchTapped() { - - } @objc - func didTappedChangeNicknameButton() { - + private func didTappedChangeNicknameButton() { let setNickNameVC = SetNickNameViewController() self.navigationController?.pushViewController(setNickNameVC, animated: true) } - func setDelegate() { + /// TableViewDelegate & DataSource를 해당 클래스로 할당합니다. + private func setTableViewDelegate() { mypageView.myPageTableView.dataSource = self mypageView.myPageTableView.delegate = self } - /* - 해야 할 일 - - 알림 팝업을 띄우는 코드를 모듈화 - */ + /// 로그아웃 Alert를 스크린에 표시하는 메소드 private func logoutShowAlert() { let alert = UIAlertController(title: "로그아웃", message: "정말 로그아웃 하시겠습니까?", @@ -128,6 +123,18 @@ final class MyPageViewController: BaseViewController { present(alert, animated: true, completion: nil) } + + /// UserDefaults에 스위치 상태 저장 + private func saveSwitchStateToUserDefaults() { + print("사용자 푸시 알림 값을 앱 저장소에 보관합니다.") + UserDefaults.standard.set(switchState, forKey: userDefaultsKey) + } + + /// UserDefaults에서 스위치 상태 불러오기 + private func loadSwitchStateFromUserDefaults() { + print("사용자 푸시 알림 값을 앱 저장소에서 불러옵니다.") + switchState = UserDefaults.standard.bool(forKey: userDefaultsKey) + } } // MARK: - TableView DataSource @@ -145,7 +152,7 @@ extension MyPageViewController: UITableViewDataSource { withIdentifier: NotificationSettingTableViewCell.identifier, for: indexPath) as! NotificationSettingTableViewCell - cell.toggleSwitch.addTarget(self, action: #selector(toggleSwitchTapped), for: .valueChanged) + cell.toggleSwitch.isOn = switchState return cell } else { @@ -173,6 +180,7 @@ extension MyPageViewController: UITableViewDelegate { tableView.deselectRow(at: indexPath, animated: true) switch indexPath.row { + // "내가 쓴 리뷰" 스크린으로 이동 case MyPageLabels.MyReview.rawValue: let myReviewViewController = MyReviewViewController() @@ -181,8 +189,24 @@ extension MyPageViewController: UITableViewDelegate { // "푸시 알림 설정" 스위치 토글 case MyPageLabels.NotificationSetting.rawValue: if let cell = tableView.cellForRow(at: indexPath) as? NotificationSettingTableViewCell { - // TODO: 스위치 값을 앱 저장소에 보관하고, 값에 따라 알림을 보내는 여부를 제어하는 코드를 설계할 것 - cell.toggleSwitch.isOn.toggle() + + // 현재 스위치 상태를 반전 + let newSwitchState = !switchState + cell.toggleSwitch.setOn(newSwitchState, animated: true) + + // 스위치 상태를 업데이트 + switchState = newSwitchState + + if switchState { + print("푸시 알림을 발송합니다.") + NotificationManager.shared.scheduleWeekday11AMNotification() + } else { + print("푸시 알림을 발송하지 않습니다.") + NotificationManager.shared.cancelWeekday11AMNotification() + } + + // UserDefaults에 상태 저장 + saveSwitchStateToUserDefaults() } // "문의하기" 스크린으로 이동 diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift index b26dfe9..1265ab5 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift @@ -70,7 +70,10 @@ enum TextLiteral { /// "마이페이지" 텍스트 리터럴 enum MyPage { - + + /// "푸시 알림 사용자 설정 접근 키" + static let pushNotificationUserSettingKey: String = "pushNotificationUserSettingKey" + /// "푸시 알림 설정" static let pushNotificationSetting: String = "푸시 알림 설정" From a1cab32171d6dab946fa99de288cf5c199bc90c3 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Sun, 22 Sep 2024 18:34:48 +0900 Subject: [PATCH 27/29] =?UTF-8?q?[#78]=20=ED=83=88=ED=87=B4=ED=95=98?= =?UTF-8?q?=EA=B8=B0=20=EB=B2=84=ED=8A=BC=20=EB=B9=84=EC=A6=88=EB=8B=88?= =?UTF-8?q?=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPage/View/MyPageView/MyPageView.swift | 35 +++++-------- .../MyPage/View/UserWithdrawView.swift | 17 +++---- .../ViewController/MyPageViewController.swift | 14 ++++-- .../UserWithdrawViewController.swift | 49 +++++++++++-------- 4 files changed, 57 insertions(+), 58 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift index f7c36d6..e9fe58d 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift @@ -78,26 +78,16 @@ final class MyPageView: BaseUIView { label.textColor = EATSSUAsset.Color.GrayScale.gray400.color } - // "탈퇴하기" - private let withdrawLabel = UILabel().then { label in - label.text = TextLiteral.MyPage.withdraw - label.font = EATSSUFontFamily.Pretendard.regular.font(size: 12) - label.textColor = EATSSUAsset.Color.GrayScale.gray400.color - } - - // "탈퇴하기" 옆 아이콘 - private let withdrawIconImageView = UIImageView().then { imageView in - imageView.image = EATSSUAsset.Images.Version2.withdrawIcon.image - imageView.tintColor = EATSSUAsset.Color.GrayScale.gray400.color - } - - // "탈퇴하기" 레이블과 탈퇴하기 아이콘 - private let withdrawStackView: UIStackView = { - let stackView = UIStackView() - stackView.axis = .horizontal - return stackView + /// "탈퇴하기" 레이블과 탈퇴하기 아이콘 + internal let userWithdrawButton: UIButton = { + let button = UIButton() + button.setTitle(TextLiteral.MyPage.withdraw, for: .normal) + button.setImage(EATSSUAsset.Images.Version2.withdrawIcon.image, for: .normal) + button.setTitleColor(EATSSUAsset.Color.GrayScale.gray400.color, for: .normal) + button.titleLabel?.font = EATSSUFontFamily.Pretendard.regular.font(size: 12) + return button }() - + // MARK: - Intializer override init(frame: CGRect) { @@ -115,9 +105,7 @@ final class MyPageView: BaseUIView { myPageTableView, appVersionStringLabel, appVersionLabel, - withdrawLabel, - withdrawIconImageView, - withdrawStackView + userWithdrawButton ) } @@ -157,8 +145,7 @@ final class MyPageView: BaseUIView { } // TODO: withdrawStackView를 프로퍼티로 선언할 때, lazy를 사용하면 레이아웃이 한 타임 늦게 잡히는 문제로 인해서 여기에서 스택 안에 들어갈 뷰를 추가함. 개선 방법이 없는지 확인. - withdrawStackView.addArrangedSubviews([withdrawLabel, withdrawIconImageView]) - withdrawStackView.snp.makeConstraints { make in + userWithdrawButton.snp.makeConstraints { make in make.top.equalTo(appVersionLabel.snp.bottom).offset(16) make.trailing.equalToSuperview().inset(24) } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift index ca46f11..9bc5b15 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/UserWithdrawView.swift @@ -41,12 +41,10 @@ final class UserWithdrawView: BaseUIView { init(nickName: String) { super.init(frame: CGRect()) self.userNickname = nickName - self.inputNickNameTextField.placeholder = nickName - - - self.setTextFieldDelegate() - self.setProperties() - self.configureUI() + self.inputNickNameTextField.placeholder = nickName + self.setTextFieldDelegate() + self.setProperties() + self.configureUI() } // MARK: - Functions @@ -136,13 +134,13 @@ final class UserWithdrawView: BaseUIView { private func setValidationLabel(state: ValidationLabelState) { switch state { case .corrected: - nickNameStateGuideLabel.text = TextLiteral.MyPage.validInputMessage + nickNameStateGuideLabel.text = TextLiteral.MyPage.validInputMessage nickNameStateGuideLabel.textColor = .systemGreen completeSignOutButton.isEnabled = true case .unCorrected: nickNameStateGuideLabel.do { - $0.isHidden = false - $0.text = TextLiteral.MyPage.invalidNicknameMessage + $0.isHidden = false + $0.text = TextLiteral.MyPage.invalidNicknameMessage $0.textColor = .primary } completeSignOutButton.isEnabled = false @@ -191,7 +189,6 @@ private extension UserWithdrawView { } func checkIsNickNameCorrect(_ textField: UITextField) { - if let userNickname = textField.text { if userNickname == self.userNickname { setValidationLabel(state: .corrected) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift index 84e0969..645b2be 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift @@ -77,10 +77,10 @@ final class MyPageViewController: BaseViewController { override func setButtonEvent() { mypageView.userNicknameButton - .addTarget( - self, - action: #selector(didTappedChangeNicknameButton), - for: .touchUpInside) + .addTarget(self, action: #selector(didTappedChangeNicknameButton),for: .touchUpInside) + + mypageView.userWithdrawButton + .addTarget(self, action: #selector(userWithdrawButtonTapped), for: .touchUpInside) } @objc @@ -88,6 +88,12 @@ final class MyPageViewController: BaseViewController { let setNickNameVC = SetNickNameViewController() self.navigationController?.pushViewController(setNickNameVC, animated: true) } + + @objc + private func userWithdrawButtonTapped() { + let userWithdrawViewController = UserWithdrawViewController(nickName: nickName) + self.navigationController?.pushViewController(userWithdrawViewController, animated: true) + } /// TableViewDelegate & DataSource를 해당 클래스로 할당합니다. private func setTableViewDelegate() { diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift index fa56137..11070ab 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/UserWithdrawViewController.swift @@ -23,7 +23,7 @@ final class UserWithdrawViewController: BaseViewController { // MARK: - UI Components - private lazy var deleteAccountView = UserWithdrawView(nickName: nickName) + private lazy var userWithdrawView = UserWithdrawView(nickName: nickName) // MARK: - Life Cycles @@ -40,15 +40,27 @@ final class UserWithdrawViewController: BaseViewController { override func viewWillDisappear(_ animated: Bool) { self.removeKeyboardNotifications() } + + // MARK: - Initializer + + init(nickName: String) { + self.nickName = nickName + + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } // MARK: - Functions override func configureUI() { - view.addSubviews(deleteAccountView) + view.addSubviews(userWithdrawView) } override func setLayout() { - deleteAccountView.snp.makeConstraints { + userWithdrawView.snp.makeConstraints { $0.edges.equalToSuperview() } } @@ -59,21 +71,17 @@ final class UserWithdrawViewController: BaseViewController { } override func setButtonEvent() { - deleteAccountView.completeSignOutButton.addTarget(self, action: #selector(tappedCompleteNickNameButton), for: .touchUpInside) + userWithdrawView.completeSignOutButton.addTarget(self, action: #selector(completeNickNameButtonTapped), for: .touchUpInside) } @objc - func tappedCompleteNickNameButton() { - deleteUser() + func completeNickNameButtonTapped() { + deleteUser() } + + // MARK: - 디바이스 키보드 감지 - func getUsernickName(nickName: String) { - self.nickName = nickName - } - - // MARK: - keyboard 감지 - - func addKeyboardNotifications() { + private func addKeyboardNotifications() { NotificationCenter.default.addObserver(self, selector: #selector(self.keyboardWillShow(_:)), name: UIResponder.keyboardWillShowNotification, @@ -83,7 +91,7 @@ final class UserWithdrawViewController: BaseViewController { object: nil) } - func removeKeyboardNotifications() { + private func removeKeyboardNotifications() { NotificationCenter.default.removeObserver(self, name: UIResponder.keyboardWillShowNotification, object: nil) @@ -93,21 +101,22 @@ final class UserWithdrawViewController: BaseViewController { } @objc - func keyboardWillShow(_ notification: Notification) { + private func keyboardWillShow(_ notification: Notification) { if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { let updateKeyboardHeight = keyboardSize.height let difference = updateKeyboardHeight - currentKeyboardHeight - deleteAccountView.completeSignOutButton.frame.origin.y -= difference + userWithdrawView.completeSignOutButton.frame.origin.y -= difference currentKeyboardHeight = updateKeyboardHeight } } - @objc func keyboardWillHide(_ notification: Notification) { - if let keyboardSize = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { - - deleteAccountView.completeSignOutButton.frame.origin.y += currentKeyboardHeight + @objc + private func keyboardWillHide(_ notification: Notification) { + // TODO: keyboardSize 변수는 사용하지 않아서 _ 로 대체했지만, 해당 로직이 왜 필요한 지 연구 + if let _ = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue { + userWithdrawView.completeSignOutButton.frame.origin.y += currentKeyboardHeight currentKeyboardHeight = 0.0 } } From 90c9f99d2dd8a5d3a618391723b6737f76778f1c Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Sun, 22 Sep 2024 19:10:29 +0900 Subject: [PATCH 28/29] =?UTF-8?q?[#94]=20=ED=91=B8=EC=8B=9C=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=20=ED=86=A0=EA=B8=80=20=EC=8A=A4=EC=9C=84=EC=B9=98=20?= =?UTF-8?q?=ED=86=A0=EC=8A=A4=ED=8A=B8=20=EB=A9=94=EC=8B=9C=EC=A7=80=20?= =?UTF-8?q?=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPage/ViewController/MyPageViewController.swift | 2 ++ .../EATSSU_MVC/Sources/Utility/Extension/UIView+.swift | 7 ++++++- .../EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift index 645b2be..05518f2 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift @@ -206,6 +206,8 @@ extension MyPageViewController: UITableViewDelegate { if switchState { print("푸시 알림을 발송합니다.") NotificationManager.shared.scheduleWeekday11AMNotification() + // TODO: PM으로부터 전달받은 메시지를 입력합니다. + view.showToast(message: TextLiteral.MyPage.pushNotificationToastMessage) } else { print("푸시 알림을 발송하지 않습니다.") NotificationManager.shared.cancelWeekday11AMNotification() diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/UIView+.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/UIView+.swift index bcdc426..918ec3b 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/UIView+.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Extension/UIView+.swift @@ -23,7 +23,12 @@ extension UIView { } extension UIView { - func showToast(message: String) { + + /// 파라미터로 입력받은 문자열을 토스트 메시지를 전달합니다. + /// + /// - Parameters: + /// - message: 토스트 메시지로 전달할 문자열 + public func showToast(message: String) { let toastLabel = UILabel() toastLabel.backgroundColor = UIColor.black.withAlphaComponent(0.6) toastLabel.textColor = UIColor.white diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift index 1265ab5..436c3be 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Literal/TextLiteral.swift @@ -71,6 +71,10 @@ enum TextLiteral { /// "마이페이지" 텍스트 리터럴 enum MyPage { + // TODO: PM으로부터 받은 메시지로 교체합니다. + /// "평일 오전 11시에 푸시 알림을 수신합니다. + static let pushNotificationToastMessage: String = "평일 오전 11시에 푸시 알림을 수신합니다." + /// "푸시 알림 사용자 설정 접근 키" static let pushNotificationUserSettingKey: String = "pushNotificationUserSettingKey" From 4dd417cdd0a09a67675b5ee57585e47ec3f5cda0 Mon Sep 17 00:00:00 2001 From: Jiwoong CHOI Date: Mon, 23 Sep 2024 16:39:09 +0900 Subject: [PATCH 29/29] =?UTF-8?q?[#96]=20=EC=95=B1=EC=9D=84=20=EC=B2=98?= =?UTF-8?q?=EC=9D=8C=20=EC=84=A4=EC=B9=98=ED=95=98=EA=B3=A0=20=ED=91=B8?= =?UTF-8?q?=EC=8B=9C=20=EC=95=8C=EB=A6=BC=20=EB=8F=99=EC=9D=98=EB=A5=BC=20?= =?UTF-8?q?=EB=B0=9B=EC=95=98=EC=9D=84=20=EB=95=8C,=20=ED=91=B8=EC=8B=9C?= =?UTF-8?q?=20=EC=95=8C=EB=A6=BC=20=EC=8A=A4=EC=9C=84=EC=B9=98=EA=B0=80=20?= =?UTF-8?q?=EC=BC=9C=EC=A0=B8=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Notification/NotificationManager.swift | 94 ++++--- .../Cell/MyPageTableDefaultCell.swift | 67 +++-- .../NotificationSettingTableViewCell.swift | 7 +- .../MyPage/View/MyPageView/MyPageView.swift | 176 +++++++------ .../ViewController/MyPageViewController.swift | 235 ++++++++---------- .../Utility/Application/AppDelegate.swift | 154 ++++++------ 6 files changed, 354 insertions(+), 379 deletions(-) diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift index 1f8196e..f6b17cb 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Notification/NotificationManager.swift @@ -9,71 +9,65 @@ import Foundation import UserNotifications class NotificationManager { - - // MARK: - Properties - - static let shared = NotificationManager() + // MARK: - Properties - // MARK: - Methods + static let shared = NotificationManager() - /// 평일 11시에 앱의 유입을 유도하는 푸시 알림을 발송하는 메소드 - /// - /// - Title : 🤔 오늘 밥 뭐 먹지… - /// - Body : 오늘의 학식을 확인해보세요! - func scheduleWeekday11AMNotification() { - let center = UNUserNotificationCenter.current() + // MARK: - Methods - // 알림 콘텐츠 설정 - let content = UNMutableNotificationContent() + /// 평일 11시에 앱의 유입을 유도하는 푸시 알림을 발송하는 메소드 + /// + /// - Title : 🤔 오늘 밥 뭐 먹지… + /// - Body : 오늘의 학식을 확인해보세요! + func scheduleWeekday11AMNotification() { + let center = UNUserNotificationCenter.current() + + // 알림 콘텐츠 설정 + let content = UNMutableNotificationContent() - content.title = TextLiteral.Notification.dailyWeekdayNotificationTitle - content.body = TextLiteral.Notification.dailyWeekdayNotificationBody - content.sound = .default + content.title = TextLiteral.Notification.dailyWeekdayNotificationTitle + content.body = TextLiteral.Notification.dailyWeekdayNotificationBody + content.sound = .default - // 반복할 요일 및 시간 설정 (평일 오전 11시) - let weekdays = [2, 3, 4, 5, 6] // 월, 화, 수, 목, 금 (Calendar에서 1이 일요일) + // 반복할 요일 및 시간 설정 (평일 오전 11시) + let weekdays = [2, 3, 4, 5, 6] // 월, 화, 수, 목, 금 (Calendar에서 1이 일요일) - for weekday in weekdays { - var dateComponents = DateComponents() - dateComponents.hour = 11 - dateComponents.minute = 0 - dateComponents.weekday = weekday + for weekday in weekdays { + var dateComponents = DateComponents() + dateComponents.hour = 11 + dateComponents.minute = 0 + dateComponents.weekday = weekday - let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) + let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) - // 고유한 식별자를 위해 weekday를 사용 - let identifier = "weekdayNotification-\(weekday)" - let request = UNNotificationRequest( - identifier: identifier, content: content, trigger: trigger) + // 고유한 식별자를 위해 weekday를 사용 + let identifier = "weekdayNotification-\(weekday)" + let request = UNNotificationRequest( + identifier: identifier, content: content, trigger: trigger) + + // 알림 등록 + center.add(request) { error in + if let error = error { + print("알림 등록 간 에러 메시지: \(error.localizedDescription)") + } + } + } + } - // 알림 등록 - center.add(request) { error in - if let error = error { - print("알림 등록 간 에러 메시지: \(error.localizedDescription)") - } - } - } - } - /// 평일 11시에 앱의 유입을 유도하는 푸시 알림을 취소하는 메소드 func cancelWeekday11AMNotification() { let weekday = [2, 3, 4, 5, 6] let identifier = "weekdayNotification-\(weekday)" - + let center = UNUserNotificationCenter.current() center.removePendingNotificationRequests(withIdentifiers: [identifier]) } - /// 앱 실행 시 알림 발송 권한을 요청하는 팝업 호출 메소드 - func requestNotificationPermission() { - UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { - granted, error in - if granted { - print("알림 권한 승인됨") - } else { - print("알림 권한 거부됨") - } - } - } - + /// 앱 실행 시 알림 발송 권한을 요청하는 팝업 호출 메소드 + func requestNotificationPermission(completion: @escaping (_ granted : Bool) -> Void) { + UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { + granted, _ in + completion(granted) + } + } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift index 5da8f0a..1779c95 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/MyPageTableDefaultCell.swift @@ -10,54 +10,53 @@ import UIKit import SnapKit final class MyPageTableDefaultCell: UITableViewCell { + // MARK: - Properties - // MARK: - Properties + static let identifier = "MyPageTableDefaultCell" - static let identifier = "MyPageTableDefaultCell" + // MARK: - UI Components - // MARK: - UI Components - - let serviceLabel = UILabel().then { + let serviceLabel = UILabel().then { $0.font = EATSSUFontFamily.Pretendard.medium.font(size: 16) $0.textColor = .black - } + } let rigthChevronImage = UIImageView().then { imageView in imageView.image = UIImage(systemName: "chevron.right") imageView.tintColor = EATSSUAsset.Color.GrayScale.gray300.color } + // MARK: - Initializer - // MARK: - Initializer - - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) - configureUI() - setLayout() - } + configureUI() + setLayout() + } - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } - // MARK: - Functions - - private func configureUI() { - self.addSubviews( - serviceLabel, - rigthChevronImage - ) - } - - private func setLayout() { - serviceLabel.snp.makeConstraints { - $0.leading.equalToSuperview().offset(24) - $0.centerY.equalToSuperview() - } + // MARK: - Functions + + private func configureUI() { + addSubviews( + serviceLabel, + rigthChevronImage + ) + } + + private func setLayout() { + serviceLabel.snp.makeConstraints { + $0.leading.equalToSuperview().offset(24) + $0.centerY.equalToSuperview() + } rigthChevronImage.snp.makeConstraints { - $0.trailing.equalToSuperview().inset(24) - $0.centerY.equalToSuperview() - } - } + $0.trailing.equalToSuperview().inset(24) + $0.centerY.equalToSuperview() + } + } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift index 6a29f66..c138869 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/Cell/NotificationSettingTableViewCell.swift @@ -10,8 +10,8 @@ import UIKit import SnapKit class NotificationSettingTableViewCell: UITableViewCell { - // MARK: - Properties + static let identifier = "NotificationSettingTableViewCell" // MARK: - UI Components @@ -40,14 +40,13 @@ class NotificationSettingTableViewCell: UITableViewCell { return stackView }() - internal let toggleSwitch: UISwitch = { + let toggleSwitch: UISwitch = { let toggleSwitch = UISwitch() toggleSwitch.onTintColor = EATSSUAsset.Color.Main.primary.color toggleSwitch.isOn = UserDefaults.standard.bool(forKey: TextLiteral.MyPage.pushNotificationUserSettingKey) return toggleSwitch }() - // MARK: - Initializer override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { @@ -57,6 +56,7 @@ class NotificationSettingTableViewCell: UITableViewCell { setupLayout() } + @available(*, unavailable) required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } @@ -85,5 +85,4 @@ class NotificationSettingTableViewCell: UITableViewCell { make.centerY.equalToSuperview() } } - } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift index e9fe58d..4d7bb2e 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/View/MyPageView/MyPageView.swift @@ -11,58 +11,57 @@ import SnapKit import Then final class MyPageView: BaseUIView { + // MARK: - Properties - // MARK: - Properties - - // MARK: - UI Components + // MARK: - UI Components // 사용자 이미지 - internal var userImage = UIImageView().then { - $0.image = ImageLiteral.profileIcon - } + var userImage = UIImageView().then { + $0.image = ImageLiteral.profileIcon + } // 닉네임이 들어간 닉네임 변경 버튼 - internal var userNicknameButton = UIButton().then { - $0.addTitleAttribute( - title: "다시 시도해주세요", - titleColor: .black, - fontName: EATSSUFontFamily.Pretendard.regular.font(size: 16)) - } + var userNicknameButton = UIButton().then { + $0.addTitleAttribute( + title: "다시 시도해주세요", + titleColor: .black, + fontName: EATSSUFontFamily.Pretendard.regular.font(size: 16)) + } // "연결된 계정" 레이블 - internal let accountTitleLabel = UILabel().then { - $0.text = TextLiteral.MyPage.linkedAccount - $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) - } + let accountTitleLabel = UILabel().then { + $0.text = TextLiteral.MyPage.linkedAccount + $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) + } // 서버에서 계정 정보를 가져오기 전 기본값 - internal var accountTypeLabel = UILabel().then { - $0.text = "없음" + var accountTypeLabel = UILabel().then { + $0.text = "없음" $0.font = EATSSUFontFamily.Pretendard.regular.font(size: 14) - $0.font = .bold(size: 14) - } + $0.font = .bold(size: 14) + } // 소셜 로그인 공급업체 아이콘 - internal var accountTypeImage = UIImageView() + var accountTypeImage = UIImageView() - internal lazy var totalAccountStackView = UIStackView( - arrangedSubviews: [accountTitleLabel,accountStackView]).then { - $0.alignment = .bottom - $0.axis = .horizontal - $0.spacing = 20 - } + lazy var totalAccountStackView = UIStackView( + arrangedSubviews: [accountTitleLabel, accountStackView]).then { + $0.alignment = .bottom + $0.axis = .horizontal + $0.spacing = 20 + } - internal lazy var accountStackView = UIStackView( - arrangedSubviews: [accountTypeLabel,accountTypeImage]).then { - $0.alignment = .bottom - $0.axis = .horizontal - $0.spacing = 5 - } + lazy var accountStackView = UIStackView( + arrangedSubviews: [accountTypeLabel, accountTypeImage]).then { + $0.alignment = .bottom + $0.axis = .horizontal + $0.spacing = 5 + } - internal let myPageTableView = UITableView().then { - $0.separatorStyle = .none + let myPageTableView = UITableView().then { + $0.separatorStyle = .none $0.isScrollEnabled = false - } + } // "앱 버전" 레이블 private let appVersionStringLabel = UILabel().then { label in @@ -79,7 +78,7 @@ final class MyPageView: BaseUIView { } /// "탈퇴하기" 레이블과 탈퇴하기 아이콘 - internal let userWithdrawButton: UIButton = { + let userWithdrawButton: UIButton = { let button = UIButton() button.setTitle(TextLiteral.MyPage.withdraw, for: .normal) button.setImage(EATSSUAsset.Images.Version2.withdrawIcon.image, for: .normal) @@ -88,51 +87,50 @@ final class MyPageView: BaseUIView { return button }() - // MARK: - Intializer + // MARK: - Intializer - override init(frame: CGRect) { - super.init(frame: frame) + override init(frame: CGRect) { + super.init(frame: frame) - registerTableViewCells() - } + registerTableViewCells() + } - // MARK: - Functions + // MARK: - Functions - override func configureUI() { - addSubviews(userImage, - userNicknameButton, - totalAccountStackView, - myPageTableView, - appVersionStringLabel, - appVersionLabel, - userWithdrawButton - ) - } + override func configureUI() { + addSubviews(userImage, + userNicknameButton, + totalAccountStackView, + myPageTableView, + appVersionStringLabel, + appVersionLabel, + userWithdrawButton) + } - override func setLayout() { - userImage.snp.makeConstraints { - $0.top.equalToSuperview().offset(127) - $0.centerX.equalToSuperview() - $0.height.width.equalTo(100) - } + override func setLayout() { + userImage.snp.makeConstraints { + $0.top.equalToSuperview().offset(127) + $0.centerX.equalToSuperview() + $0.height.width.equalTo(100) + } - userNicknameButton.snp.makeConstraints { - $0.top.equalTo(userImage.snp.bottom).offset(6) - $0.centerX.equalTo(userImage) - $0.height.equalTo(40) - } + userNicknameButton.snp.makeConstraints { + $0.top.equalTo(userImage.snp.bottom).offset(6) + $0.centerX.equalTo(userImage) + $0.height.equalTo(40) + } - totalAccountStackView.snp.makeConstraints { - $0.centerX.equalToSuperview() - $0.top.equalTo(userNicknameButton.snp.bottom).offset(10) - } + totalAccountStackView.snp.makeConstraints { + $0.centerX.equalToSuperview() + $0.top.equalTo(userNicknameButton.snp.bottom).offset(10) + } - myPageTableView.snp.makeConstraints { - $0.top.equalTo(accountTitleLabel.snp.bottom).offset(24) + myPageTableView.snp.makeConstraints { + $0.top.equalTo(accountTitleLabel.snp.bottom).offset(24) $0.leading.trailing.equalToSuperview() $0.height.equalTo(420) $0.width.equalToSuperview() - } + } appVersionStringLabel.snp.makeConstraints { make in make.top.equalTo(myPageTableView.snp.bottom).offset(6) @@ -149,33 +147,31 @@ final class MyPageView: BaseUIView { make.top.equalTo(appVersionLabel.snp.bottom).offset(16) make.trailing.equalToSuperview().inset(24) } - - } + } - private func registerTableViewCells() { - myPageTableView.register( + private func registerTableViewCells() { + myPageTableView.register( MyPageTableDefaultCell.self, forCellReuseIdentifier: MyPageTableDefaultCell.identifier) myPageTableView.register( NotificationSettingTableViewCell.self, forCellReuseIdentifier: NotificationSettingTableViewCell.identifier) - } + } public func setUserInfo(nickname: String) { - userNicknameButton.addTitleAttribute( - title: "\(nickname) >", - titleColor: .black, - fontName: .semiBold(size: 20) - ) - if let accountType = UserInfoManager.shared.getCurrentUserInfo()?.accountType { - switch accountType { - case .apple: - accountTypeLabel.text = "APPLE" - accountTypeImage.image = ImageLiteral.signInWithApple - case .kakao: - accountTypeLabel.text = "카카오" - accountTypeImage.image = ImageLiteral.signInWithKakao - } + userNicknameButton.addTitleAttribute( + title: "\(nickname) >", + titleColor: .black, + fontName: .semiBold(size: 20)) + if let accountType = UserInfoManager.shared.getCurrentUserInfo()?.accountType { + switch accountType { + case .apple: + accountTypeLabel.text = "APPLE" + accountTypeImage.image = ImageLiteral.signInWithApple + case .kakao: + accountTypeLabel.text = "카카오" + accountTypeImage.image = ImageLiteral.signInWithKakao } } + } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift index 05518f2..c64667f 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Presentation/MyPage/ViewController/MyPageViewController.swift @@ -5,130 +5,118 @@ // Created by 최지우 on 2023/05/22. // -// Swift Module import Foundation import WebKit -// External Module import FirebaseAnalytics -import SnapKit -import UIKit -import Moya -import Realm import KakaoSDKCommon import KakaoSDKTalk - -// TODO: "탈퇴하기" 로직 연결 - -/* - 아래 코드를 탈퇴하기 버튼에 연결 -let userWithdrawViewController = UserWithdrawViewController() -userWithdrawViewController.getUsernickName(nickName: self.nickName) -self.navigationController?.pushViewController(userWithdrawViewController, animated: true) - */ +import Moya +import Realm +import SnapKit +import UIKit final class MyPageViewController: BaseViewController { + // MARK: - Properties - // MARK: - Properties - - private let myProvider = MoyaProvider(plugins: [MoyaLoggingPlugin()]) - private var nickName = "" + private let myProvider = MoyaProvider(plugins: [MoyaLoggingPlugin()]) + private var nickName = "" private var switchState = false private let userDefaultsKey = TextLiteral.MyPage.pushNotificationUserSettingKey private let myPageTableLabelList = MyPageLocalData.myPageTableLabelList - // MARK: - UI Components + // MARK: - UI Components - let mypageView = MyPageView() + let mypageView = MyPageView() - // MARK: - Life Cycles + // MARK: - Life Cycles - override func viewDidLoad() { - super.viewDidLoad() + override func viewDidLoad() { + super.viewDidLoad() Analytics.logEvent("MypageViewControllerLoad", parameters: nil) - setTableViewDelegate() + setTableViewDelegate() loadSwitchStateFromUserDefaults() - } + } - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) nickName = UserInfoManager.shared.getCurrentUserInfo()?.nickname ?? "실패" mypageView.setUserInfo(nickname: nickName) - } + } - // MARK: - Functions + // MARK: - Functions - override func setCustomNavigationBar() { - super.setCustomNavigationBar() - navigationItem.title = TextLiteral.MyPage.myPage - } + override func setCustomNavigationBar() { + super.setCustomNavigationBar() + navigationItem.title = TextLiteral.MyPage.myPage + } - override func configureUI() { - view.addSubviews(mypageView) - } + override func configureUI() { + view.addSubviews(mypageView) + } - override func setLayout() { - mypageView.snp.makeConstraints { - $0.edges.equalToSuperview() - } - } + override func setLayout() { + mypageView.snp.makeConstraints { + $0.edges.equalToSuperview() + } + } - override func setButtonEvent() { - mypageView.userNicknameButton - .addTarget(self, action: #selector(didTappedChangeNicknameButton),for: .touchUpInside) + override func setButtonEvent() { + mypageView.userNicknameButton + .addTarget(self, action: #selector(didTappedChangeNicknameButton), for: .touchUpInside) mypageView.userWithdrawButton .addTarget(self, action: #selector(userWithdrawButtonTapped), for: .touchUpInside) - } + } - @objc - private func didTappedChangeNicknameButton() { - let setNickNameVC = SetNickNameViewController() - self.navigationController?.pushViewController(setNickNameVC, animated: true) - } + @objc + private func didTappedChangeNicknameButton() { + let setNickNameVC = SetNickNameViewController() + navigationController?.pushViewController(setNickNameVC, animated: true) + } @objc private func userWithdrawButtonTapped() { let userWithdrawViewController = UserWithdrawViewController(nickName: nickName) - self.navigationController?.pushViewController(userWithdrawViewController, animated: true) + navigationController?.pushViewController(userWithdrawViewController, animated: true) } /// TableViewDelegate & DataSource를 해당 클래스로 할당합니다. - private func setTableViewDelegate() { - mypageView.myPageTableView.dataSource = self - mypageView.myPageTableView.delegate = self - } + private func setTableViewDelegate() { + mypageView.myPageTableView.dataSource = self + mypageView.myPageTableView.delegate = self + } /// 로그아웃 Alert를 스크린에 표시하는 메소드 - private func logoutShowAlert() { - let alert = UIAlertController(title: "로그아웃", - message: "정말 로그아웃 하시겠습니까?", - preferredStyle: UIAlertController.Style.alert - ) + private func logoutShowAlert() { + let alert = UIAlertController(title: "로그아웃", + message: "정말 로그아웃 하시겠습니까?", + preferredStyle: UIAlertController.Style.alert) - let cancelAction = UIAlertAction(title: "취소하기", - style: .default, - handler: nil) + let cancelAction = UIAlertAction(title: "취소하기", + style: .default, + handler: nil) - let fixAction = UIAlertAction(title: "로그아웃", - style: .default, - handler: { okAction in - RealmService.shared.resetDB() + let fixAction = UIAlertAction(title: "로그아웃", + style: .default, + handler: { _ in + RealmService.shared.resetDB() - let loginViewController = LoginViewController() - if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, - let keyWindow = windowScene.windows.first(where: { $0.isKeyWindow }) { - keyWindow.replaceRootViewController(UINavigationController(rootViewController: loginViewController)) - } - }) + let loginViewController = LoginViewController() + if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene, + let keyWindow = windowScene.windows.first(where: { $0.isKeyWindow }) + { + keyWindow.replaceRootViewController(UINavigationController(rootViewController: loginViewController)) + } + }) - alert.addAction(cancelAction) - alert.addAction(fixAction) + alert.addAction(cancelAction) + alert.addAction(fixAction) - present(alert, animated: true, completion: nil) - } + present(alert, animated: true, completion: nil) + } /// UserDefaults에 스위치 상태 저장 private func saveSwitchStateToUserDefaults() { @@ -146,12 +134,11 @@ final class MyPageViewController: BaseViewController { // MARK: - TableView DataSource extension MyPageViewController: UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return myPageTableLabelList.count + } - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return myPageTableLabelList.count - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { if indexPath.row == MyPageLabels.NotificationSetting.rawValue { let cell = tableView .dequeueReusableCell( @@ -171,31 +158,28 @@ extension MyPageViewController: UITableViewDataSource { cell.serviceLabel.text = title return cell } - } + } } // MARK: - UITableView Delegate extension MyPageViewController: UITableViewDelegate { - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 60 } - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - tableView.deselectRow(at: indexPath, animated: true) + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: true) - switch indexPath.row { - - // "내가 쓴 리뷰" 스크린으로 이동 - case MyPageLabels.MyReview.rawValue: - let myReviewViewController = MyReviewViewController() - self.navigationController?.pushViewController(myReviewViewController, animated: true) + switch indexPath.row { + // "내가 쓴 리뷰" 스크린으로 이동 + case MyPageLabels.MyReview.rawValue: + let myReviewViewController = MyReviewViewController() + navigationController?.pushViewController(myReviewViewController, animated: true) // "푸시 알림 설정" 스위치 토글 case MyPageLabels.NotificationSetting.rawValue: if let cell = tableView.cellForRow(at: indexPath) as? NotificationSettingTableViewCell { - // 현재 스위치 상태를 반전 let newSwitchState = !switchState cell.toggleSwitch.setOn(newSwitchState, animated: true) @@ -217,45 +201,46 @@ extension MyPageViewController: UITableViewDelegate { saveSwitchStateToUserDefaults() } - // "문의하기" 스크린으로 이동 - case MyPageLabels.Inquiry.rawValue: - TalkApi.shared.chatChannel(channelPublicId: TextLiteral.KakaoChannel.id) { [weak self] error in - if error != nil { - if let kakaoChannelLink = URL(string: "http://pf.kakao.com/\(TextLiteral.KakaoChannel.id)") { - UIApplication.shared.open(kakaoChannelLink) - } else { - self?.showAlertController( + // "문의하기" 스크린으로 이동 + case MyPageLabels.Inquiry.rawValue: + TalkApi.shared.chatChannel(channelPublicId: TextLiteral.KakaoChannel.id) { [weak self] error in + if error != nil { + if let kakaoChannelLink = URL(string: "http://pf.kakao.com/\(TextLiteral.KakaoChannel.id)") { + UIApplication.shared.open(kakaoChannelLink) + } else { + self?.showAlertController( title: "다시 시도하세요", message: "에러가 발생했습니다", style: .default) - } - } else { - // TODO: 카카오톡 채널 채팅방으로 연결 성공했을 때, 앱에서 동작되어야 하는 로직 고민 + } + } else { + // TODO: 카카오톡 채널 채팅방으로 연결 성공했을 때, 앱에서 동작되어야 하는 로직 고민 } - } + } - // "서비스 이용약관" 스크린으로 이동 - case MyPageLabels.TermsOfUse.rawValue: - let provisionViewController = ProvisionViewController(agreementType: .termsOfService) - provisionViewController.navigationTitle = TextLiteral.MyPage.termsOfUse - self.navigationController?.pushViewController(provisionViewController, animated: true) + // "서비스 이용약관" 스크린으로 이동 + case MyPageLabels.TermsOfUse.rawValue: + let provisionViewController = ProvisionViewController(agreementType: .termsOfService) + provisionViewController.navigationTitle = TextLiteral.MyPage.termsOfUse + navigationController?.pushViewController(provisionViewController, animated: true) - // "개인정보 이용약관" 스크린으로 이동 - case MyPageLabels.PrivacyTermsOfUse.rawValue: - let provisionViewController = ProvisionViewController(agreementType: .privacyPolicy) - provisionViewController.navigationTitle = TextLiteral.MyPage.privacyTermsOfUse - self.navigationController?.pushViewController(provisionViewController, animated: true) + // "개인정보 이용약관" 스크린으로 이동 + case MyPageLabels.PrivacyTermsOfUse.rawValue: + let provisionViewController = ProvisionViewController(agreementType: .privacyPolicy) + provisionViewController.navigationTitle = TextLiteral.MyPage.privacyTermsOfUse + navigationController?.pushViewController(provisionViewController, animated: true) // "만든사람들" 스크린으로 이동 - case MyPageLabels.Creator.rawValue: - let creatorViewController = CreatorViewController() - navigationController?.pushViewController(creatorViewController, animated: true) + case MyPageLabels.Creator.rawValue: + let creatorViewController = CreatorViewController() + navigationController?.pushViewController(creatorViewController, animated: true) // "로그아웃" 팝업알림 표시 - case MyPageLabels.Logout.rawValue: - self.logoutShowAlert() - default: - return - } - } + case MyPageLabels.Logout.rawValue: + logoutShowAlert() + + default: + return + } + } } diff --git a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Application/AppDelegate.swift b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Application/AppDelegate.swift index ee2f852..8a738a1 100644 --- a/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Application/AppDelegate.swift +++ b/EATSSU_MVC/EATSSU_MVC/Sources/Utility/Application/AppDelegate.swift @@ -5,99 +5,101 @@ // Created by 최지우 on 2023/02/13. // -import UIKit import AuthenticationServices +import UIKit import Firebase import KakaoSDKCommon @main class AppDelegate: UIResponder, UIApplicationDelegate { - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - - // 푸시 알림 권한 요청 - NotificationManager.shared.requestNotificationPermission() - NotificationManager.shared.scheduleWeekday11AMNotification() - - /* - 해야 할 일 - - NetworkMonitor 클래스에 대한 문서화를 작성 - */ - - // 디버그 콘솔에서 네트워크 연결 상태 모니터링을 위한 메소드 - NetworkMonitor.shared.startMonitoring() + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // 푸시 알림 권한 요청 + NotificationManager.shared.requestNotificationPermission { granted in + if granted { + NotificationManager.shared.scheduleWeekday11AMNotification() + UserDefaults.standard.set(true, forKey: TextLiteral.MyPage.pushNotificationUserSettingKey) + } else { + // + } + } + + // TODO: NetworkMonitor 문서화 작성 + + // 디버그 콘솔에서 네트워크 연결 상태 모니터링을 위한 메소드 + NetworkMonitor.shared.startMonitoring() - // Firebase SDK를 사용하기 위한 처리 - FirebaseApp.configure() + // Firebase SDK를 사용하기 위한 처리 + FirebaseApp.configure() - // Apple 사용자 인증을 위한 처리 - let appleIDProvider = ASAuthorizationAppleIDProvider() + // Apple 사용자 인증을 위한 처리 + let appleIDProvider = ASAuthorizationAppleIDProvider() - //forUserID = userIdentifier - appleIDProvider.getCredentialState( - forUserID: "001281.9301aaa1f617423c9c7a64b671b6eb84.0758") { credentialState, error in - switch credentialState { - case .authorized: - // The Apple ID credential is valid. - print("해당 ID는 연동되어있습니다.") - case .revoked: - // The Apple ID credential is either revoked or was not found, so show the sign-in UI. - print("해당 ID는 연동되어있지않습니다.") - case .notFound: - // The Apple ID credential is either was not found, so show the sign-in UI. - print("해당 ID를 찾을 수 없습니다.") - default: - break - } - } + // forUserID = userIdentifier + appleIDProvider.getCredentialState( + forUserID: "001281.9301aaa1f617423c9c7a64b671b6eb84.0758") + { credentialState, _ in + switch credentialState { + case .authorized: + // The Apple ID credential is valid. + print("해당 ID는 연동되어있습니다.") + case .revoked: + // The Apple ID credential is either revoked or was not found, so show the sign-in UI. + print("해당 ID는 연동되어있지않습니다.") + case .notFound: + // The Apple ID credential is either was not found, so show the sign-in UI. + print("해당 ID를 찾을 수 없습니다.") + default: + break + } + } - /* - 해야 할 일 - - "앱 실행 중 강제로 연결 취소 시" 동작하는 로직이 특별히 없는 것 같습니다. - - 최지우님 설명 부탁드립니다. 최지웅 작성. - */ + /* + 해야 할 일 + - "앱 실행 중 강제로 연결 취소 시" 동작하는 로직이 특별히 없는 것 같습니다. + - 최지우님 설명 부탁드립니다. 최지웅 작성. + */ - //앱 실행 중 강제로 연결 취소 시 - NotificationCenter.default.addObserver( - forName: ASAuthorizationAppleIDProvider.credentialRevokedNotification, - object: nil, - queue: nil) { Notification in - print("Revoked Notification") - } + // 앱 실행 중 강제로 연결 취소 시 + NotificationCenter.default.addObserver( + forName: ASAuthorizationAppleIDProvider.credentialRevokedNotification, + object: nil, + queue: nil) + { _ in + print("Revoked Notification") + } - // 카카오 SDK 사용을 위한 처리 - let kakaoAPIKey = Bundle.main.object(forInfoDictionaryKey: "KAKAO API KEY") as! String - KakaoSDK.initSDK(appKey: kakaoAPIKey) + // 카카오 SDK 사용을 위한 처리 + let kakaoAPIKey = Bundle.main.object(forInfoDictionaryKey: "KAKAO API KEY") as! String + KakaoSDK.initSDK(appKey: kakaoAPIKey) - /* - 해야 할 일 - - 아래 전처리문에 대한 설명을 해주셨으면 합니다. - - 디버그 상황에서만 수행되는 코드인데, 왜 그런지 궁금하네요. - - 최지우님 설명 부탁드립니다. 최지웅 작성. - */ + /* + 해야 할 일 + - 아래 전처리문에 대한 설명을 해주셨으면 합니다. + - 디버그 상황에서만 수행되는 코드인데, 왜 그런지 궁금하네요. + - 최지우님 설명 부탁드립니다. 최지웅 작성. + */ - #if DEBUG - var newArguments = ProcessInfo.processInfo.arguments - newArguments.append("-FIRDebugEnabled") - ProcessInfo.processInfo.setValue(newArguments, forKey: "arguments") - #endif + #if DEBUG + var newArguments = ProcessInfo.processInfo.arguments + newArguments.append("-FIRDebugEnabled") + ProcessInfo.processInfo.setValue(newArguments, forKey: "arguments") + #endif - sleep(1) + sleep(1) - return true - } - + return true + } - 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, 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. - } + 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. + } }