From b68b39ec1e395c6c633cc163a28cabc05e8aab48 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 14:26:48 +0900 Subject: [PATCH 01/11] =?UTF-8?q?[Feat]=20#231=20-=206=EC=B0=A8=20?= =?UTF-8?q?=EC=8A=A4=ED=94=84=EB=A6=B0=ED=8A=B8=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj b/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj index e30e510b..5999c53f 100644 --- a/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj +++ b/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj @@ -46,8 +46,8 @@ 09A1465F2A192C4900DDC308 /* WeekMissionResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A1465E2A192C4900DDC308 /* WeekMissionResponseDTO.swift */; }; 09A146652A1964B500DDC308 /* AddAnotherDayResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A146642A19649A00DDC308 /* AddAnotherDayResponseDTO.swift */; }; 09C8602D2AB14B4800C4F4B1 /* FSCalendar in Frameworks */ = {isa = PBXBuildFile; productRef = 09C8602C2AB14B4800C4F4B1 /* FSCalendar */; }; - 09CF56042B09F23800526C8C /* HomeDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CF56032B09F23800526C8C /* HomeDataSource.swift */; }; 09CF56022B09E98A00526C8C /* DetailAchieveHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CF56012B09E98A00526C8C /* DetailAchieveHeaderView.swift */; }; + 09CF56042B09F23800526C8C /* HomeDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CF56032B09F23800526C8C /* HomeDataSource.swift */; }; 09DCCD1F2A18ED76003DCF8A /* DailyMissionResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD1E2A18ED76003DCF8A /* DailyMissionResponseDTO.swift */; }; 09DCCD212A18EF43003DCF8A /* HomeSevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD202A18EF43003DCF8A /* HomeSevice.swift */; }; 09DCCD232A18EFB0003DCF8A /* HomeAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD222A18EFB0003DCF8A /* HomeAPI.swift */; }; @@ -212,8 +212,8 @@ 099FC98829B3233D005B37E6 /* CalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = ""; }; 09A1465E2A192C4900DDC308 /* WeekMissionResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeekMissionResponseDTO.swift; sourceTree = ""; }; 09A146642A19649A00DDC308 /* AddAnotherDayResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAnotherDayResponseDTO.swift; sourceTree = ""; }; - 09CF56032B09F23800526C8C /* HomeDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeDataSource.swift; sourceTree = ""; }; 09CF56012B09E98A00526C8C /* DetailAchieveHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailAchieveHeaderView.swift; sourceTree = ""; }; + 09CF56032B09F23800526C8C /* HomeDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeDataSource.swift; sourceTree = ""; }; 09DCCD1E2A18ED76003DCF8A /* DailyMissionResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyMissionResponseDTO.swift; sourceTree = ""; }; 09DCCD202A18EF43003DCF8A /* HomeSevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeSevice.swift; sourceTree = ""; }; 09DCCD222A18EFB0003DCF8A /* HomeAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeAPI.swift; sourceTree = ""; }; @@ -1587,7 +1587,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; GENERATE_INFOPLIST_FILE = YES; @@ -1602,7 +1602,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.2; + MARKETING_VERSION = 1.0.3; PRODUCT_BUNDLE_IDENTIFIER = "nottodo.iOS-NOTTODO"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1625,7 +1625,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; GENERATE_INFOPLIST_FILE = YES; @@ -1640,7 +1640,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.2; + MARKETING_VERSION = 1.0.3; PRODUCT_BUNDLE_IDENTIFIER = "nottodo.iOS-NOTTODO"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1846,4 +1846,4 @@ /* End XCSwiftPackageProductDependency section */ }; rootObject = 3B027A6C299C31B500BEB65C /* Project object */; -} \ No newline at end of file +} From bf77ae648927edcbdebecb088a2540b90f7da773 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 14:27:27 +0900 Subject: [PATCH 02/11] =?UTF-8?q?[Add]=20#231=20-=20=EA=B3=B5=ED=86=B5=20?= =?UTF-8?q?=EB=AA=A8=EB=8B=AC=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Global/Extensions/Design/UIImage+.swift | 3 ++- .../modal/img_openchat.imageset/Contents.json | 23 ++++++++++++++++++ .../img_openchat.imageset/img_open_chat.png | Bin 0 -> 10094 bytes .../img_open_chat@2x.png | Bin 0 -> 21546 bytes .../img_open_chat@3x.png | Bin 0 -> 33679 bytes .../img_starbucks.imageset}/Contents.json | 0 .../icon_starbucks.svg | 0 7 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/Contents.json create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat.png create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat@2x.png create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat@3x.png rename iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/{IC/ic_starbucks.imageset => modal/img_starbucks.imageset}/Contents.json (100%) rename iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/{IC/ic_starbucks.imageset => modal/img_starbucks.imageset}/icon_starbucks.svg (100%) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift index dcaec932..46b4f33f 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift @@ -60,13 +60,14 @@ extension UIImage { static var icToastError: UIImage { UIImage(named: "ic_toast_error")! } static var icBell: UIImage { UIImage(named: "ic_bell")! } static var icCircle: UIImage { UIImage(named: "acceptCircle")! } - static var icStarbucks: UIImage { UIImage(named: "ic_starbucks")! } // image static var imgCreateTip: UIImage { UIImage(named: "img_create_tip")! } static var imgUser: UIImage { UIImage(named: "img_myinfouser")! } static var imgTotal: UIImage { UIImage(named: "img_total")! } + static var imgStarbucks: UIImage { UIImage(named: "img_starbucks")! } + static var imgOpenChat: UIImage { UIImage(named: "img_openchat")! } // recommend diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/Contents.json b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/Contents.json new file mode 100644 index 00000000..01f6a12c --- /dev/null +++ b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "img_open_chat.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "img_open_chat@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "img_open_chat@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat.png b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat.png new file mode 100644 index 0000000000000000000000000000000000000000..73988022f7d0b7654d0b6afec51e88c0774862ef GIT binary patch literal 10094 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 Q+v5Nwd3CuG8S|k31FxtM+5i9m literal 0 HcmV?d00001 diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat@2x.png b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0692a6fbe32d43b510484c3107580724efa611a8 GIT binary patch literal 21546 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 literal 0 HcmV?d00001 diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat@3x.png b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_openchat.imageset/img_open_chat@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..851642944c2ce88a3ff28665ead77ebe5184eebd GIT binary patch literal 33679 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 M+*8@g$L1mb4PyY=82|tP literal 0 HcmV?d00001 diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_starbucks.imageset/Contents.json b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_starbucks.imageset/Contents.json similarity index 100% rename from iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_starbucks.imageset/Contents.json rename to iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_starbucks.imageset/Contents.json diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_starbucks.imageset/icon_starbucks.svg b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_starbucks.imageset/icon_starbucks.svg similarity index 100% rename from iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_starbucks.imageset/icon_starbucks.svg rename to iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/modal/img_starbucks.imageset/icon_starbucks.svg From 682b521526f07756a302ba22274e273b1162eff4 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 14:28:30 +0900 Subject: [PATCH 03/11] =?UTF-8?q?[Feat]=20#231=20-=20=ED=8A=B9=EC=A0=95=20?= =?UTF-8?q?=EA=B8=80=EC=9E=90=EB=A7=8C=20highlight=20=ED=95=B4=EC=A3=BC?= =?UTF-8?q?=EB=8A=94=20func=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Global/Extensions/UILabel+.swift | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UILabel+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UILabel+.swift index b106ab22..7a1c0122 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UILabel+.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UILabel+.swift @@ -61,21 +61,7 @@ extension UILabel { self.attributedText = attributedString } - func htmlToString(_ targetString: String) -> NSAttributedString? { - let text = targetString - - guard let data = text.data(using: .utf8) else { - return NSAttributedString() - } - do { - return try NSAttributedString(data: data, - options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], - documentAttributes: nil) - } catch { - return NSAttributedString() - } - } - + /// 라벨 일부 textColor와 font 변경해주는 함수 func setAttributedText(targetFontList: [String: UIFont], targetColorList: [String: UIColor]) { let fullText = self.text ?? "" @@ -91,4 +77,29 @@ extension UILabel { } self.attributedText = attributedString } + + /// 라벨에 highlight를 칠해주는 함수 + func partHighlightText(targetString: String, targetHighlightColor: UIColor) { + guard let fullText = self.text else { return } + let range = (fullText as NSString).range(of: targetString) + let attributedString = NSMutableAttributedString(string: fullText) + attributedString.addAttribute(.backgroundColor, value: targetHighlightColor, range: range) + self.attributedText = attributedString + } + + /// html을 string으로 변경해주는 함수 + func htmlToString(_ targetString: String) -> NSAttributedString? { + let text = targetString + + guard let data = text.data(using: .utf8) else { + return NSAttributedString() + } + do { + return try NSAttributedString(data: data, + options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], + documentAttributes: nil) + } catch { + return NSAttributedString() + } + } } From 63e9e493d6dbcc335ec44ac611d95dd43022ac6d Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 14:28:47 +0900 Subject: [PATCH 04/11] =?UTF-8?q?[Feat]=20#231=20-=20=EA=B3=B5=ED=86=B5=20?= =?UTF-8?q?=EC=95=8C=EB=A6=BC=20=EB=AA=A8=EB=8B=AC=20=EC=BB=A8=ED=85=90?= =?UTF-8?q?=EC=B8=A0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iOS-NOTTODO/Global/Enum/MyInfoURL.swift | 6 +- .../iOS-NOTTODO/Global/Literals/Strings.swift | 2 +- .../CommonNotificationViewController.swift | 86 +++++++++++-------- .../Modal/NottodoModalViewController.swift | 2 +- 4 files changed, 54 insertions(+), 42 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift index b8b554f4..6149ebdf 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift @@ -10,7 +10,7 @@ import Foundation import SafariServices enum MyInfoURL { - case guid, faq, notice, question, service, personalInfo, googleForm + case guid, faq, notice, question, service, personalInfo, commonAlarmModal var url: String { switch self { case .guid: @@ -25,8 +25,8 @@ enum MyInfoURL { return "https://teamnottodo.notion.site/81594da775614d23900cdb2475eadb73?pvs=4" case .personalInfo: return "https://teamnottodo.notion.site/5af34df7da3649fc941312c5f533c1eb" - case .googleForm: - return "https://forms.gle/gwBJ4hL4bCTjXRTP6" + case .commonAlarmModal: + return "https://open.kakao.com/o/gbrW727f" } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift index f4c002ef..fd14969b 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift @@ -187,7 +187,7 @@ struct I18N { static let allow = "허용" static let notiDialogButton = "네, 알겠어요 :)" - static let formButton = "이정도야 쉽지!" + static let commonModalTitle = "지금 바로 참여하기" static let deprecatedTitle = "더 이상 보지 않기" static let close = "닫기" diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift index 211c4963..a158d0dd 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift @@ -22,12 +22,14 @@ final class CommonNotificationViewController: UIViewController { private let backgroundView = UIView() private let titleLabel = UILabel() private let subTitleLabel = UILabel() + private let highlightView = UIView() private let icon = UIImageView() private let deprecatedTitle = UILabel() private let bottomView = UIView() - private lazy var formButton = UIButton() - private lazy var closeButton = UIButton() - private lazy var deprecatedButton = UIButton() + private let blackButton = UIButton() + private let greenButton = UIButton() + private let closeButton = UIButton() + private let deprecatedButton = UIButton() // MARK: - View Life Cycle @@ -47,14 +49,15 @@ extension CommonNotificationViewController { backgroundView.do { $0.backgroundColor = .white - $0.layer.cornerRadius = 15 + $0.layer.cornerRadius = 20 } titleLabel.do { - $0.font = .Pretendard(.bold, size: 18) - $0.textAlignment = .center - $0.text = "1분 서비스 피드백하고 \n기프티콘 받아가세요!" - $0.numberOfLines = 2 + $0.font = .Pretendard(.semiBold, size: 22) + $0.textAlignment = .left + $0.text = "오픈채팅으로\n일일 인증 하고\n갓생살자!" + $0.numberOfLines = 0 + $0.partHighlightText(targetString: "일일 인증", targetHighlightColor: .green2 ?? .black) } subTitleLabel.do { @@ -63,32 +66,45 @@ extension CommonNotificationViewController { $0.text = "매주 추첨을 통해 스타벅스 기프티콘을 드려요" } + highlightView.do { + $0.backgroundColor = .green2 + } + deprecatedTitle.do { - $0.font = .Pretendard(.medium, size: 13) + $0.font = .Pretendard(.semiBold, size: 15) $0.text = I18N.deprecatedTitle $0.textColor = .gray3 } icon.do { $0.contentMode = .scaleAspectFit - $0.image = .icStarbucks + $0.image = .imgOpenChat } bottomView.do { $0.backgroundColor = .gray5 $0.layer.maskedCorners = [.layerMinXMaxYCorner, .layerMaxXMaxYCorner] - $0.layer.cornerRadius = 15 + $0.layer.cornerRadius = 20 } - formButton.do { + blackButton.do { $0.backgroundColor = .black - $0.setTitle(I18N.formButton, for: .normal) + $0.setTitle(I18N.commonModalTitle, for: .normal) $0.setTitleColor(.white, for: .normal) $0.titleLabel?.font = .Pretendard(.medium, size: 13) $0.layer.cornerRadius = 20 $0.addTarget(self, action: #selector(didFormButtonTap), for: .touchUpInside) } + greenButton.do { + $0.backgroundColor = .green2 + $0.setTitle(I18N.commonModalTitle, for: .normal) + $0.setTitleColor(.ntdBlack, for: .normal) + $0.titleLabel?.font = .Pretendard(.semiBold, size: 20) + $0.layer.cornerRadius = 8 + $0.addTarget(self, action: #selector(didFormButtonTap), for: .touchUpInside) + } + deprecatedButton.do { $0.setImage(.deprecatedCheckBox, for: .normal) $0.setImage(.deprecatedCheckBoxFill, for: .selected) @@ -97,8 +113,8 @@ extension CommonNotificationViewController { closeButton.do { $0.setTitle(I18N.close, for: .normal) - $0.setTitleColor(.gray3, for: .normal) - $0.titleLabel?.font = .Pretendard(.medium, size: 13) + $0.setTitleColor(.ntdBlack, for: .normal) + $0.titleLabel?.font = .Pretendard(.semiBold, size: 15) $0.addTarget(self, action: #selector(didCancelButtonTap), for: .touchUpInside) } } @@ -106,54 +122,50 @@ extension CommonNotificationViewController { private func setLayout() { view.addSubview(backgroundView) - backgroundView.addSubviews(titleLabel, subTitleLabel, icon, formButton, bottomView) + backgroundView.addSubviews(titleLabel, highlightView, icon, greenButton, bottomView) bottomView.addSubviews(deprecatedButton, deprecatedTitle, closeButton) backgroundView.snp.makeConstraints { - $0.horizontalEdges.equalToSuperview().inset(46) - $0.height.equalTo(408) + $0.width.equalTo(312) + $0.height.equalTo(459) $0.center.equalToSuperview() } - titleLabel.snp.makeConstraints { - $0.top.equalToSuperview().inset(28) - $0.centerX.equalToSuperview() - } - subTitleLabel.snp.makeConstraints { - $0.top.equalTo(titleLabel.snp.bottom).offset(6) - $0.centerX.equalToSuperview() + titleLabel.snp.makeConstraints { + $0.top.equalToSuperview().inset(30) + $0.leading.equalToSuperview().inset(32) } icon.snp.makeConstraints { - $0.top.equalTo(subTitleLabel.snp.bottom).offset(7) - $0.horizontalEdges.equalToSuperview().inset(16) - $0.height.equalTo(197) + $0.top.equalTo(titleLabel.snp.bottom).offset(4) + $0.horizontalEdges.equalToSuperview().inset(28) + $0.height.equalTo(201) } - formButton.snp.makeConstraints { - $0.top.equalTo(icon.snp.bottom).offset(4) - $0.horizontalEdges.equalToSuperview().inset(36) - $0.height.equalTo(40) + greenButton.snp.makeConstraints { + $0.top.equalTo(icon.snp.bottom).offset(7) + $0.horizontalEdges.equalToSuperview().inset(32) + $0.height.equalTo(52) } bottomView.snp.makeConstraints { $0.horizontalEdges.bottom.equalToSuperview() - $0.height.equalTo(50) + $0.height.equalTo(58) } deprecatedButton.snp.makeConstraints { $0.centerY.equalToSuperview() - $0.leading.equalToSuperview().inset(10) + $0.leading.equalToSuperview().inset(20) $0.size.equalTo(20) } deprecatedTitle.snp.makeConstraints { - $0.leading.equalTo(deprecatedButton.snp.trailing).offset(4) + $0.leading.equalTo(deprecatedButton.snp.trailing).offset(5) $0.centerY.equalToSuperview() } closeButton.snp.makeConstraints { - $0.trailing.equalToSuperview().inset(15) + $0.trailing.equalToSuperview().inset(33) $0.centerY.equalToSuperview() } } @@ -166,7 +178,7 @@ extension CommonNotificationViewController { @objc func didFormButtonTap() { - guard let url = URL(string: MyInfoURL.googleForm.url) else { return } + guard let url = URL(string: MyInfoURL.commonAlarmModal.url) else { return } let safariView: SFSafariViewController = SFSafariViewController(url: url) safariView.delegate = self self.present(safariView, animated: true, completion: nil) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/NottodoModalViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/NottodoModalViewController.swift index 8ce4b0fd..dfab9ef6 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/NottodoModalViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/NottodoModalViewController.swift @@ -33,7 +33,7 @@ final class NottodoModalViewController: UIViewController { private var modalView = UIView() private let withdrawView = WithdrawModalView() private let quitView = QuitModalView() - private lazy var safariViewController = SFSafariViewController(url: URL(string: MyInfoURL.googleForm.url)!) + private lazy var safariViewController = SFSafariViewController(url: URL(string: MyInfoURL.commonAlarmModal.url)!) // MARK: - Life Cycle From 3643ee11633b898e4bd71ca0367961d8874b51c1 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 15:07:05 +0900 Subject: [PATCH 05/11] =?UTF-8?q?[Add]=20#232=20-=20=EC=84=B1=EC=B7=A8=20?= =?UTF-8?q?=EB=B7=B0=20=ED=95=98=EB=8B=A8=20=EC=9D=B4=EB=AF=B8=EC=A7=80=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 --- .../Global/Extensions/adjust+.swift | 8 ++++++ .../iOS-NOTTODO/Global/Literals/Numbers.swift | 8 ++++++ .../IC/ic_feedback.imageset/Contents.json | 23 ++++++++++++++++++ .../IC/ic_feedback.imageset/ic_feedback.png | Bin 0 -> 7876 bytes .../ic_feedback.imageset/ic_feedback@2x.png | Bin 0 -> 22149 bytes .../ic_feedback.imageset/ic_feedback@3x.png | Bin 0 -> 41629 bytes 6 files changed, 39 insertions(+) create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/Contents.json create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback.png create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback@2x.png create mode 100644 iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback@3x.png diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift new file mode 100644 index 00000000..bde4f6dd --- /dev/null +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift @@ -0,0 +1,8 @@ +// +// adjust+.swift +// iOS-NOTTODO +// +// Created by 강윤서 on 2/16/24. +// + +import Foundation diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift new file mode 100644 index 00000000..176ff9ac --- /dev/null +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift @@ -0,0 +1,8 @@ +// +// Numbers.swift +// iOS-NOTTODO +// +// Created by 강윤서 on 2/16/24. +// + +import Foundation diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/Contents.json b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/Contents.json new file mode 100644 index 00000000..cf776af3 --- /dev/null +++ b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "ic_feedback.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "ic_feedback@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "ic_feedback@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback.png b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffb5fb8eb78e3e8eaa33f952ead3134eb0e11e9 GIT binary patch literal 7876 zcmaJ`RaYELkR2qrLtq95w*bK{IKkcBgG+FC8!QR#?t=vgu9JK?1RH|8ySu}(KVbKv zOZs%ZRNbm``&5jYiYzt;DFy%lz?PSj(sc8TDwAu9o>83XUXImkAjl|KUjb@7-_U)})#6#DW~pS64tj*WdY-cP5BwH&}! z_Ml{0P6hL%93Sh^fjl%lTwl10!#)!fSx{NKbE(U5alUXjUIyOhY>`QN{6_W`S0_mO z1x&+xuZGr-fJ~Y~FF|YQjkJud?0gEV6xv-Xtz0>rjh1JxrM#Xjs&raz*EY5h^Y#UZ z2Hc&k_e9}R{vQVI=Ps(DE`jmxWuGMstqIQlIj^(CrC!mw&u z7pHc74N{(N4>qKP{x{82yv6sf=j__GX7m!By_&yc>&=LnX782&ata%?>oFPQ;Z+Cd zS1k*9o8^Y)f8}Wd*ynje5r$$6sk6?&q=a*r#G0ajmWYHcIh_sMXaO7LquL1c^3O7o z1ho6n@yN8Or>0kSM^@u6en2w-9VcRflz4Y?0CPDx@q&Lo+O)ZW#= z-069n9EY7xxbijBut;3veO~sKv!G zwe@HVjnz3WvM5gqqrL^!-xK4HBguv(7MQC_$rgou0TP{Z57&R95E?0{nYg#6d!mtZ zqr*HOr|zQ3^2viyF>4pN3--f)%YrqHu`QD>Tb~h!Z+oyqN~lB$j+hnBDd-l^=%8my z(|HBctqCr*mA5C_x!&p<&S>3)N&V}R-D2N+t7x!83^Q)@z&gA5fi?W6o=cND@3Bx` z0sMGL%q^>MI0u;iUbc1H|65bCuFCcT9sFJCMZ`nA6wNratnAOb>X0(xYE~@L8Q7Oa zqu1WBOnSJCTzecjotr3u8<4;&N$^jIRIm^)Z__6*j%xR2ZD9<28U*qHSePVM+1fdg6Mg+xTB*Z`_eNWdJ5SgquG2uHy2mXtM7s#F6eQ}wh4e^*@Y7^s!VH;g`>Q{gPp6K~z0TjB!wq)gx#>OW& zpbReFS}`y+4W7Jils%xR5K6a`9yX38>jO{}7-S5qX~JP}iL>b-EH#=*^~(IB6c

YH!G)uZw@>$vBdB>&nJm^o+XljF7d@*_wO3Mz}RE-*2q-|OSf zl%B1Hy&FBkdq|>08hKB&*Bh?@`i>m~r8kumdjNd#c&Qhwf_V_@m!qqmc`y$lLi-6m zh!s2qpr_=sgchT&%F2}MVhvbB^tQG%zw0Q6SVL5wfCbF80K3hY|EOuW98-9aOJ8E} z6VC8I#v4_!*3W-vyKFnLNP?v87{9k;6^}|yA8V*ov?>w?S4LSxtuV^C5Fzgr^-FSh zGX`O~xw$dhP1P{`Qh1M9F>7Z*|2*~G=f=PhG_oL*(jygDJY#oScWIPOpmqC$PL!DL zIZOSlZj=<^t~VZO1n*?ZM6~wQZ4{GI}`SAXC!8JR^;rNTUpsF?G-350a$ zy2sMMc2g(+#DQ2h$W}Khtk@aqE##_dZj;wk}}~~!D#h6 zc=uV%Di(*{7H5hB{$z48bXX+tTBShNiZSlQd8$m}fFf5IiY4>C(tj7$6@`?tU}k4$ z7d7r4f8dpSn#oNi(V7uQHZR-`AmPZAtXR~$+T)g!ePyIHbqU6AL=4ET4Ourjed`(g zawyX7SZ-Bc(JclBhP~LKXgG>(Z@H)Q1M$^TurP+E5+!4VB4=P!oPhnHuO&evLBNpi ze?SwZ0iB*sO^!_NjfRs%CL^5>=Dz!LhmF;9-yt}f_JCo9IQ~2W@dMFXLrOb}qZ##E zQhBC(|C^j)Ipym8ysWGldV&hv-7Sw#ZmdkAfe#*n6#)rt{>#gL%3XLW6u2Z`%CPs= z_3|hL6Z7x~Du2WMew%sWH_{|U-VMZ44t&g+U#|DbbDXszJpTCo z!7Qw^sEGRXzfdG0*&jfB?-Hk46W9TpQL9?qztxyA<;ks9WA5a#X;^Y2zEva~(EU9&tKCjS0-})7xKN7Xavt_fa^xCt!?eZ^`LpOl>cIW^OD( zv83&(^(Bzx_%DhD8{fFfjEOp(`wNpbR|@xO9!ck56BNBp%T1##7=6jUqvD*G7Qk)n z&lIA0oYuV_ZE%c+i002kP$`l03M0;#o)m`u`b>lUMBSA9?}|PLmCEw+v|~T(eOmkc zj%rXHC7x(y<1Bf3kRPOI*1N^2=0LX;-)B|G5vOd zXFhEZt0Zb0Zm-ePd^0G{N53c;IV97c;dSS7pGGZtA(o5)L?+3C8b><`++SXR>|G)g z0@l|+JeLIBo=qQD0N9D$eek&dd=LAt&f(1V`6WV(Wd({H!2jkl-qR%3%OUn@@xD_A zHo2iV7gfk?`;n$vV>OXR{d&!DU+I1R!4ttnwzt=_BXkO$+R~_E(Q(Yis}m6L?QU}i zix_fMv0jOkof~i9-f!7*E zx?u^UsfvE3=OZ-7+s12T1k&MkB3xg=gklD*qZ2=kZTZIEr%V4T@xp3!#-Z=$w_aa= zDNM00Rp9Bo;lv}`XNr;_GUSox9M z&R9RxlyFtgY&p=x)6qL~%Q8Spr;eRzBuRibntCCQ!kwybX5S!=!P;aM9i20Rl(t<` z+O=#Ow*uz*kcBYQ+2%m~JL&ACRM(mM4~J89Oqvl#sNB_>ykj7_kfvK_BA>Fda#YyL zGZo%{dsGDXwF8TK%MLtM3#+gWAH<-mL@H#si&VTQpGBnXI|t7ZVa`^FC7y2;)_6&Y z;(KLM+J)pYi~R{rAsXbVV)NYHjvtan>-K=qgs&J@y>EYIYb3<_F!ch zldlP4!@d&xSCn}LwbVw;@yhrC8;H?%FA_bWup`D*JUR`NY4AFt3T=?jB`9TOF+Ygi zgT|jHuh+dV@Y6t)kN&{^w=Z&5DsZ73yy+!5-RIt(j=HDUY?1u{q+gZ7maNSA(Y6cH z>enW_ST1L44j;G@W{aC{IvP%=c@>CUp3L~~Qu|LXLu4yWF+&1XiF4J~nR041Xao46f2EP)42D2j3Zd39LYY%r9 zsYc&TuM4!bVc){8$5u>$pKtI_ds~Cvfrc@iSD~+*6Bd}tE_Z9cWmakNuq3{`hF*|o zG##O?=CzR%pp7a#y}`c8W_Ju1m8Q<_3(~G6cjl1Bc{@W=r%Z+3{#j`KW*QB&@mdR- z>qW!hBOD~H*3?~8*ezba{x3KIYcmVa<#Cpr&`f`2E3uRD>wNgc&|{3<@GKFNa6ljp zpNMKiA@dT_C$BBMscF73;O)UArJ%=PiNDG_)?#Ig2OnFnD0Xm-fdx?DHBKY1Ql}A5 zC5>NFHlbOE19_+|!Gkq$fy8BYAQ_9!M&6-&LWHYSB8mRcpt7cmJ~k&u)H~Qxl5mv( zOL9Tla$D{+TPecnD`|7)SVm6T=vTw|CK7aV5Ix!}Qe~CHTwOd_?RHAu1j26)+vq`| z0&{=26-iA6sxCN<>r0LC;{&AUhTr&fCE{i-Qw{3psRWI-Fe;9-#&P~xOa4j3Nu?Qo z^uw6Dv>}^2C>E%}2LeZIyz*w&zjrEdp_eCH9@4fYXa!r0QQu8l#g8149HsHqz6`6UA*ALq{ZHrY zpP~(O6lP1;+QS0%02_g^tj>7Q-!8(jyc$Ka!62`nHt@E>_zGiKVS3{Cv1Ow55p+gX zL9f9aAXMHa9?ZYLmHD(OiMmM;v^FY9&BF5iAh$bi2cmgP%F6eHgo_F zc)P9?Qf~;8ot-HT@~BGW#a@IirJ7Pf20{}EbB%MsM<<}*{MS#c#&gNY_=5J2cxb`` zHaoopa%zphb4HaT!}zu{PpJffJg}VvVw78G-4aP$)x(!>rTvUon>gy3Ao@f<04>v#Z-- zTNS>tZvJc*XR&si&yc9dOlm)(Of1X~S_QXBU&zyoU0qEL{PKt$?XURbNJU8N-Rqgw zHMy+*mDAXw+NQcbZuVo>_Kv@%HShjKAgt6)iT$74z9|ls+nK`tmg)_Smb;}JAsde9CtfiW2^iwaB-mU zmUW#U|4s%$(ZGox+&-BPs?=tIiZLN?=Ui$5g}E;{;I3+Kn|U2&Xb0~9i%?M*El#UP zs(IdlR$VlmQcZOfzgT37J8eV(NA#ed+xSxWPlwjC*=YCFaL3)%y317ZF_OzvLOVOz zICgFp?dJGo5RNiq2xZg6g+5osZFR-J3I?6!7dDnDzE?#DDPGqOSOc*0(r2GHDm3YN zTrMs2nPo5c+Wpw?`%&!3zjFRm#Ce*iu*%$;U>)3DsAo61dWoqM_;%;^F{E1dsNjmM zS?jf#v`f;;L&acir;r~rIebJn$=>Tjm={Ec{-x2*TkGrm#meDb-ET!oB}TxqE6K^A z;XxE7uf4~RBKz|VAKq|r^l!giem9RlB6Z#K4L0>UwI(lCSNMYFY|noasC&e+gnbwA zo8;=jF0%8!i7LdsDEpYvM^ttga?0pC(Gy~P-WNAUu_KAa*isZgENHt|-x2e}EZ!}o zXMLL1`FN4J%8H-FAh2eo(QXrGO?OGfK6k1{3)cOegrY@jfJ)1&#Yx28-A&N+;jBjl zR#IsLbzu9baodZxbFwTHSptPd{JtMOts&!g+Mt*sh6TS|zUKI!EM zt{G6s2h}Flww8okJIOXtwY+O?P{9o$)*%xAh1{jaoykt8PKQ<-zH*^1;4fGfS${HW z!;dj#YH(;i3FmJTVeF^|nJu-VKduCNFOoFnGDz6x10XvaG9R?^XG#@K-Z4Pz-~K$> zg5D=Ri%~e_uD0{_BsLmyHgJIdyi>?RDfVgKk_3b&-wc`1vyE_9Xg$yW=qtiD5wnb~ zE!uHyyT`rA*KqK^MSka%YpO=VM)dR3w%t4fqVCcKflKRSE&CZbvINb)JDX;!;q0D@ zfz)Bw3y)FwKsXAvnCH>l01~@tjlwLJ$E@)!g@U}i<0r2pJyC45!mBzxGI?8Ig=@*y z@GcZuW+`iPp~Q4eAv=EcDdgG{TXsB;E$~`mKEik~p;0Bjuz9ih>-=>s90zW#*?0=O z9V-TI{;Afei&PqmhOVoUKJkj^~SIvnET2nMKavNJgz_%(S_u ze;du_|1m=v_E(aclg?=OG#3uXe$U&(iNB6HO@Y>0>vBqUdyTmUF?(DsOI~l zZay2dunxrf7^xyHHS>#gFXsAfT;(?X)+QKCE?cS#^+C5S6Pqz0L zx+lymLiyF3zWXd3i2|LkFQ{HY5Bo#i*kn4f3}hxo0R1;aGDCjJG{S?f@x@UKbJIbWr*Hmt^a3nKU1CkAbh*D zAuQPT+{{TMLx)mcQOzRad9l>NsFE`uFZHMLUvH(ix;2@|>9Gj3`ZgR_H0PzCtQH)J zEG02AZP;;hye|idy28ch*m)YPqlh`g`a9Qg8=m*S6}0s@`5TE#c|Ek&)${k7x3a}y z_9ket<@G+!j3avG^_Jh@<&w3;mfG6bSbG~63E8@205-fN!QH=W0@Wy_>R52Yl zC0+MhzIr+>WJ|HaR&yJ()lW6k!sQi3LHF>so^Q#0yyQB;Ob%^>aOS74KQ+OowR5Jo zOuS*gkFT#j>e2aOyUq9sb)lLhMr3%ZM|EXok!G1nTdKuC96KAUNP2_K_+t;}j+onF zwRg_o@S#C5p=e|m5oe6;NLteCz;81CnvUXv0-O1*A#ZZ9fSXe0BaS&R!{j>8f29v( zx(DJyp+He@h>?a}bK9sGp`t?|)GvQiPj_5b&cx(0u$Yopq%pVKQkZ!wHR5n~rl+U7 zCd*W})%2a5OdL&2_&FORE7MX_t&1{&eh(hpJsdR;znflc8%|~l7 zX?mPlb8R1F!H28s?`%Z0Pul^cPTX#e6!Vc3Mb>{rE&5BuK8I0#iB{EXyKv-bo*Cbp zt2z+j_LTB~GC0=l39h&=UM_wDkg%tDfAZK9k56WN)lt*e|IFh2-}7y-h2iN+N}_w9 ziEli%Yu@RvBJcJXKXk^xp9~PUCL`2I7D#I__3Pd5$Cvxv1S+`?8-zMP?yrbaU&peFty_P&pdA= z$Mt22oS{JDv6&0WJgy+?17d-)jEAOqpr^Etq(B<@65*y&zXAF+3|XREUi8cTMQjg8 z|BJKWOhdrlT=4?=fsfyDPG+zYt3&N^?N3J3?}KsF6x)Y~H^sYzf`QRWGUz!2{<^BC z)UC(+g}X(XcK(jlO;?3c(B=c@8xvfDq&vv0$>N=e(yx(dZ)L(^>}n6-uF9~NcCBSb z2IrIOlDz9IuTnVqbwJPAit32vf**{kk0FYK{Ha5~fq~xghpL?324NceY9sJZaIh|y zmG95V?HAC5Nk>cdoLlv~l9${5y&t~hGG$+EM>w1^ze>jOnl*)nz|3!s_Q|Na65&;@ zAQ^>3s|b_-;z$sskVK&LZ z&|D?_6gza?!t9_dxA|1)gh^)>q8A4q8e6`IzZ+*GEuHW=x?=k8d#rya#OZe@h*)gO zz^GQm`(CaeI_DFC23$WaR*rImh$Z{h2%xXAOC#ge9jc=<=2{A5sK+J;hF2+=f}Dz zpZ!i>(|O!u@NwiFgkF(vL{|3butvAG>c#VK=bbWGO+Y8!9%>&eEY^}eeSOvkniTP_V~_-&@?t%f zItLzBJyM}hoJ6botVf7FAz%N8#Ff3HJblm!v%r{I-Cg*~Z_u!#q5P8?3Bzt1ucOTH@KTd9w4()l)RKZd9{^?GN8!e|fpJISwU5KGwNF9~WskpdQ{( zZ4GB=WRA)Jnv{7_Gn|mLhFN{5^tHTka0xFoCd@xuTzz@rE!hS7?l9OD9k&ZHn&M2j zp;-PVjp2FPnUJOIMC7Mhc&>GzMhK2Pcu=+si34anEQh8VWg_Xne_C+lAy z2WfAE0sI^bur0#8z#DJPgz|AFyZHS*S2wS#)AvUZ-y2l1j0U0rx&d~3(TBa+mZB?m z_u1u%!;2w#kkQYso^wCTFjXHC`OD&Odw*CZBvku)OxE-h38x>Ow$7!+p4MkqQ7P5s zFq&%5uO@4kLwkwaytVH4`p8t-_0D3`|C2SMdw-6uD)y|v-op`<1#LT&x!wr;f7Z8j cpcl$NBpgnNL=FXSOJ{(*w2D-Xgjv}C09bik)Bpeg literal 0 HcmV?d00001 diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback@2x.png b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8d887228063ade8105e773b8d43821358c850e GIT binary patch literal 22149 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 literal 0 HcmV?d00001 diff --git a/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback@3x.png b/iOS-NOTTODO/iOS-NOTTODO/Resource/Assets/Assets.xcassets/IC/ic_feedback.imageset/ic_feedback@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce5ced0c165bf33340ff19ffed124ec850c63605 GIT binary patch literal 41629 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 NML9Lunh)l|{{v~8= Date: Fri, 16 Feb 2024 15:08:37 +0900 Subject: [PATCH 06/11] =?UTF-8?q?[Chore]=20#232=20-=20=EA=B8=B0=EA=B8=B0?= =?UTF-8?q?=20=EB=8C=80=EC=9D=91=EC=9D=84=20=EC=9C=84=ED=95=9C=20=EC=83=81?= =?UTF-8?q?=EC=88=98=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=EA=B0=92=20=EC=83=81=EC=88=98=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Global/Extensions/CGSize+.swift | 12 ++-------- .../Global/Extensions/UIScreen+.swift | 2 +- .../Global/Extensions/UIViewController+.swift | 12 ++-------- .../Global/Extensions/adjust+.swift | 23 ++++++++++++++++++- 4 files changed, 27 insertions(+), 22 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/CGSize+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/CGSize+.swift index 2e66925e..7ae3442f 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/CGSize+.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/CGSize+.swift @@ -9,21 +9,13 @@ import UIKit extension CGSize { - func getDeviceWidth() -> CGFloat { - return UIScreen.main.bounds.width - } - - func getDeviceHeight() -> CGFloat { - return UIScreen.main.bounds.height - } - /// 아이폰 13 미니(width 375)를 기준으로 레이아웃을 잡고, 기기의 width 사이즈를 곱해 대응 값을 구할 때 사용 func convertByWidthRatio(_ convert: CGFloat) -> CGFloat { - return (convert / 375) * getDeviceWidth() + return (convert / 375) * Numbers.width } /// 아이폰 13 미니(height 812)를 기준으로 레이아웃을 잡고, 기기의 height 사이즈를 곱해 대응 값을 구할 때 사용 func convertByHeightRatio(_ convert: CGFloat) -> CGFloat { - return (convert / 812) * getDeviceHeight() + return (convert / 812) * Numbers.height } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIScreen+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIScreen+.swift index d919edee..b194fc00 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIScreen+.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIScreen+.swift @@ -9,6 +9,6 @@ import UIKit extension UIScreen { var hasNotch: Bool { - return !( (UIScreen.main.bounds.width / UIScreen.main.bounds.height) > 0.5 ) + return !( (Numbers.width / Numbers.height) > 0.5 ) } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIViewController+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIViewController+.swift index 708b738d..cd67869f 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIViewController+.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/UIViewController+.swift @@ -10,14 +10,6 @@ import UIKit import SnapKit extension UIViewController { - func getDeviceWidth() -> CGFloat { - return UIScreen.main.bounds.width - } - - func getDeviceHeight() -> CGFloat { - return UIScreen.main.bounds.height - } - /// Constraint 설정 시 노치 유무로 기기를 대응하는 상황에서 사용 func constraintByNotch(_ hasNotch: CGFloat, _ noNotch: CGFloat) -> CGFloat { return UIScreen.main.hasNotch ? hasNotch : noNotch @@ -25,12 +17,12 @@ extension UIViewController { /// 아이폰 13 미니(width 375)를 기준으로 레이아웃을 잡고, 기기의 width 사이즈를 곱해 대응 값을 구할 때 사용 func convertByWidthRatio(_ convert: CGFloat) -> CGFloat { - return (convert / 375) * getDeviceWidth() + return (convert / 375) * Numbers.width } /// 아이폰 13 미니(height 812)를 기준으로 레이아웃을 잡고, 기기의 height 사이즈를 곱해 대응 값을 구할 때 사용 func convertByHeightRatio(_ convert: CGFloat) -> CGFloat { - return (convert / 812) * getDeviceHeight() + return (convert / 812) * Numbers.height } func changeRootViewController(_ viewControllerToPresent: UIViewController) { diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift index bde4f6dd..1d7e053c 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/adjust+.swift @@ -5,4 +5,25 @@ // Created by 강윤서 on 2/16/24. // -import Foundation +import UIKit + +extension CGFloat { + var adjusted: CGFloat { + let ratio: CGFloat = Numbers.width / 375 + return ratio * CGFloat(self) + } +} + +extension Int { + var adjusted: CGFloat { + let ratio: CGFloat = (Numbers.width) / 375 + return ratio * CGFloat(self) + } +} + +extension Double { + var adjusted: CGFloat { + let ratio: CGFloat = (Numbers.width) / 375 + return ratio * CGFloat(self) + } +} From 3cb94c463ea3ba7f714ac542dc57b3304c949733 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 15:11:00 +0900 Subject: [PATCH 07/11] =?UTF-8?q?[Feat]=20#232=20-=20=EC=84=B1=EC=B7=A8?= =?UTF-8?q?=EB=B7=B0=20=ED=95=98=EB=8B=A8=20=EC=97=90=EC=85=8B=EA=B3=BC=20?= =?UTF-8?q?=EB=AC=B8=EA=B5=AC=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Achievement/ViewControllers/StatisticsView.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/StatisticsView.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/StatisticsView.swift index 4b56838f..3e0214f5 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/StatisticsView.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/StatisticsView.swift @@ -38,7 +38,7 @@ extension StatisticsView { private func setUI() { totalImage.do { - $0.image = .icSNS + $0.image = .icFeedback } titleLabel.do { @@ -54,13 +54,13 @@ extension StatisticsView { addSubviews(totalImage, titleLabel) totalImage.snp.makeConstraints { - $0.top.equalToSuperview().offset(69) + $0.top.equalToSuperview().offset(18.adjusted) $0.centerX.equalToSuperview() - $0.size.equalTo(CGSize(width: 63, height: 51)) + $0.size.equalTo(127.adjusted) } titleLabel.snp.makeConstraints { - $0.top.equalTo(totalImage.snp.bottom).offset(26) + $0.top.equalTo(totalImage.snp.bottom).offset(6.adjusted) $0.centerX.equalToSuperview() } } From 0475994ec23858133494ddb48df37cb1863f4725 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 15:11:19 +0900 Subject: [PATCH 08/11] =?UTF-8?q?[Fix]=20#232=20-=20getDevice=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=83=81=EC=88=98=EA=B0=92=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj | 14 +++++++++++--- .../Global/Extensions/Design/UIImage+.swift | 1 + .../iOS-NOTTODO/Global/Literals/Numbers.swift | 7 ++++++- .../iOS-NOTTODO/Global/Literals/Strings.swift | 2 +- .../AchievementViewController.swift | 4 ++-- .../DetailAchievementViewController.swift | 2 +- .../AddMission/Cells/DateCollectionViewCell.swift | 4 +--- .../ViewControllers/AddMissionViewController.swift | 4 ++-- .../DetailCalendarViewController.swift | 2 +- .../ViewControllers/HomeDeleteViewController.swift | 2 +- .../FifthOnboardingViewController.swift | 2 +- .../FourthOnboardingViewController.swift | 2 +- 12 files changed, 29 insertions(+), 17 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj b/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj index e30e510b..5103cada 100644 --- a/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj +++ b/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj @@ -46,8 +46,8 @@ 09A1465F2A192C4900DDC308 /* WeekMissionResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A1465E2A192C4900DDC308 /* WeekMissionResponseDTO.swift */; }; 09A146652A1964B500DDC308 /* AddAnotherDayResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A146642A19649A00DDC308 /* AddAnotherDayResponseDTO.swift */; }; 09C8602D2AB14B4800C4F4B1 /* FSCalendar in Frameworks */ = {isa = PBXBuildFile; productRef = 09C8602C2AB14B4800C4F4B1 /* FSCalendar */; }; - 09CF56042B09F23800526C8C /* HomeDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CF56032B09F23800526C8C /* HomeDataSource.swift */; }; 09CF56022B09E98A00526C8C /* DetailAchieveHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CF56012B09E98A00526C8C /* DetailAchieveHeaderView.swift */; }; + 09CF56042B09F23800526C8C /* HomeDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CF56032B09F23800526C8C /* HomeDataSource.swift */; }; 09DCCD1F2A18ED76003DCF8A /* DailyMissionResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD1E2A18ED76003DCF8A /* DailyMissionResponseDTO.swift */; }; 09DCCD212A18EF43003DCF8A /* HomeSevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD202A18EF43003DCF8A /* HomeSevice.swift */; }; 09DCCD232A18EFB0003DCF8A /* HomeAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DCCD222A18EFB0003DCF8A /* HomeAPI.swift */; }; @@ -117,6 +117,8 @@ 3B5F8F8329BF90290063A7F8 /* SituationCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B5F8F8229BF90290063A7F8 /* SituationCollectionViewCell.swift */; }; 3B5F8F8929BF9EFE0063A7F8 /* AddMissionLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B5F8F8829BF9EFE0063A7F8 /* AddMissionLabel.swift */; }; 3B710A5C2A62D4AB00E95620 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 3B710A5B2A62D4AB00E95620 /* Settings.bundle */; }; + 3B80B5D52B7F304D00697250 /* adjust+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B80B5D42B7F304D00697250 /* adjust+.swift */; }; + 3B80B5D72B7F30E200697250 /* Numbers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B80B5D62B7F30E200697250 /* Numbers.swift */; }; 3B892AB82A2FBBAD00A316BC /* AddMissionService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B892AB72A2FBBAD00A316BC /* AddMissionService.swift */; }; 3B892ABB2A2FBD4C00A316BC /* RecommendSituationResponseDTO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B892ABA2A2FBD4C00A316BC /* RecommendSituationResponseDTO.swift */; }; 3B892ABE2A2FBDDE00A316BC /* AddMissionAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B892ABD2A2FBDDE00A316BC /* AddMissionAPI.swift */; }; @@ -212,8 +214,8 @@ 099FC98829B3233D005B37E6 /* CalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarView.swift; sourceTree = ""; }; 09A1465E2A192C4900DDC308 /* WeekMissionResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeekMissionResponseDTO.swift; sourceTree = ""; }; 09A146642A19649A00DDC308 /* AddAnotherDayResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAnotherDayResponseDTO.swift; sourceTree = ""; }; - 09CF56032B09F23800526C8C /* HomeDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeDataSource.swift; sourceTree = ""; }; 09CF56012B09E98A00526C8C /* DetailAchieveHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailAchieveHeaderView.swift; sourceTree = ""; }; + 09CF56032B09F23800526C8C /* HomeDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeDataSource.swift; sourceTree = ""; }; 09DCCD1E2A18ED76003DCF8A /* DailyMissionResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DailyMissionResponseDTO.swift; sourceTree = ""; }; 09DCCD202A18EF43003DCF8A /* HomeSevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeSevice.swift; sourceTree = ""; }; 09DCCD222A18EFB0003DCF8A /* HomeAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeAPI.swift; sourceTree = ""; }; @@ -280,6 +282,8 @@ 3B5F8F8229BF90290063A7F8 /* SituationCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SituationCollectionViewCell.swift; sourceTree = ""; }; 3B5F8F8829BF9EFE0063A7F8 /* AddMissionLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddMissionLabel.swift; sourceTree = ""; }; 3B710A5B2A62D4AB00E95620 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; + 3B80B5D42B7F304D00697250 /* adjust+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "adjust+.swift"; sourceTree = ""; }; + 3B80B5D62B7F30E200697250 /* Numbers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Numbers.swift; sourceTree = ""; }; 3B892AB72A2FBBAD00A316BC /* AddMissionService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddMissionService.swift; sourceTree = ""; }; 3B892ABA2A2FBD4C00A316BC /* RecommendSituationResponseDTO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecommendSituationResponseDTO.swift; sourceTree = ""; }; 3B892ABD2A2FBDDE00A316BC /* AddMissionAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddMissionAPI.swift; sourceTree = ""; }; @@ -705,6 +709,7 @@ 3B11740C2A4B574B0033DDF3 /* CALayer+.swift */, 0943A9F82A53239200614761 /* Bundle+.swift */, 3B03D0D72B0F5EF300302872 /* CGSize+.swift */, + 3B80B5D42B7F304D00697250 /* adjust+.swift */, ); path = Extensions; sourceTree = ""; @@ -1126,6 +1131,7 @@ isa = PBXGroup; children = ( 6CF4706929A71D71008D145C /* Strings.swift */, + 3B80B5D62B7F30E200697250 /* Numbers.swift */, ); path = Literals; sourceTree = ""; @@ -1357,6 +1363,7 @@ 6CF4705B29A68EA9008D145C /* URLConstant.swift in Sources */, 3BD3B5C829B8F82C00D3575B /* AddMissionTextFieldView.swift in Sources */, 3B14518629C618920013DFB4 /* ActionCollectionViewCell.swift in Sources */, + 3B80B5D72B7F30E200697250 /* Numbers.swift in Sources */, 092E04B129BD9C86008A5892 /* MissionDetailCollectionViewCell.swift in Sources */, 6CF4706D29A739D9008D145C /* RecommendViewController.swift in Sources */, 3BC1A27429C9AF500088376B /* MissionHistoryCollectionViewCell.swift in Sources */, @@ -1421,6 +1428,7 @@ 6CF4706529A690E5008D145C /* NetworkBase.swift in Sources */, 099FC98129B3094F005B37E6 /* WeekMonthFSCalendar.swift in Sources */, 6C16016429C5E37D005AE3F5 /* MyInfoAccountStackView.swift in Sources */, + 3B80B5D52B7F304D00697250 /* adjust+.swift in Sources */, 09F6718229CAD86100708725 /* OnboardingCollectionViewCell.swift in Sources */, 6CF4707029A73A15008D145C /* RecommendActionViewController.swift in Sources */, 0943A9F92A53239200614761 /* Bundle+.swift in Sources */, @@ -1846,4 +1854,4 @@ /* End XCSwiftPackageProductDependency section */ }; rootObject = 3B027A6C299C31B500BEB65C /* Project object */; -} \ No newline at end of file +} diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift index dcaec932..200c2dc1 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Extensions/Design/UIImage+.swift @@ -61,6 +61,7 @@ extension UIImage { static var icBell: UIImage { UIImage(named: "ic_bell")! } static var icCircle: UIImage { UIImage(named: "acceptCircle")! } static var icStarbucks: UIImage { UIImage(named: "ic_starbucks")! } + static var icFeedback: UIImage { UIImage(named: "ic_feedback")! } // image diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift index 176ff9ac..7dc038a8 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Numbers.swift @@ -5,4 +5,9 @@ // Created by 강윤서 on 2/16/24. // -import Foundation +import UIKit + +struct Numbers { + static let width: CGFloat = UIScreen.main.bounds.width + static let height: CGFloat = UIScreen.main.bounds.height +} diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift index f4c002ef..d3fc239f 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift @@ -47,7 +47,7 @@ struct I18N { /// Achievement static let achievement = "성취" - static let total = "<매달 낫투두 성취 공유하고 선물받자!>\n인스타 @nottodo_official을 확인해주세요 :)" + static let total = "남겨주신 피드백으로\n새로운 기능을 업데이트 할 예정이에요 :)" /// Detail diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/AchievementViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/AchievementViewController.swift index 1f998bc4..28b52b0c 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/AchievementViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/AchievementViewController.swift @@ -97,13 +97,13 @@ extension AchievementViewController { monthCalendar.snp.makeConstraints { $0.top.equalTo(achievementLabel.snp.bottom).offset(22) $0.directionalHorizontalEdges.equalTo(safeArea).inset(15) - $0.height.equalTo((getDeviceWidth()-30)*1.1) + $0.height.equalTo((Numbers.width-30)*1.1) } statisticsView.snp.makeConstraints { $0.top.equalTo(monthCalendar.snp.bottom) $0.directionalHorizontalEdges.equalTo(safeArea).inset(15) - $0.height.equalTo((getDeviceWidth()-30)*0.6) + $0.height.equalTo((Numbers.width-30)*0.6) $0.bottom.equalTo(scrollView.snp.bottom).inset(20) } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/DetailAchievementViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/DetailAchievementViewController.swift index 697ffb67..a2bc0d21 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/DetailAchievementViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Achievement/ViewControllers/DetailAchievementViewController.swift @@ -88,7 +88,7 @@ extension DetailAchievementViewController { collectionView.snp.makeConstraints { $0.center.equalTo(safeArea) $0.directionalHorizontalEdges.equalTo(safeArea).inset(15) - $0.height.equalTo(getDeviceWidth()*1.1) + $0.height.equalTo(Numbers.width*1.1) } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/Cells/DateCollectionViewCell.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/Cells/DateCollectionViewCell.swift index dab64b92..213e292c 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/Cells/DateCollectionViewCell.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/Cells/DateCollectionViewCell.swift @@ -23,7 +23,6 @@ final class DateCollectionViewCell: UICollectionViewCell, AddMissionMenu { private lazy var tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: today)! private var dateList: [String] = [] private var missionType: MissionType? - private var deviceWidth = UIScreen.main.bounds.width // MARK: - UI Components @@ -57,8 +56,7 @@ final class DateCollectionViewCell: UICollectionViewCell, AddMissionMenu { func setFoldState(_ state: FoldState) { fold = state - let deviceWidth = UIScreen.main.bounds.width - let cellWidth = deviceWidth * (345/375) + let cellWidth = Numbers.width * (345/375) let cellHeight = cellWidth * (470/345) missionCellHeight?(state == .folded ? 54 : cellHeight) updateUI() diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/ViewControllers/AddMissionViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/ViewControllers/AddMissionViewController.swift index 295494a4..543b50a2 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/ViewControllers/AddMissionViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/AddMission/ViewControllers/AddMissionViewController.swift @@ -216,7 +216,7 @@ extension AddMissionViewController { let layout = UICollectionViewFlowLayout() layout.scrollDirection = .vertical layout.minimumLineSpacing = 14 - layout.footerReferenceSize = CGSize(width: getDeviceWidth(), height: 319) + layout.footerReferenceSize = CGSize(width: Numbers.width, height: 319) return layout } @@ -382,7 +382,7 @@ extension AddMissionViewController: UICollectionViewDataSource { extension AddMissionViewController: UICollectionViewDelegateFlowLayout { func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { - let cellWidth: CGFloat = UIScreen.main.bounds.width - 40 + let cellWidth: CGFloat = Numbers.width - 40 let height = heightList[indexPath.row] return CGSize(width: cellWidth, height: height) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/DetailCalendarViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/DetailCalendarViewController.swift index 0091f8d6..42921fef 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/DetailCalendarViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/DetailCalendarViewController.swift @@ -118,7 +118,7 @@ extension DetailCalendarViewController { monthCalendar.snp.makeConstraints { $0.centerY.equalTo(safeArea) $0.directionalHorizontalEdges.equalTo(safeArea).inset(15) - $0.height.equalTo((getDeviceWidth()-30)*1.2) + $0.height.equalTo((Numbers.width-30)*1.2) } subLabel.snp.makeConstraints { diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/HomeDeleteViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/HomeDeleteViewController.swift index 92f94bf1..72b94a45 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/HomeDeleteViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Home/ViewControllers/HomeDeleteViewController.swift @@ -64,7 +64,7 @@ extension HomeDeleteViewController { deleteModalView.snp.makeConstraints { $0.directionalHorizontalEdges.equalTo(safeArea).inset(52) - $0.height.equalTo((getDeviceWidth() - 104)*1.09) + $0.height.equalTo((Numbers.width - 104)*1.09) $0.center.equalTo(safeArea) } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FifthOnboardingViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FifthOnboardingViewController.swift index 6c89b37f..9ba60cbc 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FifthOnboardingViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FifthOnboardingViewController.swift @@ -96,7 +96,7 @@ extension FifthOnboardingViewController { } gradientView.snp.makeConstraints { $0.bottom.equalTo(nextButton.snp.top).offset(-90) - $0.top.equalTo(safeArea).offset(getDeviceHeight()*0.5) + $0.top.equalTo(safeArea).offset(Numbers.height*0.5) $0.directionalHorizontalEdges.equalTo(safeArea) } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FourthOnboardingViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FourthOnboardingViewController.swift index 4f2f5c5e..f38c3c7a 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FourthOnboardingViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Onboarding/ViewControllers/FourthOnboardingViewController.swift @@ -83,7 +83,7 @@ extension FourthOnboardingViewController { } gradientView.snp.makeConstraints { $0.bottom.equalTo(nextButton.snp.top) - $0.top.equalTo(safeArea).offset(getDeviceHeight()*0.5) + $0.top.equalTo(safeArea).offset(Numbers.height*0.5) $0.directionalHorizontalEdges.equalTo(safeArea) } } From c5c1819416e2ca2569b0df213571eb074efa8585 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Fri, 16 Feb 2024 15:39:58 +0900 Subject: [PATCH 09/11] =?UTF-8?q?[Feat]=20#230=20-=20=EC=95=B1=20=ED=94=BC?= =?UTF-8?q?=EB=93=9C=EB=B0=B1=20=EC=B0=BD=EA=B5=AC=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?-=20AnalyticsEvent=20=EC=B6=94=EA=B0=80=20-=20=EC=95=B1=20?= =?UTF-8?q?=ED=94=BC=EB=93=9C=EB=B0=B1=20=EC=B0=BD=EA=B5=AC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iOS-NOTTODO/Global/Enum/AnalyticsEvent.swift | 1 + iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift | 4 +++- .../iOS-NOTTODO/Global/Literals/Strings.swift | 7 +++++++ .../Presentation/MyInfo/Model/MyInfoModel.swift | 13 +++++++------ .../Viewcontrollers/MyInfoViewController.swift | 11 ++++------- 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/AnalyticsEvent.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/AnalyticsEvent.swift index f25d6069..8abac0aa 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/AnalyticsEvent.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/AnalyticsEvent.swift @@ -200,6 +200,7 @@ enum AnalyticsEvent { case clickGuide = "click_guide" case clickFaq = "click_faq" case clickNotice = "click_notice" + case clickSuggestion = "click_suggestion" case clickQuestion = "click_question" case clickTerms = "click_terms" case clickOpenSource = "click_opensource" diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift index b8b554f4..ab1c676b 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/MyInfoURL.swift @@ -10,7 +10,7 @@ import Foundation import SafariServices enum MyInfoURL { - case guid, faq, notice, question, service, personalInfo, googleForm + case guid, faq, notice, suggestoin, question, service, personalInfo, googleForm var url: String { switch self { case .guid: @@ -19,6 +19,8 @@ enum MyInfoURL { return "https://teamnottodo.notion.site/a6ef7036bde24e289e576ace099f39dc" case .notice: return "https://teamnottodo.notion.site/a5dbb310ec1d43baae02b7e9bf0b3411" + case .suggestoin: + return "https://forms.gle/xKq4oV8u7TQawKtE6" case .question: return "http://pf.kakao.com/_fUIQxj/chat" case .service: diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift index f4c002ef..e96422ef 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Literals/Strings.swift @@ -118,6 +118,13 @@ struct I18N { static let withdraw = "회원 탈퇴" static let logoutAlertTitle = "로그아웃 하시겠습니까?" static let logoutAlertmessage = "로그아웃을 하면\n다른 기기와 낫투두 기록을 연동하지 못해요." + static let guide = "낫투두 가이드" + static let oftenQuestion = "자주 묻는 질문" + static let notice = "공지사항" + static let sendFeedback = "의견 보내기" + static let inquiry = "1:1 문의" + static let version = "버전 정보" + static let policies = "약관 및 정책" /// Onboarding diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift index 7396ce45..b7f39ca1 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift @@ -18,12 +18,13 @@ struct InfoModel: Hashable { user: UserDefaults.standard.bool(forKey: DefaultKeys.isAppleLogin) ? KeychainUtil.getAppleUsername() : KeychainUtil.getKakaoNickname(), email: UserDefaults.standard.bool(forKey: DefaultKeys.isAppleLogin) ? KeychainUtil.getAppleEmail() : KeychainUtil.getKakaoEmail())] - static let support: [InfoModel] = [InfoModel(image: .icGuide, title: "낫투두 가이드"), - InfoModel(image: .icQuestion1, title: "자주 묻는 질문") + static let support: [InfoModel] = [InfoModel(image: .icGuide, title: I18N.guide), + InfoModel(image: .icQuestion1, title: I18N.oftenQuestion) ] - static let info: [InfoModel] = [InfoModel(title: "공지사항"), - InfoModel(title: "문의하기"), - InfoModel(title: "약관 및 정책") + static let info: [InfoModel] = [InfoModel(title: I18N.notice), + InfoModel(title: I18N.sendFeedback), + InfoModel(title: I18N.inquiry), + InfoModel(title: I18N.policies) ] - static func version() -> [InfoModel] { return [InfoModel(title: "버전 정보 "+(Utils.version ?? "1.0.0"))] } + static func version() -> [InfoModel] { return [InfoModel(title: I18N.version+(Utils.version ?? "1.0.0"))] } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Viewcontrollers/MyInfoViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Viewcontrollers/MyInfoViewController.swift index fff1a586..dfe6d21a 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Viewcontrollers/MyInfoViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Viewcontrollers/MyInfoViewController.swift @@ -109,8 +109,7 @@ extension MyInfoViewController { }) dataSource?.supplementaryViewProvider = { collectionView, _, indexPath in - return collectionView.dequeueConfiguredReusableSupplementary(using: headerRegistration, - for: indexPath) + return collectionView.dequeueConfiguredReusableSupplementary(using: headerRegistration, for: indexPath) } } @@ -169,8 +168,8 @@ extension MyInfoViewController: UICollectionViewDelegate { urls: [.guid, .faq]) case 2: infoSectionSelection(for: indexPath, - events: [.clickNotice, .clickQuestion, .clickTerms], - urls: [.notice, .question, .service]) + events: [.clickNotice, .clickSuggestion, .clickQuestion, .clickTerms], + urls: [.notice, .suggestoin, .question, .service]) default: return } @@ -189,9 +188,7 @@ extension MyInfoViewController: UICollectionViewDelegate { events: [AnalyticsEvent.MyInfo], urls: [MyInfoURL]) { guard let item = urls.indices.contains(indexPath.item) ? urls[indexPath.item] : nil, - let event = events.indices.contains(indexPath.item) ? events[indexPath.item] : nil else { - return - } + let event = events.indices.contains(indexPath.item) ? events[indexPath.item] : nil else { return } sendAnalyticsEvent(event) { Utils.myInfoUrl(vc: self, url: item.url) From 64cf2b172306c55097b89f77dca9ab2ec56a7873 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Thu, 29 Feb 2024 00:50:31 +0900 Subject: [PATCH 10/11] =?UTF-8?q?[Chore]=20#236=20-=20UI=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommonNotificationViewController.swift | 34 +++++++++---------- .../MyInfo/Model/MyInfoModel.swift | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift index a158d0dd..c34f6e29 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/Common/Modal/CommonNotificationViewController.swift @@ -49,7 +49,7 @@ extension CommonNotificationViewController { backgroundView.do { $0.backgroundColor = .white - $0.layer.cornerRadius = 20 + $0.layer.cornerRadius = 15 } titleLabel.do { @@ -84,7 +84,7 @@ extension CommonNotificationViewController { bottomView.do { $0.backgroundColor = .gray5 $0.layer.maskedCorners = [.layerMinXMaxYCorner, .layerMaxXMaxYCorner] - $0.layer.cornerRadius = 20 + $0.layer.cornerRadius = 15 } blackButton.do { @@ -126,46 +126,46 @@ extension CommonNotificationViewController { bottomView.addSubviews(deprecatedButton, deprecatedTitle, closeButton) backgroundView.snp.makeConstraints { - $0.width.equalTo(312) - $0.height.equalTo(459) + $0.width.equalTo(278.adjusted) + $0.height.equalTo(408.adjusted) $0.center.equalToSuperview() } titleLabel.snp.makeConstraints { - $0.top.equalToSuperview().inset(30) - $0.leading.equalToSuperview().inset(32) + $0.top.equalToSuperview().inset(17.adjusted) + $0.leading.equalToSuperview().inset(15.adjusted) } icon.snp.makeConstraints { - $0.top.equalTo(titleLabel.snp.bottom).offset(4) - $0.horizontalEdges.equalToSuperview().inset(28) - $0.height.equalTo(201) + $0.top.equalTo(titleLabel.snp.bottom).offset(6.adjusted) + $0.horizontalEdges.equalToSuperview().inset(29.adjusted) + $0.height.equalTo(173.adjusted) } greenButton.snp.makeConstraints { - $0.top.equalTo(icon.snp.bottom).offset(7) - $0.horizontalEdges.equalToSuperview().inset(32) - $0.height.equalTo(52) + $0.top.equalTo(icon.snp.bottom).offset(9.adjusted) + $0.horizontalEdges.equalToSuperview().inset(15.adjusted) + $0.height.equalTo(52.adjusted) } bottomView.snp.makeConstraints { $0.horizontalEdges.bottom.equalToSuperview() - $0.height.equalTo(58) + $0.height.equalTo(50.adjusted) } deprecatedButton.snp.makeConstraints { $0.centerY.equalToSuperview() - $0.leading.equalToSuperview().inset(20) - $0.size.equalTo(20) + $0.leading.equalToSuperview().inset(10.adjusted) + $0.size.equalTo(20.adjusted) } deprecatedTitle.snp.makeConstraints { - $0.leading.equalTo(deprecatedButton.snp.trailing).offset(5) + $0.leading.equalTo(deprecatedButton.snp.trailing).offset(6.adjusted) $0.centerY.equalToSuperview() } closeButton.snp.makeConstraints { - $0.trailing.equalToSuperview().inset(33) + $0.trailing.equalToSuperview().inset(23.adjusted) $0.centerY.equalToSuperview() } } diff --git a/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift b/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift index b7f39ca1..68c5f2f7 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Presentation/MyInfo/Model/MyInfoModel.swift @@ -26,5 +26,5 @@ struct InfoModel: Hashable { InfoModel(title: I18N.inquiry), InfoModel(title: I18N.policies) ] - static func version() -> [InfoModel] { return [InfoModel(title: I18N.version+(Utils.version ?? "1.0.0"))] } + static func version() -> [InfoModel] { return [InfoModel(title: I18N.version + " " + (Utils.version ?? "1.0.0"))] } } From 20d7d0f57f36341d104457f23d366e4b301e1b07 Mon Sep 17 00:00:00 2001 From: yungu0010 Date: Thu, 29 Feb 2024 00:50:54 +0900 Subject: [PATCH 11/11] =?UTF-8?q?[Chore]=20#236=20-=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=95=84=EC=9B=83=20=EC=8B=9C=20=EC=9C=A0=EC=A0=80=EB=94=94?= =?UTF-8?q?=ED=8F=B4=ED=8A=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj | 8 ++++---- iOS-NOTTODO/iOS-NOTTODO/Global/Enum/KeychainUtil.swift | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj b/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj index 0677c73b..8d31be38 100644 --- a/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj +++ b/iOS-NOTTODO/iOS-NOTTODO.xcodeproj/project.pbxproj @@ -1595,7 +1595,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; GENERATE_INFOPLIST_FILE = YES; @@ -1610,7 +1610,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.3; + MARKETING_VERSION = 1.0.4; PRODUCT_BUNDLE_IDENTIFIER = "nottodo.iOS-NOTTODO"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1633,7 +1633,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = CQJ9UKUU35; GENERATE_INFOPLIST_FILE = YES; @@ -1648,7 +1648,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.3; + MARKETING_VERSION = 1.0.4; PRODUCT_BUNDLE_IDENTIFIER = "nottodo.iOS-NOTTODO"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/KeychainUtil.swift b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/KeychainUtil.swift index f82f4efb..82c40c0d 100644 --- a/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/KeychainUtil.swift +++ b/iOS-NOTTODO/iOS-NOTTODO/Global/Enum/KeychainUtil.swift @@ -63,5 +63,6 @@ public final class KeychainUtil { UserDefaults.standard.removeObject(forKey: DefaultKeys.socialToken) UserDefaults.standard.removeObject(forKey: DefaultKeys.accessToken) + UserDefaults.standard.removeObject(forKey: DefaultKeys.isDeprecatedBtnClicked) } }