From f3e96cbad19a13bcf065580ba98ac2f3dceb5d69 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Fri, 14 Jun 2024 17:41:18 +0900 Subject: [PATCH 01/22] =?UTF-8?q?feat:=20DateTimePickerView=20=EC=96=B4?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EB=B7=B0=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DateTimePicker/DateTimePickerView.swift | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift b/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift index 4fa4fc2..1d38203 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift @@ -34,10 +34,10 @@ struct DateTimePickerView: View { store.send(.todayButtonTapped) }, label: { Text("오늘") - .font(.climeetFontTitle3()) + .font(.climeetFontTitle4()) .foregroundColor( store.isSelectedDateToday ? - Color(.levelColorWhite) + Color(.starNotfilled) : Color(.levelColorBlack) ) }) @@ -45,26 +45,26 @@ struct DateTimePickerView: View { .frame(maxWidth: .infinity) .background( store.isSelectedDateToday ? - Color(red: 103/255, green: 103/255, blue: 103/255) + Color(red: 103/255, green: 103/255, blue: 103/255) // TODO: 미존재 103 : Color(.climeetMain) ) .cornerRadius(5) Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) + .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 .padding(.top, 10) DateTimePicker( selection: $store.selectedDate.sending(\.dateChanged), - textColor: UIColor(red: 198/255, green: 198/255, blue: 198/255, alpha: 1.0), + textColor: UIColor.starNotfilled, pickerMode: .date ) .frame(maxWidth: .infinity) Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) + .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 .padding(.top, -10) Spacer() @@ -77,31 +77,31 @@ struct DateTimePickerView: View { store.send(.cancelButtonTapped) }, label: { Text("취소") - .font(.climeetFontTitle3()) + .font(.climeetFontTitle4_5()) .foregroundColor(.levelColorWhite) }) .frame(height: 48) .frame(maxWidth: .infinity) - .background(Color(red: 103/255, green: 103/255, blue: 103/255)) + .background(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 .cornerRadius(5) Button(action: { store.send(.dateConfirmButtonTapped) }, label: { Text("확인") - .font(.climeetFontTitle3()) + .font(.climeetFontTitle4_5()) .foregroundColor(.levelColorBlack) }) .frame(height: 48) .frame(maxWidth: .infinity) - .background(Color(red: 190/255, green: 223/255, blue: 34/255)) + .background(.climeetMain) .cornerRadius(5) } Spacer() } .frame(maxWidth: .infinity, maxHeight: .infinity) .padding(.horizontal, 21.5) - .background(Color(red: 51/255, green: 51/255, blue: 51/255)) + .background(.text09) } else { VStack { @@ -125,16 +125,16 @@ struct DateTimePickerView: View { Button(action: { store.send(.startTimeButtonTapped) }, label: { - VStack { + VStack(spacing: 4) { Text("시작") - .font(.climeetFontTitle3()) + .font(.climeetFontTitle4()) .foregroundColor(.levelColorWhite) Text( DateFormatter.koreanHourMinuteFormatter.string( from: store.selectedStartTime ) ) - .font(.climeetFontTitle3()) + .font(.climeetFontParagraph2()) .foregroundColor( store.isStartPickerActive ? .climeetMain : .levelColorWhite @@ -143,22 +143,22 @@ struct DateTimePickerView: View { }) .frame(height: 75) .frame(maxWidth: .infinity) - .background(Color(red: 111/255, green: 111/255, blue: 111/255)) + .background(.text07) .cornerRadius(15) Button(action: { store.send(.endTimeButtonTapped) }, label: { - VStack { + VStack(spacing: 4) { Text("종료") - .font(.climeetFontTitle3()) + .font(.climeetFontTitle4()) .foregroundColor(.levelColorWhite) Text( DateFormatter.koreanHourMinuteFormatter.string( from: store.selectedEndTime ) ) - .font(.climeetFontTitle3()) + .font(.climeetFontParagraph2()) .foregroundColor( !store.isStartPickerActive ? .climeetMain : .levelColorWhite @@ -167,14 +167,14 @@ struct DateTimePickerView: View { }) .frame(height: 75) .frame(maxWidth: .infinity) - .background(Color(red: 111/255, green: 111/255, blue: 111/255)) + .background(.text07) .cornerRadius(15) } .padding(.horizontal, 13.5) Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) + .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 .padding(.top, 10) DateTimePicker( @@ -182,14 +182,14 @@ struct DateTimePickerView: View { store.isStartPickerActive ? $store.selectedStartTime.sending(\.timeChanged) : $store.selectedEndTime.sending(\.timeChanged), - textColor: UIColor(red: 198/255, green: 198/255, blue: 198/255, alpha: 1.0), + textColor: UIColor.starNotfilled, pickerMode: .time ) .frame(maxWidth: .infinity) Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) + .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 .padding(.top, 10) } @@ -198,24 +198,24 @@ struct DateTimePickerView: View { store.send(.cancelButtonTapped) }, label: { Text("취소") - .font(.climeetFontTitle3()) + .font(.climeetFontTitle4()) .foregroundColor(.levelColorWhite) }) .frame(height: 48) .frame(maxWidth: .infinity) - .background(Color(red: 103/255, green: 103/255, blue: 103/255)) + .background(.text07) .cornerRadius(5) Button(action: { store.send(.timeConfirmButtonTapped) }, label: { Text("확인") - .font(.climeetFontTitle3()) + .font(.climeetFontTitle4()) .foregroundColor(.levelColorBlack) }) .frame(height: 48) .frame(maxWidth: .infinity) - .background(Color(red: 190/255, green: 223/255, blue: 34/255)) + .background(.climeetMain) .cornerRadius(5) } @@ -223,7 +223,7 @@ struct DateTimePickerView: View { } .frame(maxWidth: .infinity, maxHeight: .infinity) .padding(.horizontal, 21.5) - .background(Color(red: 51/255, green: 51/255, blue: 51/255)) + .background(.text09) } } } From 88c7cad6d0eb711511f2baccbbc21b583e8a4776 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Fri, 14 Jun 2024 17:46:29 +0900 Subject: [PATCH 02/22] =?UTF-8?q?feat:=20ActivityRecordView=20=EC=96=B4?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EB=B7=B0=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/ActivityRecord/ActivityRecordView.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/ActivityRecordView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/ActivityRecordView.swift index bc3bde0..f6f05b4 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/ActivityRecordView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/ActivityRecordView.swift @@ -50,7 +50,7 @@ struct ActivityRecordView: View { ) } .frame(maxWidth: .infinity, minHeight: 48) - .background(Color(red: 61/255, green: 61/255, blue: 61/255)) + .background(.text08) .cornerRadius(5) } .padding(.leading, 28) @@ -70,9 +70,10 @@ struct ActivityRecordView: View { ) } .frame(maxWidth: .infinity, minHeight: 48) - .background(Color(red: 61/255, green: 61/255, blue: 61/255)) + .background(.text08) .cornerRadius(5) } else { + // TODO: 캘린더 Text("안녕하세요") .foregroundColor(.red) } @@ -83,7 +84,7 @@ struct ActivityRecordView: View { } .frame(maxWidth: .infinity, maxHeight: .infinity) } - .background(Color(red: 51/255, green: 51/255, blue: 51/255)) + .background(.text09) .toolbar { ToolbarItem(placement: .topBarLeading) { Image("activity_close") @@ -91,7 +92,7 @@ struct ActivityRecordView: View { } } .toolbarBackground( - Color(red: 51/255, green: 51/255, blue: 51/255), + Color(.text09), for: .navigationBar ) } destination: { store in From e3dab786e04f2f728c51c95c735594596d988e17 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Fri, 14 Jun 2024 17:49:36 +0900 Subject: [PATCH 03/22] =?UTF-8?q?feat:=20ClimbingSetupButton=20=EC=96=B4?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EB=B7=B0=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityRecord/View/ClimbingSetupButton.swift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupButton.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupButton.swift index 95006a7..e503cef 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupButton.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupButton.swift @@ -19,8 +19,7 @@ struct ClimbingSetupButton: View { Text(isEmpty ? placeholderText : text) .font(.climeetFontParagraph2()) .foregroundColor( - isEmpty ? Color(red: 198/255, green: 198/255, blue: 198/255) - : .levelColorWhite + isEmpty ? .starNotfilledEyes : .levelColorWhite ) .padding(.leading, 18) @@ -31,7 +30,7 @@ struct ClimbingSetupButton: View { } }) .frame(maxWidth: .infinity, minHeight: 48) - .background(Color(red: 61/255, green: 61/255, blue: 61/255)) + .background(.text08) .cornerRadius(5) } } From 2d7fc1ff020cb0c405e34e046fecb909426241bd Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Fri, 14 Jun 2024 17:50:58 +0900 Subject: [PATCH 04/22] =?UTF-8?q?feat:=20ClimbingSetupView=20=EC=96=B4?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EB=B7=B0=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/ActivityRecord/View/ClimbingSetupView.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupView.swift index 80ffdd6..5c845a2 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityRecord/View/ClimbingSetupView.swift @@ -17,8 +17,7 @@ struct ClimbingSetupView: View { Text(isEmpty ? placeholderText : text) .font(.climeetFontParagraph2()) .foregroundColor( - isEmpty ? Color(red: 198/255, green: 198/255, blue: 198/255) - : .levelColorWhite + isEmpty ? .starNotfilledEyes : .levelColorWhite ) .padding(.leading, 18) Spacer() From c728d4bcfd1dab70eaf3a89ef9f25e99ac6347e9 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Fri, 14 Jun 2024 18:00:43 +0900 Subject: [PATCH 05/22] =?UTF-8?q?feat:=20SearchView=20=EC=96=B4=ED=8A=B8?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Climeet-iOS/Presentation/Search/SearchView.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/Search/SearchView.swift b/Climeet-iOS/Climeet-iOS/Presentation/Search/SearchView.swift index c1ebd93..fb94d68 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/Search/SearchView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/Search/SearchView.swift @@ -28,7 +28,7 @@ struct SearchView: View { "", text: $store.keyword.sending(\.keywordChanged), prompt: Text("암장검색하기") - .foregroundColor(Color(red: 139/255, green: 139/255, blue: 139/255)) + .foregroundColor(.levelColorGray) ) .accentColor(.climeetMain) .foregroundColor(.white) @@ -37,7 +37,7 @@ struct SearchView: View { .frame(maxWidth: .infinity, minHeight: 36) .background( RoundedRectangle(cornerRadius: 8) - .fill(Color(red: 61/255, green: 61/255, blue: 61/255))) + .fill(Color.text08)) .overlay( HStack { Image(systemName: "magnifyingglass") @@ -61,7 +61,7 @@ struct SearchView: View { Text("검색 결과가 없어요.\n다른 검색어로 검색해 보세요!") .font(.climeetFontParagraph2()) - .foregroundColor(Color(red: 139/255, green: 139/255, blue: 139/255)) + .foregroundColor(.text06) .multilineTextAlignment(.center) Spacer() } @@ -73,7 +73,7 @@ struct SearchView: View { Section { Text("홈짐") .foregroundColor(.levelColorWhite) - .font(.climeetFontTitle4()) + .font(.climeetFontParagraph1()) .listRowBackground(Color.clear) ForEach(store.homeGyms) { gym in @@ -129,7 +129,7 @@ struct SearchView: View { .frame(width: 77, height: 24, alignment: .center) .font(.climeetFontCaptionText3()) .foregroundColor(.levelColorBlack) - .background(Color.climeetMain) + .background(.climeetMain) .cornerRadius(8) } .listRowInsets(EdgeInsets(top: 25, leading: 22, bottom: 25, trailing: 22)) @@ -144,7 +144,7 @@ struct SearchView: View { } } } - .background(Color.init(red: 51/255, green: 51/255, blue: 51/255)) + .background(.text09) .toolbar(.hidden, for: .automatic) } } From 1bb339b9176a3dd898a58f3525261b591d1c205e Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Fri, 14 Jun 2024 18:09:44 +0900 Subject: [PATCH 06/22] =?UTF-8?q?feat:=20DateTimePickerView=20=EC=96=B4?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EB=B7=B0=ED=8A=B8=20=EC=88=98=EC=A0=95=20(Bu?= =?UTF-8?q?tton=20Color)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DateTimePicker/DateTimePickerView.swift | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift b/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift index 1d38203..598fa14 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/DateTimePicker/DateTimePickerView.swift @@ -11,6 +11,13 @@ import ComposableArchitecture struct DateTimePickerView: View { @Bindable var store: StoreOf + /// DateTimePickerView에서만 사용됨 + private let buttonAndDivideLineColor = Color( + red: 103 / 255, + green: 103 / 255, + blue: 103 / 255 + ) + var body: some View { if store.sheetType == .datePicker { VStack { @@ -44,15 +51,14 @@ struct DateTimePickerView: View { .frame(height: 41) .frame(maxWidth: .infinity) .background( - store.isSelectedDateToday ? - Color(red: 103/255, green: 103/255, blue: 103/255) // TODO: 미존재 103 + store.isSelectedDateToday ? self.buttonAndDivideLineColor : Color(.climeetMain) ) .cornerRadius(5) Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 + .foregroundColor(self.buttonAndDivideLineColor) .padding(.top, 10) DateTimePicker( @@ -64,7 +70,7 @@ struct DateTimePickerView: View { Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 + .foregroundColor(self.buttonAndDivideLineColor) .padding(.top, -10) Spacer() @@ -82,7 +88,7 @@ struct DateTimePickerView: View { }) .frame(height: 48) .frame(maxWidth: .infinity) - .background(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 + .background(self.buttonAndDivideLineColor) .cornerRadius(5) Button(action: { @@ -174,7 +180,7 @@ struct DateTimePickerView: View { Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 + .foregroundColor(self.buttonAndDivideLineColor) .padding(.top, 10) DateTimePicker( @@ -189,7 +195,7 @@ struct DateTimePickerView: View { Rectangle() .frame(height: 1) - .foregroundColor(Color(red: 103/255, green: 103/255, blue: 103/255)) // TODO: 미존재 103 + .foregroundColor(self.buttonAndDivideLineColor) .padding(.top, 10) } From 2d577b0bafdbca979b5e66068ecb9e1c8ea51deb Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Sun, 16 Jun 2024 01:50:08 +0900 Subject: [PATCH 07/22] =?UTF-8?q?feat:=20Asset=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Icons/ContentTab/Contents.json | 6 +++++ .../content_activity.imageset/Contents.json | 23 ++++++++++++++++++ .../date_range@1x.png | Bin 0 -> 277 bytes .../date_range@2x.png | Bin 0 -> 369 bytes .../date_range@3x.png | Bin 0 -> 490 bytes .../Contents.json | 23 ++++++++++++++++++ .../date_range@1x.png | Bin 0 -> 357 bytes .../date_range@2x.png | Bin 0 -> 449 bytes .../date_range@3x.png | Bin 0 -> 594 bytes .../content_home.imageset/Contents.json | 23 ++++++++++++++++++ .../content_home.imageset/home@1x.png | Bin 0 -> 329 bytes .../content_home.imageset/home@2x.png | Bin 0 -> 514 bytes .../content_home.imageset/home@3x.png | Bin 0 -> 706 bytes .../Contents.json | 23 ++++++++++++++++++ .../home@1x.png | Bin 0 -> 458 bytes .../home@2x.png | Bin 0 -> 733 bytes .../home@3x.png | Bin 0 -> 949 bytes .../content_mypage.imageset/Contents.json | 23 ++++++++++++++++++ .../content_mypage.imageset/person@1x.png | Bin 0 -> 378 bytes .../content_mypage.imageset/person@2x.png | Bin 0 -> 620 bytes .../content_mypage.imageset/person@3x.png | Bin 0 -> 849 bytes .../Contents.json | 23 ++++++++++++++++++ .../person@1x.png | Bin 0 -> 551 bytes .../person@2x.png | Bin 0 -> 875 bytes .../person@3x.png | Bin 0 -> 1213 bytes .../content_shorts.imageset/Contents.json | 23 ++++++++++++++++++ .../play_circle@1x.png | Bin 0 -> 506 bytes .../play_circle@2x.png | Bin 0 -> 908 bytes .../play_circle@3x.png | Bin 0 -> 1335 bytes .../Contents.json | 23 ++++++++++++++++++ .../play_circle@1x.png | Bin 0 -> 723 bytes .../play_circle@2x.png | Bin 0 -> 1343 bytes .../play_circle@3x.png | Bin 0 -> 1918 bytes .../Contents.json | 23 ++++++++++++++++++ .../control_point@1x.png | Bin 0 -> 731 bytes .../control_point@2x.png | Bin 0 -> 1320 bytes .../control_point@3x.png | Bin 0 -> 1854 bytes 37 files changed, 213 insertions(+) create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/date_range@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/date_range@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/date_range@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home.imageset/home@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home.imageset/home@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home.imageset/home@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home_notselect.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home_notselect.imageset/home@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home_notselect.imageset/home@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home_notselect.imageset/home@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage.imageset/person@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage.imageset/person@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage.imageset/person@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/person@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/person@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/person@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/play_circle@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/play_circle@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/play_circle@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@3x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/control_point@1x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/control_point@2x.png create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/control_point@3x.png diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/Contents.json new file mode 100644 index 0000000..45e0343 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "date_range@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "date_range@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "date_range@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/date_range@1x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/date_range@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..87008c8558fb6e76f95e15a57c78f910b3b61234 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W1!3HF`9ol{aDb50q$YLN*7=#%aX3dcR3NjW4 zxjQkeJ16rJ$YDu$^mSxl*x1kgCy^D%U*+lI7*fIbc4{}TgMmPsH%|hyo1vGxVH2-G zqu`n(R^d5^O(&{_9}!&`e<`MF@3;K*`b+EB8AKdpddx*)eAdikN}rni(y@)t`<2jY zhiOID`{ueCPgdK-@GU=c&KcEbQ(Hb}`!t3fy0gp3&nN3VU#ISYDp4NGpHi!?$DFx2 zwNkOrG|8>)W`td@+wLTbxI%}f2!ZGg{r?=oUggT%oc43`Vt@apy7#U>`GmJBI8Dk^ SJa_}>Y6eeNKbLh*2~7asvtO#*h#WAFU@$JpGyiE=~Y!BuYGPob$m0@%% zU@=b=zI#CMoNo#9odw$_##a@5sy+JMQ%}X|(cXnwOI;Wy$fW80WbSR*KlRGtwlJ=P zVeVOf6i%OBRZ+RCee)WfZTaGyQ%^tC%65OLIj4C0vdJ40$}Ll-ENf@EZ9X^WPmkvc z=B3hJsbA%qZ|$>jdb)gjz2L8V_U{a(&X}-lPV>H7A-7(4j)>PqDVEiud5R+cWTkay zNH#ZRPL_Fb;Irnsmt5s%q)Oxz-~Dwzf40y!T*Eb6;EWW@X10TC91VcXS^M9-o8NeS z&(!B#8x4b8GtV6h*>4#1)+6&$meoZ8E3v7i4@=y(&WnDQ#9+`b{yu3(p5oNhy}%G+ N@O1TaS?83{1OPMFk$C_B literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/date_range@3x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity.imageset/date_range@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d5df83ad9198338e242e89d5946cd7247d96c898 GIT binary patch literal 490 zcmeAS@N?(olHy`uVBq!ia0vp^fk5oR!3HGz!X#6H6lZ})WHAGSq6G*ux=u4p017e| z2e~^jtUD+363Agmcl32+VA$Bt{U?zXC|B?4;uuoF`1a02-$M=(?H{)vW0YCww?O#; z%dW;8CBKH81=25APO#-%=sUo6-21`niMzkuZ~HbczDQBgox^`!jG~A!1A{@aVoPqv z2Eo=HYdh~sRw*xH5M=GpaByinW%WTe@1gm6yL&ZP%xZt1{;_7&s;vtv50uW>&M$rG zC8v|*HOtsZ{Lc&QTAr$}GJkWF|Ly-NotDz4cTZLQ`SqDg&9+TCLF)ISceS7RyH@|V z`)rN+*;#9zOR_!hWO5NvfY>u(v-R;S%Y$pQCA0$@I$+`=yN&11<=rb7m~f$^ZiUYJ z8rJ=LKJ8HZG{fz04A&YLMkOu*uxgp$>9WOKBI~=S0v!w&g_(^<=zh*|*&y|2YmUsF znmXUgQ2o*NsZZ5QlZuX<-nw5}`>@*AsONrv-sX!wdwbfb^sjR7t^6>%c{y^|9k<*4 jtNFvXi;0opfJa~co5kg92ksRCqlUrL)z4*}Q$iB}`4hdl literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/Contents.json new file mode 100644 index 0000000..45e0343 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "date_range@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "date_range@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "date_range@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@1x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..466c46c4562618247f981e1aa71c4b27724f1e12 GIT binary patch literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W1!3HF`9ol{aDb50q$YLN*7=#%aX3dcR3NjW4 zxjQkeJ16rJ$YDu$^mSxl*x1kgCy^D%|K;i87*fIbcB(gDlYxN4@*}*~`3vr`j!WMHX)&D@!A+j4MR?6xH1rkc@*J+YHIwPXYJscWI;Ynx%RCqJ z&8B}(@e~!#$J%w9zt`@6vDq-eX-UtI;5!Ns+F5|ty7LEy1?*n9oL>fr61hyHlEGzopr0F8}~ AZU6uP literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@2x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a302210c9e38a3e9b71fee3b5b2e26fd7c24af57 GIT binary patch literal 449 zcmV;y0Y3hTP)%PUmpbKzcuX&!=CVT9-cqajh8i3b!R=deC zgdm!ggv+X`s>Ebmm<)I#OL*+8&*lDm@}Cy_)4sNCjnTyAUK$xZxSXA?(N++z$$DwOhNdq rQKtQpW0}-94a&wfT5rdIgpebDrzelrvgTK)00000NkvXXu0mjfiV?b{ literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@3x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_activity_notselect.imageset/date_range@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f136c214f775e23861b621aedb799051317cc53d GIT binary patch literal 594 zcmeAS@N?(olHy`uVBq!ia0vp^fk5oR!3HGz!X#6H6lZ})WHAGSq6G*ux=u4p017e| z2e~^jtUD+363Agmcl32+VA$Bt{U?zXDEHjc#WAFU@$H?9zJ~%N+8*vd!YH%QZ-Mdw zmMU)EK=T8fEu2$0k8nQ-Q)e(wV3s_{n(=pb#YxX|n)5j?eD~yG;}f_y=i8QJNkB*R zd8Z|HA597k4K2T)>>7CDzJ7|`{P5rJ&Tq=GmEfsTyJ9HQ)4}8-qOgcTkX35!w9`*F zz1IG)_J7s$?K|i0^Zk4IWr^C~y87(SNy@(z&vds--<n}@ zE)BEi3im_g{yfwD@L}(euSxk~NKzn6U9Kkl|<4Ex*p$``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eB{yk3@$B+ufx04%rn+yb8`5!aLHVR5Gninuj z9^^eBIETS(rSuE79gWI!Lvyjqi}d#;G9QFKY*sX5xhGHL>BOAS_6nM}PfFt^il+$y8Q|K{dBhdlk&BL2M9>}t-=Gi9$O9+5YRoc_K| zEXC)Bo@+WrXvjRdYEb z$FA{ui)!SM#LaKyAqxs|gM#1?^#LQ{a~Bhba?_t+BAi1I7stp^UZzhF2tizUBS(kv zLSS$XBS*VOF<%e~&MjPbn%6l*Eh%igIJ6sYD#946k#Bku{`(3YmXJOrT6}YBIpNtd z{z)M&yL1ufoF2Z5qIhx5p>WNq=?J3>Tqdn`9pSZ=7W+)#tIz#n$X*4P;14V9;6vM`De zA2&^)JT=;5xv^Sd#gNIjSMb42-F`s~l}Aw&MR|Ds06K6yfu|Jiq5uE@07*qoM6N<$ Eg3~t4ng9R* literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home.imageset/home@3x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_home.imageset/home@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..16066bd5d6ea03f8878d7bb790692aecb414b9ae GIT binary patch literal 706 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 bfE4)$)Nd=vS${t#00000NkvXXu0mjfO7Cy> literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/Contents.json new file mode 100644 index 0000000..41f9c53 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "person@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "person@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "person@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/person@1x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/person@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..12b45f15a78ffaf923c81a18a5ae3b635fb62115 GIT binary patch literal 551 zcmV+?0@(eDP)K~#7F?NrNc z!axw+H8~(oP6ti}F%<+lz(+tRP(efmm`Lt|1VN;%^B zP?ARkw%_lEJakdIC6xKOTCKhiJA8<~B##J;mDa-->U3#k-=av7z~E1BSIn4Znsm*PDl{bUvSVNf>cq&1TcVWk|Xzy1c9i)k;4Df$F%&7TMzf20;Z_NQy14X2_ZIO^?E&nuio`#dk~u~ zm&^TtvMglhBcN>BU-n$0Bm_Eo>(9gJd=Ba;@_H;dppH9|>JQ1`Y(MbyI~2}YFqiRV zr$~stK%ylrLQBiq4?%*lWZf%049lm(DXP3@~mV8k% z2%e%`R@&LG>!uK4Pl(QEROnwX;J9}&CHt^cKc#%3!C-iMLJJ<p^j{>5 zPo#L~3?Y@RbHht|B9W+_ z@;_<|Q)h;Jyk;LM%8mDU+mGbV=kuXuS>C2o{BcI35!b~5#ZjA0N2A`8PK~vMsm{C{ zXq=DPzT?_I*CweGzqPw^^5R&c!! zXw$|A<}we*>eCuAH1x;c2&UQBQmOPvA<}3xs`z-{eA!wXQr(TF?XR2{TnK)k@Zphk z4)i6Eb9c}-{hKOROPJ@1{}m(5U@#aA27}>Z{sJBmRfg9m|FZx9002ovPDHLkV1mMe Bl*0f3 literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/person@3x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_mypage_notselect.imageset/person@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0314dd340ce4dae5b7b44fe78da74b79c6cb6ad7 GIT binary patch literal 1213 zcmV;u1Va0XP)t({5AF);uAp=UgcX#$AQ1$F6+l;zWCev4BozW411rGYLAruYci1nM=vig$M`qMsH$*8^YioFot+&;9#FZ6BjRzep)#M-Xe!M6%h^poK}V{ULm77tA5sV%D}0JSUuNMisGWf zPuGuAo)eNoT$?x(_r&a6ATw0T^^hD=iJdqOdQLzFK>V0Iz_o}f<$6d4WK9p`5Z4Qf zN+}9pw$!NrY%Y=g>A?us3(K#xvW10(JR^MkUTu@-l!0qIF?A<_hS$-%rV^6taeb5L zl!5cT^Tox*O_l%{iYF^8E8Pj(zBdQ%{rx=)cueW2-QC?!SNm=!J*mm`dzK^e%3wBD=6twvu>@ zga<4jfhr4l5qHk>52nHX$F;S!lSwPNOS}o*bFak8-I*c;5JS9EAH+-WGK~c0%{qh% z(L3Mv##qT?Hgz5!AEU#=Lq&oh2!bF8nRsF1=p02hXLtt_;`~u($c}n!Vm5Vf{sYrT z;jEUImxn&siq1t$1cPC{4ly>gH^(SYrC}R#i2MA+{UU7tB65rq5m~s~+uIfz`Bev( zW)Uq97B#|iuC=I&N~Tm1Ihe$;kdl0dQvpG*SWx&G`&1IvMJ$lO?iz)oTZWicMbx>6 z-^nlW#!+NhOe-R?2Zpm$s~omP;dzri>^A1inMGue3r+(vcdRC>E60l8GGm{fo>UM7 z@u>O2(*y!lYyt&XFhX2f=j^W;7b=CLfnGUNuzw~IwSerIF4PF_1rUQHdC{y5NWKS; z0=@dzsTlmCHfQ-B#v&GV?I*&muCDgWG>~BjFJ5zzu7q6I`m3y6poFj}2qCPW!_;=6_0MS>s*f*=TjAP9mW b2tM)`)+H%du6{Ck00000NkvXXu0mjfR`40W literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/Contents.json new file mode 100644 index 0000000..e657da1 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "play_circle@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "play_circle@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "play_circle@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/play_circle@1x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/play_circle@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..97da90bc4c52657d614d2c60667a11d38dab537b GIT binary patch literal 506 zcmVX`i>Iz3dBxn=bX406^n%H<%gou>PLdBJpT=<#3 zlhR&HwL=OH3svzPX9t2%nzYoC8X} zI<)IJe&yHBN7izCfqW?6`a0t@J~E5aveUq>vJZ@N>m#$BMcWAJ(ITb%FT#*t+2 z+_sPhN{&hs5v`v7@Un>Aw*Am<3|A6oyQ%;g^*=xYPGWV)Ngl?==_{!qn#Y-Aj#Ayx z+NhJsncu4VB2bAS&1(?5&nENrHdj91)J^>aq5>cm*w57m?1!~ulehVO(M>G~X=7LXuKqMW0cxy%IKiGqH2?qr07*qoM6N<$f)ugiUjP6A literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/play_circle@2x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts.imageset/play_circle@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..82f0222921aa95e32b14c630bf9c5937f8e4994e GIT binary patch literal 908 zcmV;719SX|P)TLCx|*hyg}0ml1^ZEgLVQr6WANb8`vBC1&>tgNT5Yhr0m@3 zyTj$ohz}3|MS>!ln3%}Pj4}aW!G9FXl4W6~;lOg%e`mAVneH7{reJwy*~6c`ty9oF zp)JF*W~nfonx&*$!-H7a!K9|XiGtjzLK+M8vC)0e7;r~R^jk^)|AnQ5nS{kf{e^8q zTYKx-){=6<9Xzm{aD9dg3It}++4d;-Ksm5Vxu}r9Wniqk9ZfkH*OAcHTT^0SR@sxI zzcg-XXR#JKsgcq5d-_#06qvZl(|CX1F6Am30?eu=xr3sSfC&T1EmstaW44mVl*c&M z4zF3nG$vVV<5~9!iFXc=Hw5964B1-Bvu?9wS4iZxF!9zVEY@INm{HcU_1o{F@00+@ z@3=yGcJ63H3d~;=&lA$Dq+6lPe-T0VJXKQwxW0QBWIc34WG_887b@zNrv2jGQ92sy z6%@yx*6$^R)lqWArAK2!Q7jeWjwJ_2dvA~wlim$S%0o#;!7`xEPAKab!`EU*%7{&=}!hmkT#C3#rSF_t*RMx>pli{^t+)|nB#>WpBu9m_ZF=XmWQctkCB^r7TJ)>#US>pNE)&^6-=8BP;YfppFvCI>wM(@hFs~J}Do`xZRGz`684Z z$cM~Zsu#qZqyD#DM{TJrudUw-!*lC;R&^Y$V;3Sj2GuHlm7aAeCi#49>Psu}gO&Ld z>3V%*2#HVUiB);l9qXVO6e3MSQl7!<#A@RxX>J5^wydO3U~=rW(AX`KIgd%Kb?A$o9k~ iv*Ww?NNi$aqQhTVSnB0X7~uB+0000UcXHdOB2mWpw z5qzNm*?1ilWT7!{S2yGW1M+v?P(@%pJyf@K42keQaKK9akJIrwK*!taIxaBa1vP-t zV;`WaMy5VGRH;LNQdOI;k3d6SQVn1`ZXZ20NTBXzA3nmG@tzt6HsDB4bp)O{b&WcnXbf0$8d4bWS1VkptxfHmR0~?u;jeu|h5hfB)D~ zE+F@Xni4p=*E^~V*O4yP2Ik>r}C*Y8Ct0XUU_n)JhS3>s2 z^t=&rKNE^>I2#ePddHft}uzP?QM5IG|t?clDGab$pYC++So#0T7Nx!E^|6 zi|eG{KJnbU6Rv%xx+o(Dl=I53!nN2rBk$A6GLVTlbZ)PNoP~U$STH}>a7&p$8Ur$V zCFc9Z_$)+Ho-%EGurNcWZkixRGl)E>%+PV`D? zdERWAW^N|KrzELb_Ydn#gTCoR* zgz-e*jn6!lN=|hU#svzl*n)pDF0E|O6H1=M@hGoRXO5*8bVzS;kSB4HQyt;nMZNDx z2QBE)Q!4OJ;&hb21NSSwuKTEb$qN}pIe@$~D#;t~-6vbpys&&N)a^jIfE=ZnQ(cSm z+EcH*3*u33RoE)al2LnAm@Cxhjrj{L2>iPW6qNw}U85i91TcEO^VB0>U-&@bz9zsl zwQJy*00U~2?w{db7|Fb(24TGdbnmGK2-^%^eZi&#{E?U`*Nh)fh!b!fpi~ovGQ&X5}6 z@OSyeUr`2dcVJPd@!B%r1mezsU^t#002ovPDHLkV1gTHY~BC> literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/Contents.json new file mode 100644 index 0000000..e657da1 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "play_circle@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "play_circle@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "play_circle@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@1x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8fc628bd19aafc1005e52d7edd51cb928ad43dd GIT binary patch literal 723 zcmV;^0xbQBP)>0#7tHgBsuypqXe(yrI*D+w4w|GTbl>z4tfLa`+y{o-skbLdPFnD6^B^@My= zg!e%|w{@@ZcPF=|ta8X2pm(A`q~5dK-t$c}V6|G!Rcp|H&9T*?UwGG55zFK8I2Ir5 zdKoa#clnQpEiF){J6LX*wWf21lVu{eP6muMBMrTYio)_hST`n?nw?GtOq0slr;L&1 zbUJlSc0l4=1`M7kkg~Rv7KZC)G#af_-!pb<+WNQjq${dP3ec@XvJvAu&9WQ z5~-(3;zci`L~oS6Z6n?v_v+p#CxGgWYp!ws9cHgcPILdNNv(vT zIh{@c4EzwqQaH^kfhl3AcDtR+X07#58f7Dh@rTmMwZ7_0yQ002ovPDHLk FV1n0(MTr0a literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@2x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f3e914542660792e98eb273f610466419aab10a3 GIT binary patch literal 1343 zcmV-F1;F}=P)IAOcJTI0F=d4{XKyUxQ5fYZ+-~ zG(P!NsqE>|_S7w@)f%EP#u%eaRH!6eUS39TZ*TF($HzQURH;;=-$pBy9#Vg5YO2?0 zH2PEmf)cy9xTt@9eJvx^@i^~Uj7fHpu2)xAyA%k8iLquLA0LxywK^bF1OjP)eSN({ z1yP9D`T6+@$Q6h-~PBEhEn^z;;eetyQtw}P}t=^7VE4QQ`N8IXw>Om7<_N2^6>k$wY6jNgf}rsszc^Rc~xuXF_~eoiDPTnvk}Zf&Wo5d zzdOULKFIEGY-}7-K%AbQ?tny#bjx6KUh*+ZCovvHnAZ*I^FUAz+xJCUyI4?`T-H$~ z2T*y-R(V;Z7~FAggMJ2Z7~d5tO-j4&`I&9^v#H6-jMcnaOC{T7!mJb4MlUH6v96vulC$=(a8q>7J zUI2Ljorv+%hPmAEB0vGa+lfKEY|C#X#$GxZw3XEac`jh_xkr61DhO^H^&PAA^X6{K zZzP7!tQch8yS||;o92B{?U@_|SdnoNv6( zd(CE3>kC%Pe8fhG$kfR^(1@X8ZA8+1vQS``3DaP~<+90D+liW?0gV{!nky^I9Q*7p z;beT}lX-G-GFD|AfK_ECQ`9oS_Ulv*j;5!l=X^=YzQn2w;RJ2aHH{&vBrqzf*f*-{ z3xN(c^LR5Hm{n!7v$JlE$yG8&~FEzB@QR- z4qQRye}`pw=8#yIvZIgsj-a7EDhSlGZIBt~r%_{UCWaGhlGU#p zEa4$Y$+iF4sr}8c%1e2pFIk>`6iYu zeURGqCB-P^s+NA{W%Dt)`z;*K&3Po;83w;hD zP1AILRun=y0^a8|6+ynt2}O`K#ID@T%uJ_f04eAvM|`xAv2+eQdw+6-bjx0PfH3+m zO8rRe;o*VFMZ>X5c93OUrH2Ej7*S|%j4{RtjDMpzhb7_iOh^C#002ovPDHLkV1m;X BW0L>? literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@3x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_shorts_notselect.imageset/play_circle@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e87fb02e2c0b5c4bb76cf1a5ffdbc8867dad9444 GIT binary patch literal 1918 zcmV-^2Z8vBP)(1CO4Sg6Kpuah7&OSLE^dO1i%R(Ctx{2XT|F$>AQi~*Z)9%mZa=EH(q6!r%RH#s)Lb)(TCB*6JX*4l0Q6CHj^>;U1H{*!RszsJYNyHitBy~V}FK8*;$ zNd$3MS67?-@(WBtlN^DG?ehQo6QqWg)?g&^5N$p^J#F#FCSP^(i_YZaRc+Fk*J361${GB zY|&>@dVJqs4-XILtyU|sy^*B~L^k;T-*f2Ogo&JYMWhoF)eC_@Tj}V*9GRJ!>A0}( zR0lTs<1X2EV#3$r>gsCY8N4uw83}~c?X0h_cgYi!-m@hW9XMZ<$U-D$Ah6Gp*Irv& z`-1}E=;&yhhdRhKwv7rBnVUpg9T>`18wSiL2(S*`<2JVq)uNl5o0xJSvm`3TEk2B0 zSgnnXjSiIzHf?9sv$L|Yl1X=GBGG0TqsP(nR8pu3XJ4q2SwChP&Zc2pb^-xd2;9yC zp$b++`;-CJlBlHcvrwhSI&hBuCpbAdxsX;m{I2u1_N=ue@&hGZf+4U-IpE7FU;@l8 z`hIQx9XLE;n$2HfMIwx9sn=jg7qA0kNChOF0s`$tyLIJwUp9@JWC2@A+!D%?qAL+J z7^;GawC;TuQ0>;PR9G6f$O1+Zm4s{xRZRAmHJHdfmio^jr4nm-T^TwT?maTVNTTwN z=#cPa(jm8qLQ18YJap1nX9Ikb3^0-if1Ob5ObXv4l}cN^R0MF#3B?O!fJkB-$8~8! zL3onr4qrFkkXw96wX(S`d1vH_ck*ScGtnVbvA~@jC=U&eAlw9wnC6R|ipNZ5Jf1vWgMT*KtT|uo@OLS%0;cQqJ zn=%SQ0-fDPe5dH}McSUOOyWZ;i3$k~H+3Q^0n!u|CNLofPxb7jtOsk@>UxoyT!IX74r ztbxZjSgIU-%c^a$^qrFjsEpg8Wz0iYx>uCM$HzylqXGKECWzw*Fk61{MIcm@d4j3i=6^Pev1ACf79N`Nz?IU^+3S;xkNvT{He zQqdahrr)LlNX?eeX?fWBMS>J!lOL@U?62X)D5Y3T8x4~K+$J{`>3akHF_!!LdnnyRs)HUc3z14!n3d3Uzc0 zhObQ=X!QG?Qz#-~yhfI{Bz(199R!pfSfo;;ZG&h|2n3vv2;@8i;`L-DLnwGVLct4(fCH&?2?X4Be3@C^NKBEzR&x&MTX>&*J9)j6m_lu`+zud_eMR0u zC=Yos5>uoH0p&bdNed8%pqi@#i!wc%MhMt<*l5H0s;RbnM7Ae+ay`uAUyxvcxbRPP zlBW&gIF4$yTJ-ier24Vrqo3tGu?iI`RH#s)!q1BT0G6ByMmOirfdBvi07*qoM6N<$ Ef^SxF2LJ#7 literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/Contents.json new file mode 100644 index 0000000..7629d61 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "control_point@1x.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "control_point@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "control_point@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/control_point@1x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/control_point@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..0bdeb0921df9810b163e21a19d23b5ad95461b3c GIT binary patch literal 731 zcmV<10wn#3P)r0Xzai7grEc0d@sPDlifP9!Uqub>OSud>!~C1PBSZZ(x=T z{vjr(yd)!8-rbqmZ~j-Qk4i=!q4|7nuGj14e!s6{YvD7Q72x|>sZ^d@tyc8fJw^_Y zyWMWr7XVo_DijJ{yWI}22AfW&PSg}~N^&0L!s{f$PW;0YT-Zc|o zaNnjs5}T_*FA;^4+Jv_aeO}ZH?is~>bRbUnS#H4p%1e7PnfQ{2h}>&K`5s$wJDhYYCx0 zl{-B@2`~=XsTpZ>sW%Yo4R|}s99Oa#X{e@!6PETNcSB_!=aD=QV@n-J-r3|&O#ShA z+=S5kPkjOC0z`)*#OKin%X-h^uQ}FUuh(ui(c!$+^h|%UUmMO zJ6FBbnkY2e?bgKw-_>Qh_?qVe(?p?KEEYBmYu)rbacB?(St0&B^bg|oTB%?UEPwz2 N002ovPDHLkV1h-3I&lC1 literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/control_point@2x.png b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/ContentTab/content_upload_notselect.imageset/control_point@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..50bc9668d488ae7cb19b846882fc6917de590e09 GIT binary patch literal 1320 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 Date: Sun, 16 Jun 2024 01:50:31 +0900 Subject: [PATCH 08/22] =?UTF-8?q?feat:=20CustomTabView=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 --- .../ContentTabView/View/CustomTabView.swift | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/View/CustomTabView.swift diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/View/CustomTabView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/View/CustomTabView.swift new file mode 100644 index 0000000..2345170 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/View/CustomTabView.swift @@ -0,0 +1,126 @@ +// +// CustomTabView.swift +// Climeet-iOS +// +// Created by KOVI on 6/16/24. +// + +import SwiftUI + +struct CustomTabView: View { + @Binding var selectedTab: Tab + + var body: some View { + GeometryReader { geometry in + VStack { + HStack(spacing: 0) { + Button { + selectedTab = .home + } label: { + VStack { + Rectangle() + .frame(height: 4) + .foregroundColor( + selectedTab == .home ? .climeetMain : .levelColorBlack + ) + + Image(uiImage: UIImage(named: selectedTab == .home ? "content_home" : "content_home_notselect")!) + Text("홈") + .font(.climeetFontCaptionText3()) + .foregroundColor( + selectedTab == .home ? .levelColorWhite : .text05 + ) + Spacer() + } + } + .frame(width: geometry.size.width / 5) + + Button { + selectedTab = .shorts + } label: { + VStack { + Rectangle() + .frame(height: 4) + .foregroundColor( + selectedTab == .shorts ? .climeetMain : .levelColorBlack + ) + + Image( + uiImage: UIImage(named: selectedTab == .shorts ? "content_shorts" : "content_shorts_notselect")!) + Text("Shorts") + .font(.climeetFontCaptionText3()) + .foregroundColor( + selectedTab == .shorts ? .levelColorWhite : .text05 + ) + Spacer() + } + } + .frame(width: geometry.size.width / 5) + + Button { + selectedTab = .upload + } label: { + VStack { + Rectangle() + .frame(height: 4) + .foregroundColor( + selectedTab == .upload ? .climeetMain : .levelColorBlack + ) + + Image(uiImage: UIImage(named: "content_upload_notselect")!) + Text("업로드") + .font(.climeetFontCaptionText3()) + .foregroundColor( + selectedTab == .upload ? .levelColorWhite : .text05 + ) + Spacer() + } + } + .frame(width: geometry.size.width / 5) + + Button { + selectedTab = .activity + } label: { + VStack { + Rectangle() + .frame(height: 4) + .foregroundColor( + selectedTab == .activity ? .climeetMain : .levelColorBlack + ) + + Image(uiImage: UIImage(named: selectedTab == .activity ? "content_activity" : "content_activity_notselect")!) + Text("운동기록") + .font(.climeetFontCaptionText3()) + .foregroundColor( + selectedTab == .activity ? .levelColorWhite : .text05 + ) + Spacer() + } + } + .frame(width: geometry.size.width / 5) + + Button { + selectedTab = .mypage + } label: { + VStack { + Rectangle() + .frame(height: 4) + .foregroundColor( + selectedTab == .mypage ? .climeetMain : .levelColorBlack + ) + + Image(uiImage: UIImage(named: selectedTab == .mypage ? "content_mypage" : "content_mypage_notselect")!) + Text("마이페이지") + .font(.climeetFontCaptionText3()) + .foregroundColor( + selectedTab == .mypage ? .levelColorWhite : .text05 + ) + Spacer() + } + } + .frame(width: geometry.size.width / 5) + } + } + } + } +} From f0121b993070368a00348764bc865108358026b2 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Sun, 16 Jun 2024 01:50:41 +0900 Subject: [PATCH 09/22] =?UTF-8?q?feat:=20TabView=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/ContentTabView/TabView.swift | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/TabView.swift diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/TabView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/TabView.swift new file mode 100644 index 0000000..511dee6 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/TabView.swift @@ -0,0 +1,62 @@ +// +// TabView.swift +// Climeet-iOS +// +// Created by KOVI on 6/15/24. +// +import SwiftUI +import ComposableArchitecture + +enum Tab { + case home + case shorts + case upload + case activity + case mypage +} + +struct TabView: View { + + @State private var selectedTab: Tab = .home + + var body: some View { + GeometryReader { geometry in + + VStack(spacing: 0) { + switch selectedTab { + case .home: + // 홈화면 + ActivityRecordView(store: Store(initialState: ActivityRecordReducer.State(), reducer: { + ActivityRecordReducer() + })) + case .shorts: + // 쇼츠화면 + SearchView(store: Store(initialState: SearchReducer.State(), reducer: { + SearchReducer() + })) + case .upload: + // 업로드화면 + ActivityRecordView(store: Store(initialState: ActivityRecordReducer.State(), reducer: { + ActivityRecordReducer() + })) + case .activity: + ActivityRecordView(store: Store(initialState: ActivityRecordReducer.State(), reducer: { + ActivityRecordReducer() + })) + case .mypage: + // 마이페이지화면 + SearchView(store: Store(initialState: SearchReducer.State(), reducer: { + SearchReducer() + })) + } + CustomTabView(selectedTab: $selectedTab) + .frame(height: geometry.size.height * 0.0874) + .background(.levelColorBlack) + } + } + } +} + +#Preview { + TabView() +} From 2c7fdab3cc6c5877946707df0ec4d0797b782d6d Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Sun, 16 Jun 2024 01:50:58 +0900 Subject: [PATCH 10/22] =?UTF-8?q?chore:=20project=20=ED=8C=8C=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Climeet-iOS.xcodeproj/project.pbxproj | 24 +++++++++++++++++++ .../xcshareddata/swiftpm/Package.resolved | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj index 3a0de47..7360575 100644 --- a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj +++ b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj @@ -19,6 +19,8 @@ B94EC22A2BD13CBD00DC3FDB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B94EC2292BD13CBD00DC3FDB /* Assets.xcassets */; }; B94EC22D2BD13CBD00DC3FDB /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B94EC22C2BD13CBD00DC3FDB /* Preview Assets.xcassets */; }; B94EC2422BD1473E00DC3FDB /* .swiftlint.yml in Resources */ = {isa = PBXBuildFile; fileRef = B94EC2412BD1473E00DC3FDB /* .swiftlint.yml */; }; + D42357402C1DD6BD0070DB70 /* TabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D423573F2C1DD6BD0070DB70 /* TabView.swift */; }; + D42357432C1DFD320070DB70 /* CustomTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357422C1DFD320070DB70 /* CustomTabView.swift */; }; D442A3DE2BF9D36500A58F92 /* SearchAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */; }; D442A3E12BF9D3F400A58F92 /* SearchRequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */; }; D442A3E62BF9D6C800A58F92 /* SearchRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3E52BF9D6C800A58F92 /* SearchRepository.swift */; }; @@ -71,6 +73,8 @@ B94EC2292BD13CBD00DC3FDB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; B94EC22C2BD13CBD00DC3FDB /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; B94EC2412BD1473E00DC3FDB /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = ""; }; + D423573F2C1DD6BD0070DB70 /* TabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabView.swift; sourceTree = ""; }; + D42357422C1DFD320070DB70 /* CustomTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTabView.swift; sourceTree = ""; }; D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchAPI.swift; sourceTree = ""; }; D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRequestModel.swift; sourceTree = ""; }; D442A3E52BF9D6C800A58F92 /* SearchRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRepository.swift; sourceTree = ""; }; @@ -176,6 +180,23 @@ path = "Preview Content"; sourceTree = ""; }; + D423573E2C1DD6A50070DB70 /* ContentTabView */ = { + isa = PBXGroup; + children = ( + D423573F2C1DD6BD0070DB70 /* TabView.swift */, + D42357412C1DFD230070DB70 /* View */, + ); + path = ContentTabView; + sourceTree = ""; + }; + D42357412C1DFD230070DB70 /* View */ = { + isa = PBXGroup; + children = ( + D42357422C1DFD320070DB70 /* CustomTabView.swift */, + ); + path = View; + sourceTree = ""; + }; D442A3DF2BF9D3D900A58F92 /* RequestModel */ = { isa = PBXGroup; children = ( @@ -233,6 +254,7 @@ D47A3AA82C0CAC1E0031DCAA /* Presentation */ = { isa = PBXGroup; children = ( + D423573E2C1DD6A50070DB70 /* ContentTabView */, D44FF2242C183508005E9EB1 /* DateTimePicker */, D44FF1F32C14585A005E9EB1 /* ActivityRecord */, D47A3AA92C0CAC2D0031DCAA /* Search */, @@ -491,6 +513,7 @@ D4EE0D032BD14BAB004C6688 /* Encodable + toDictionary.swift in Sources */, D4B75EEE2C0B3CAA0074870D /* AppError.swift in Sources */, D4F1617A2C1AFE1D00BF4392 /* ActivityRecordHeader.swift in Sources */, + D42357402C1DD6BD0070DB70 /* TabView.swift in Sources */, 04CFB9EE2C007F4900580395 /* test.swift in Sources */, D47A3AB02C0CAD810031DCAA /* GymSearchResult.swift in Sources */, D47A3AB52C0CAF750031DCAA /* ResponseDTO + mapping.swift in Sources */, @@ -507,6 +530,7 @@ D44FF1F52C145872005E9EB1 /* ActivityRecordView.swift in Sources */, D4EE0CFD2BD14AFB004C6688 /* ResponseDTO.swift in Sources */, D4F1617E2C1B1F8B00BF4392 /* ClimbingSetupView.swift in Sources */, + D42357432C1DFD320070DB70 /* CustomTabView.swift in Sources */, B94EC2262BD13CBB00DC3FDB /* Climeet_iOSApp.swift in Sources */, D44FF2282C183574005E9EB1 /* DateTimePickerReducer.swift in Sources */, D442A3E12BF9D3F400A58F92 /* SearchRequestModel.swift in Sources */, diff --git a/Climeet-iOS/Climeet-iOS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Climeet-iOS/Climeet-iOS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index be2db42..99f52c3 100644 --- a/Climeet-iOS/Climeet-iOS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Climeet-iOS/Climeet-iOS.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -23,8 +23,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/onevcat/Kingfisher.git", "state" : { - "revision" : "5b92f029fab2cce44386d28588098b5be0824ef5", - "version" : "7.11.0" + "revision" : "2ef543ee21d63734e1c004ad6c870255e8716c50", + "version" : "7.12.0" } }, { From e4a6d1205cb5ce6f62b30b101ff16c2d2dfb0faf Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Sun, 16 Jun 2024 01:52:47 +0900 Subject: [PATCH 11/22] =?UTF-8?q?chore:=20=ED=8F=B4=EB=8D=94=EB=AA=85=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 --- Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj | 6 +++--- .../Presentation/{ContentTabView => Tab}/TabView.swift | 0 .../{ContentTabView => Tab}/View/CustomTabView.swift | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename Climeet-iOS/Climeet-iOS/Presentation/{ContentTabView => Tab}/TabView.swift (100%) rename Climeet-iOS/Climeet-iOS/Presentation/{ContentTabView => Tab}/View/CustomTabView.swift (100%) diff --git a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj index 7360575..f467d33 100644 --- a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj +++ b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj @@ -180,13 +180,13 @@ path = "Preview Content"; sourceTree = ""; }; - D423573E2C1DD6A50070DB70 /* ContentTabView */ = { + D423573E2C1DD6A50070DB70 /* Tab */ = { isa = PBXGroup; children = ( D423573F2C1DD6BD0070DB70 /* TabView.swift */, D42357412C1DFD230070DB70 /* View */, ); - path = ContentTabView; + path = Tab; sourceTree = ""; }; D42357412C1DFD230070DB70 /* View */ = { @@ -254,7 +254,7 @@ D47A3AA82C0CAC1E0031DCAA /* Presentation */ = { isa = PBXGroup; children = ( - D423573E2C1DD6A50070DB70 /* ContentTabView */, + D423573E2C1DD6A50070DB70 /* Tab */, D44FF2242C183508005E9EB1 /* DateTimePicker */, D44FF1F32C14585A005E9EB1 /* ActivityRecord */, D47A3AA92C0CAC2D0031DCAA /* Search */, diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/TabView.swift b/Climeet-iOS/Climeet-iOS/Presentation/Tab/TabView.swift similarity index 100% rename from Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/TabView.swift rename to Climeet-iOS/Climeet-iOS/Presentation/Tab/TabView.swift diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/View/CustomTabView.swift b/Climeet-iOS/Climeet-iOS/Presentation/Tab/View/CustomTabView.swift similarity index 100% rename from Climeet-iOS/Climeet-iOS/Presentation/ContentTabView/View/CustomTabView.swift rename to Climeet-iOS/Climeet-iOS/Presentation/Tab/View/CustomTabView.swift From 3ef790b91cfde4089b431ff295f3183954ee5e45 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Sun, 16 Jun 2024 02:13:11 +0900 Subject: [PATCH 12/22] =?UTF-8?q?feat:=20ActivityCalendar=20View=20?= =?UTF-8?q?=EB=B0=8F=20Reducer=20=EC=B5=9C=EC=B4=88=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Climeet-iOS.xcodeproj/project.pbxproj | 18 ++++++- .../ActivityCalendarReducer.swift | 28 +++++++++++ .../ActivityCalendarView.swift | 49 +++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift create mode 100644 Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift diff --git a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj index f467d33..cff81c3 100644 --- a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj +++ b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj @@ -21,6 +21,8 @@ B94EC2422BD1473E00DC3FDB /* .swiftlint.yml in Resources */ = {isa = PBXBuildFile; fileRef = B94EC2412BD1473E00DC3FDB /* .swiftlint.yml */; }; D42357402C1DD6BD0070DB70 /* TabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D423573F2C1DD6BD0070DB70 /* TabView.swift */; }; D42357432C1DFD320070DB70 /* CustomTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357422C1DFD320070DB70 /* CustomTabView.swift */; }; + D42357462C1DFFBF0070DB70 /* ActivityCalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */; }; + D42357482C1DFFDF0070DB70 /* ActivityCalendarReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */; }; D442A3DE2BF9D36500A58F92 /* SearchAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */; }; D442A3E12BF9D3F400A58F92 /* SearchRequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */; }; D442A3E62BF9D6C800A58F92 /* SearchRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3E52BF9D6C800A58F92 /* SearchRepository.swift */; }; @@ -75,6 +77,8 @@ B94EC2412BD1473E00DC3FDB /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = ""; }; D423573F2C1DD6BD0070DB70 /* TabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabView.swift; sourceTree = ""; }; D42357422C1DFD320070DB70 /* CustomTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTabView.swift; sourceTree = ""; }; + D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCalendarView.swift; sourceTree = ""; }; + D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCalendarReducer.swift; sourceTree = ""; }; D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchAPI.swift; sourceTree = ""; }; D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRequestModel.swift; sourceTree = ""; }; D442A3E52BF9D6C800A58F92 /* SearchRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRepository.swift; sourceTree = ""; }; @@ -197,6 +201,15 @@ path = View; sourceTree = ""; }; + D42357442C1DFF7E0070DB70 /* ActivityCalendar */ = { + isa = PBXGroup; + children = ( + D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */, + D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */, + ); + path = ActivityCalendar; + sourceTree = ""; + }; D442A3DF2BF9D3D900A58F92 /* RequestModel */ = { isa = PBXGroup; children = ( @@ -255,8 +268,9 @@ isa = PBXGroup; children = ( D423573E2C1DD6A50070DB70 /* Tab */, - D44FF2242C183508005E9EB1 /* DateTimePicker */, + D42357442C1DFF7E0070DB70 /* ActivityCalendar */, D44FF1F32C14585A005E9EB1 /* ActivityRecord */, + D44FF2242C183508005E9EB1 /* DateTimePicker */, D47A3AA92C0CAC2D0031DCAA /* Search */, ); path = Presentation; @@ -537,6 +551,8 @@ D4EE0CFF2BD14B59004C6688 /* ExampleAPI.swift in Sources */, D4832BB72C0DD245007731FD /* UserUsecase.swift in Sources */, D47392122C198E250059AE45 /* DateFormatter + .swift in Sources */, + D42357462C1DFFBF0070DB70 /* ActivityCalendarView.swift in Sources */, + D42357482C1DFFDF0070DB70 /* ActivityCalendarReducer.swift in Sources */, 04CFB9EC2C007F3100580395 /* Token.swift in Sources */, D44FF1F72C145E66005E9EB1 /* ActivityRecordReducer.swift in Sources */, D442A3DE2BF9D36500A58F92 /* SearchAPI.swift in Sources */, diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift new file mode 100644 index 0000000..a6fd4eb --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift @@ -0,0 +1,28 @@ +// +// ActivityCalendarReducer.swift +// Climeet-iOS +// +// Created by KOVI on 6/16/24. +// + +import Foundation +import ComposableArchitecture + +@Reducer +struct ActivityCalendarReducer { + + @ObservableState + struct State { + + } + + enum Action { + + } + + var body: some ReducerOf { + Reduce { state, action in + return .none + } + } +} diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift new file mode 100644 index 0000000..232b391 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift @@ -0,0 +1,49 @@ +// +// ActivityCalendarView.swift +// Climeet-iOS +// +// Created by KOVI on 6/16/24. +// + +import SwiftUI +import ComposableArchitecture + +struct ActivityCalendarView: View { + let store: StoreOf + + var body: some View { + ScrollView(.vertical) { + VStack { + HStack(spacing: 15) { + Button { + + } label: { + Text("기록") + .font(.climeetFontTitle3()) + .foregroundColor(.levelColorWhite) + } + + Button { + + } label: { + Text("통계") + .font(.climeetFontTitle3()) + .foregroundColor(.levelColorWhite) + } + + Spacer() + } + + Spacer() + } + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(.text09) + } +} + +#Preview { + ActivityCalendarView(store: Store(initialState: ActivityCalendarReducer.State(), reducer: { + ActivityCalendarReducer() + })) +} From a5660f9aa8a093e13928de5391754fde9703f161 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Mon, 17 Jun 2024 10:29:58 +0900 Subject: [PATCH 13/22] =?UTF-8?q?feat:=20Asset=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Icons/Calendar/Contents.json | 6 +++ .../calendar_left.imageset/Contents.json | 23 +++++++++++ .../\364\200\206\212@1x-1.png" | Bin 0 -> 206 bytes .../\364\200\206\212@2x-1.png" | Bin 0 -> 280 bytes .../\364\200\206\212@3x-1.png" | Bin 0 -> 305 bytes .../calendar_right.imageset/Contents.json | 23 +++++++++++ .../\364\200\206\212@1x.png" | Bin 0 -> 197 bytes .../\364\200\206\212@2x.png" | Bin 0 -> 268 bytes .../\364\200\206\212@3x.png" | Bin 0 -> 315 bytes .../UnNamedColor/Contents.json | 6 +++ .../unnamed_gray_103.colorset/Contents.json | 38 ++++++++++++++++++ 11 files changed, 96 insertions(+) create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/Contents.json create mode 100644 "Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/\364\200\206\212@1x-1.png" create mode 100644 "Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/\364\200\206\212@2x-1.png" create mode 100644 "Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/\364\200\206\212@3x-1.png" create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/Contents.json create mode 100644 "Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/\364\200\206\212@1x.png" create mode 100644 "Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/\364\200\206\212@2x.png" create mode 100644 "Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/\364\200\206\212@3x.png" create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/Contents.json create mode 100644 Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/unnamed_gray_103.colorset/Contents.json diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/Contents.json new file mode 100644 index 0000000..c6e93d6 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "􀆊@1x-1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "􀆊@2x-1.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "􀆊@3x-1.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git "a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/\364\200\206\212@1x-1.png" "b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/\364\200\206\212@1x-1.png" new file mode 100644 index 0000000000000000000000000000000000000000..8b90c1852a87a9ec62a1a3e183c55bcf860360df GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^oIotV!3HFcc!WBG1PVMNiy0WWg+Z8+Vb&Z8pde#$ zkh>GZx^prwfgF}}M_)$E)e-c@N{A5oT$B+ufqZbl+8x%xX66T2+GzoSr;LULm z$-a4r;}(PToZ~h2jVIY2Z@c~Xr^IdH$(#(QE06IM%xRuGi6LIEERXqH)`K1<*SL#G xL7eNqO0Pfun&qy1htLjQLlq_S^wh(*#A}Zqc$oazoEc~xgQu&X%Q~loCIBc7K-B;M literal 0 HcmV?d00001 diff --git "a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/\364\200\206\212@2x-1.png" "b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_left.imageset/\364\200\206\212@2x-1.png" new file mode 100644 index 0000000000000000000000000000000000000000..724e5a0755ce0b5db1eb161a359d963dd2964121 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^LO`s*!3HGdYcxIrDb50q$YKTtF;x&|^bAt@02E{_ z4sv&5Sa(k5C6L3C?&#~tz_78O`%fY(kiXW`#WAFU@$I!h-a`fg$3Cvta5$vmb4cYu zgVljUG7T-34opI7i53!keeVwm9lAJux5=Ih^+lPRmh6AC)VI+~l|^`BpZBvn!Ct~j znuj8v#O`l4zI){9v6lkAg6Fj6_sT6+OnnmIu<3Zf6OH?+{U6y+NICkkE@?N4nJC|ZCpqw6%o1fU>e zage(c!@6@aFM%AEbVpxD28NCO+y z2x0!jrd)eL*V@QAxy;4-WsBL|hMD_*8gDAmH`tu2)oCj=P5Si#oyJN7?cSsNe0diq x%n`n*xZ#ic6Dh;p?+>g}%W1YZ5t{Lzaj{f{z~?GZx^prwfgF}}M_)$E)e-c@N{3uTs$B+ufqvw5j85B5J6O<$la<~~Z3HBt3 zNJ|2l4s&E|ejIjue*0c$z5#sx? literal 0 HcmV?d00001 diff --git "a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/\364\200\206\212@2x.png" "b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/\364\200\206\212@2x.png" new file mode 100644 index 0000000000000000000000000000000000000000..173c8693faf59fad4de9a24f46a5d685f612255d GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9f!3HE>1Nq z!D9xqiqD~E44fVgOcoA@KAJcj@>bm0-2YcyTxino+Kfv~J}y~)=QR_1Py0uvAKvlf z!IttwyX5T&@ex)B>NZR<6c$?_y!qg&AM&^OHb_lN`JZHR;n-4z$G5k>S?qd`bIAn> zVFVdQ&MBb@01HK76aWAK literal 0 HcmV?d00001 diff --git "a/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/\364\200\206\212@3x.png" "b/Climeet-iOS/Climeet-iOS/Assets.xcassets/Icons/Calendar/calendar_right.imageset/\364\200\206\212@3x.png" new file mode 100644 index 0000000000000000000000000000000000000000..72d56d862d0d7aa5a73435654688213190685395 GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^(m<@o!3HF6CMS6VDb50q$YKTtMGFvSbe(3H02E{_ z4sv&5Sa(k5C6L3C?&#~tz_78O`%fY(kbl9`#WAFU@$L0M-a`fg$3E(7%xLj)U=k`| z0HY0-Gg(yTuoM);9NsH%=vUF-2(SO1n^X9ItL9GI*06Nd$zwUre`W?~|NgP!y{G8~ z`*k80miuWgSU+>aL1|%`e^PsH-%#50&Cz{1-=+h17%%>1+Oz4PH~Y*7k{3k}2rr6e zNNxV{<@9fMC(-EHt(kX}S22~ig#4;Jkt=>G`W#=N=z<-4dzoIoW^ieKHGj)BrcO86 zm`d}Z>Zw#KUelF{r G5}E)fm3i#| literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/unnamed_gray_103.colorset/Contents.json b/Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/unnamed_gray_103.colorset/Contents.json new file mode 100644 index 0000000..f8c0cd7 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Assets.xcassets/UnNamedColor/unnamed_gray_103.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x67", + "green" : "0x67", + "red" : "0x67" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x67", + "green" : "0x67", + "red" : "0x67" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} From 06993635e0dfdf2cd33628898290c605ccab511b Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Mon, 17 Jun 2024 10:30:36 +0900 Subject: [PATCH 14/22] =?UTF-8?q?feat:=20CustomCalendarView=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 --- .../Extension/Date + datesOfMonth.swift | 45 +++++++ .../Common/Extension/DateFormatter + .swift | 9 ++ .../ActivityCalendar/Model/CalendarDate.swift | 14 +++ .../View/CustomCalendarView.swift | 117 ++++++++++++++++++ 4 files changed, 185 insertions(+) create mode 100644 Climeet-iOS/Climeet-iOS/Common/Extension/Date + datesOfMonth.swift create mode 100644 Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift create mode 100644 Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift diff --git a/Climeet-iOS/Climeet-iOS/Common/Extension/Date + datesOfMonth.swift b/Climeet-iOS/Climeet-iOS/Common/Extension/Date + datesOfMonth.swift new file mode 100644 index 0000000..68ab7f3 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Common/Extension/Date + datesOfMonth.swift @@ -0,0 +1,45 @@ +// +// Date + datesOfMonth.swift +// Climeet-iOS +// +// Created by KOVI on 6/17/24. +// + +import Foundation + +extension Date { + func datesOfMonth() -> [Date] { + let calendar = Calendar.current + let currentMonth = calendar.component (.month, from: self) + let currentYear = calendar.component(.year, from: self) + + var startDateComponents = DateComponents() + startDateComponents.year = currentYear + startDateComponents.month = currentMonth + startDateComponents.day = 1 + let startDate = calendar.date(from: startDateComponents)! + + var endDateComponents = DateComponents() + endDateComponents.month = 1 + endDateComponents.day = -1 + + let endDate = calendar.date(byAdding: endDateComponents, to: startDate)! + + var dates: [Date] = [] + var currentDate = startDate + + while currentDate <= endDate { + dates.append (currentDate) + currentDate = calendar.date(byAdding: .day, value: 1, to: currentDate)! + } + + return dates + } + + func string() -> String { + let formatter = DateFormatter() + formatter.dateFormat = "MM/dd/yyyy" + + return formatter.string(from: self) + } +} diff --git a/Climeet-iOS/Climeet-iOS/Common/Extension/DateFormatter + .swift b/Climeet-iOS/Climeet-iOS/Common/Extension/DateFormatter + .swift index 498fb62..1f20467 100644 --- a/Climeet-iOS/Climeet-iOS/Common/Extension/DateFormatter + .swift +++ b/Climeet-iOS/Climeet-iOS/Common/Extension/DateFormatter + .swift @@ -35,4 +35,13 @@ extension DateFormatter { formatter.locale = Locale(identifier: "en_US_POSIX") // AM/PM 표기를 위해 영어 로케일 사용 return formatter }() + + // MARK: 2023.12 + static let yearPointMonthFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.dateFormat = "yyyy.MM" + formatter.timeZone = TimeZone(identifier: "Asia/Seoul") + formatter.locale = Locale(identifier: "ko_KR") + return formatter + }() } diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift new file mode 100644 index 0000000..f034f56 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift @@ -0,0 +1,14 @@ +// +// CalendarDate.swift +// Climeet-iOS +// +// Created by KOVI on 6/16/24. +// + +import Foundation + +struct CalendarDate: Identifiable { + let id = UUID() + var day: Int + var date: Date +} diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift new file mode 100644 index 0000000..b2fd653 --- /dev/null +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift @@ -0,0 +1,117 @@ +// +// CustomCalendarView.swift +// Climeet-iOS +// +// Created by KOVI on 6/16/24. +// + +import SwiftUI + +struct CustomCalendarView: View { + let days = ["일", "월", "화", "수", "목", "금", "토"] + @State var selectedMonth: Int = 0 + @State var selectedDate = Date() + + var body: some View { + VStack { + HStack { + Button { + withAnimation { + selectedMonth -= 1 + } + } label: { + Image(uiImage: UIImage(named: "calendar_left")!) + } + + Spacer() + + Text("\(fetchYearAndMonth())") + .font(.climeetFontTitle3()) + .foregroundColor(.levelColorWhite) + + Spacer() + + Button { + withAnimation { + selectedMonth += 1 + } + } label: { + Image(uiImage: UIImage(named: "calendar_right")!) + } + } + .padding(.top, 29) + .padding(.horizontal, 27) + + HStack { + ForEach(days, id: \.self) { day in + Text(day) + .font(.climeetFontParagraph1()) + .foregroundColor(.levelColorWhite) + .frame(maxWidth: .infinity) + } + } + .padding(.top, 27) + .padding() + + LazyVGrid(columns: Array(repeating: GridItem(.flexible()), count: 7), spacing: 10) { + ForEach(fetchDates()) { value in + if value.day != -1 { + VStack { + Rectangle() + .frame(width: 36, height: 36) + .cornerRadius(5) + .foregroundColor(.text08) + + Text("\(value.day)") + .font(.climeetFontParagraph6()) + .foregroundColor( + value.date.string() == Date().string() ? .climeetMain : .text06 + ) + + } + } else { + Text("") + } + } + } + .padding() + + } + .onChange(of: selectedMonth, { _, _ in + selectedDate = fetchSelectedMonth() + }) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(.text09) + } + + private func fetchDates() -> [CalendarDate] { + let calendar = Calendar.current + let currentMonth = fetchSelectedMonth() + var dates = currentMonth.datesOfMonth().map { + CalendarDate(day: calendar.component(.day, from: $0), date: $0) + } + + let firstDayOfWeek = calendar.component(.weekday, from: dates.first?.date ?? Date()) + + for _ in 0.. Date { + let calendar = Calendar.current + let month = calendar.date(byAdding: .month, value: selectedMonth, to: Date()) + + return month! + } + + private func fetchYearAndMonth() -> String { + return DateFormatter.yearPointMonthFormatter.string(from: selectedDate) + } +} + +#Preview { + CustomCalendarView() +} From 4a05c0ce25668ef24dfd3401d03e365c1ea96b53 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Mon, 17 Jun 2024 10:31:18 +0900 Subject: [PATCH 15/22] =?UTF-8?q?feat:=20ActivityCalendarView,=20Reducer?= =?UTF-8?q?=20=EC=B4=88=EA=B8=B0=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityCalendarReducer.swift | 17 +++++++++++++++-- .../ActivityCalendar/ActivityCalendarView.swift | 17 ++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift index a6fd4eb..b5d0308 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift @@ -13,16 +13,29 @@ struct ActivityCalendarReducer { @ObservableState struct State { - + var isSelectedRecordButton = true } enum Action { + case recordButtonTapped + case statisticButtonTapped } var body: some ReducerOf { Reduce { state, action in - return .none + switch action { + case .recordButtonTapped: + state.isSelectedRecordButton = true + + return .none + + case .statisticButtonTapped: + state.isSelectedRecordButton = false + + return .none + + } } } } diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift index 232b391..4f6a374 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift @@ -16,26 +16,33 @@ struct ActivityCalendarView: View { VStack { HStack(spacing: 15) { Button { - + store.send(.recordButtonTapped) } label: { Text("기록") .font(.climeetFontTitle3()) - .foregroundColor(.levelColorWhite) + .foregroundColor( + store.isSelectedRecordButton ? .levelColorWhite : .unnamedGray103 + ) } Button { - + store.send(.statisticButtonTapped) } label: { Text("통계") .font(.climeetFontTitle3()) - .foregroundColor(.levelColorWhite) + .foregroundColor( + !store.isSelectedRecordButton ? .levelColorWhite : .unnamedGray103 + ) } Spacer() } - + .padding(.top, 43) + .padding(.leading, 26) Spacer() } + + CustomCalendarView() } .frame(maxWidth: .infinity, maxHeight: .infinity) .background(.text09) From 428e615dc6552f6f7b1f59f27baf7b7f1ff810d3 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Mon, 17 Jun 2024 10:32:13 +0900 Subject: [PATCH 16/22] =?UTF-8?q?feat:=20TabView=20=EC=97=B0=EA=B2=B0?= =?UTF-8?q?=EC=A0=90=EC=9D=84=20ActivityCalendar=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Climeet-iOS.xcodeproj/project.pbxproj | 28 ++++++++++++++++++ Climeet-iOS/Climeet-iOS/Climeet_iOSApp.swift | 6 +++- .../Climeet-iOS/Presentation/.DS_Store | Bin 0 -> 6148 bytes .../Presentation/Tab/TabView.swift | 5 ++-- 4 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 Climeet-iOS/Climeet-iOS/Presentation/.DS_Store diff --git a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj index cff81c3..f06653a 100644 --- a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj +++ b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj @@ -23,6 +23,9 @@ D42357432C1DFD320070DB70 /* CustomTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357422C1DFD320070DB70 /* CustomTabView.swift */; }; D42357462C1DFFBF0070DB70 /* ActivityCalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */; }; D42357482C1DFFDF0070DB70 /* ActivityCalendarReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */; }; + D423574E2C1E21260070DB70 /* CalendarDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D423574D2C1E21260070DB70 /* CalendarDate.swift */; }; + D42357522C1E21DC0070DB70 /* CustomCalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357512C1E21DC0070DB70 /* CustomCalendarView.swift */; }; + D42357542C1FC8910070DB70 /* Date + datesOfMonth.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357532C1FC8910070DB70 /* Date + datesOfMonth.swift */; }; D442A3DE2BF9D36500A58F92 /* SearchAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */; }; D442A3E12BF9D3F400A58F92 /* SearchRequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */; }; D442A3E62BF9D6C800A58F92 /* SearchRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3E52BF9D6C800A58F92 /* SearchRepository.swift */; }; @@ -79,6 +82,9 @@ D42357422C1DFD320070DB70 /* CustomTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomTabView.swift; sourceTree = ""; }; D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCalendarView.swift; sourceTree = ""; }; D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCalendarReducer.swift; sourceTree = ""; }; + D423574D2C1E21260070DB70 /* CalendarDate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarDate.swift; sourceTree = ""; }; + D42357512C1E21DC0070DB70 /* CustomCalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomCalendarView.swift; sourceTree = ""; }; + D42357532C1FC8910070DB70 /* Date + datesOfMonth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date + datesOfMonth.swift"; sourceTree = ""; }; D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchAPI.swift; sourceTree = ""; }; D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRequestModel.swift; sourceTree = ""; }; D442A3E52BF9D6C800A58F92 /* SearchRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRepository.swift; sourceTree = ""; }; @@ -206,10 +212,28 @@ children = ( D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */, D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */, + D423574C2C1E21160070DB70 /* Model */, + D42357492C1E0A120070DB70 /* View */, ); path = ActivityCalendar; sourceTree = ""; }; + D42357492C1E0A120070DB70 /* View */ = { + isa = PBXGroup; + children = ( + D42357512C1E21DC0070DB70 /* CustomCalendarView.swift */, + ); + path = View; + sourceTree = ""; + }; + D423574C2C1E21160070DB70 /* Model */ = { + isa = PBXGroup; + children = ( + D423574D2C1E21260070DB70 /* CalendarDate.swift */, + ); + path = Model; + sourceTree = ""; + }; D442A3DF2BF9D3D900A58F92 /* RequestModel */ = { isa = PBXGroup; children = ( @@ -379,6 +403,7 @@ D4930E302C0F3EE2002E138B /* Text + init.swift */, D47392092C192D7F0059AE45 /* View + onReadSize.swift */, D47392112C198E250059AE45 /* DateFormatter + .swift */, + D42357532C1FC8910070DB70 /* Date + datesOfMonth.swift */, ); path = Extension; sourceTree = ""; @@ -534,6 +559,7 @@ D4B75EE92C0B36350074870D /* Logger +.swift in Sources */, D4EE0CFA2BD14AC6004C6688 /* NetworkProvider.swift in Sources */, D442A3E62BF9D6C800A58F92 /* SearchRepository.swift in Sources */, + D423574E2C1E21260070DB70 /* CalendarDate.swift in Sources */, D473920A2C192D800059AE45 /* View + onReadSize.swift in Sources */, D4930E312C0F3EE2002E138B /* Text + init.swift in Sources */, D47A3AAD2C0CAC4B0031DCAA /* SearchReducer.swift in Sources */, @@ -550,6 +576,7 @@ D442A3E12BF9D3F400A58F92 /* SearchRequestModel.swift in Sources */, D4EE0CFF2BD14B59004C6688 /* ExampleAPI.swift in Sources */, D4832BB72C0DD245007731FD /* UserUsecase.swift in Sources */, + D42357542C1FC8910070DB70 /* Date + datesOfMonth.swift in Sources */, D47392122C198E250059AE45 /* DateFormatter + .swift in Sources */, D42357462C1DFFBF0070DB70 /* ActivityCalendarView.swift in Sources */, D42357482C1DFFDF0070DB70 /* ActivityCalendarReducer.swift in Sources */, @@ -559,6 +586,7 @@ D4B75EF02C0B3D540074870D /* Error + toAppError.swift in Sources */, D4F161782C1AAB6300BF4392 /* RootSelectionView.swift in Sources */, D47A3AB32C0CAE2D0031DCAA /* SearchUsecase.swift in Sources */, + D42357522C1E21DC0070DB70 /* CustomCalendarView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Climeet-iOS/Climeet-iOS/Climeet_iOSApp.swift b/Climeet-iOS/Climeet-iOS/Climeet_iOSApp.swift index ef678a0..11f1682 100644 --- a/Climeet-iOS/Climeet-iOS/Climeet_iOSApp.swift +++ b/Climeet-iOS/Climeet-iOS/Climeet_iOSApp.swift @@ -6,12 +6,16 @@ // import SwiftUI +import ComposableArchitecture @main struct ClimeetiOSApp: App { var body: some Scene { WindowGroup { - ContentView() + TabView() +// ActivityRecordView(store: Store(initialState: ActivityRecordReducer.State(), reducer: { +// ActivityRecordReducer() +// })) } } } diff --git a/Climeet-iOS/Climeet-iOS/Presentation/.DS_Store b/Climeet-iOS/Climeet-iOS/Presentation/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f0fdd13af52ca01f6f3dec2fe8931af81b5c0d10 GIT binary patch literal 6148 zcmeHKOG*P#5UkcL0&ZsM@?F6jj4_@d7f_5yAdC<+kln02mq)YugD^}4H*TaFy6e53 zuJ@Q)Oiu%_)%*4a=m0F~j`;8}H-GLvvx~|Yk8c9h8O{e3#P-kj#+}(JVERW$3$jmmQ-R=twsz>I`ggS`ob|W>986;tZufNP%Lie z`7O#}eWIcikOET$E_2&?|G%gIF#k_U+DQQ^@UIlG#d@<|@s+B#&R))YZKFTXz2=kd q#&u8_q8$^X9dqOD_&SQRuKAkJ`@%6X=*$P5sGkAXMJ5IQT7fVAJ{Qjb literal 0 HcmV?d00001 diff --git a/Climeet-iOS/Climeet-iOS/Presentation/Tab/TabView.swift b/Climeet-iOS/Climeet-iOS/Presentation/Tab/TabView.swift index 511dee6..9010298 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/Tab/TabView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/Tab/TabView.swift @@ -40,9 +40,10 @@ struct TabView: View { ActivityRecordReducer() })) case .activity: - ActivityRecordView(store: Store(initialState: ActivityRecordReducer.State(), reducer: { - ActivityRecordReducer() + ActivityCalendarView(store: Store(initialState: ActivityCalendarReducer.State(), reducer: { + ActivityCalendarReducer() })) + case .mypage: // 마이페이지화면 SearchView(store: Store(initialState: SearchReducer.State(), reducer: { From b3a2f57f76da231d6b3a7e128879f9b613c08d5a Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Tue, 18 Jun 2024 19:09:25 +0900 Subject: [PATCH 17/22] =?UTF-8?q?feat:=20Customcalendar=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityCalendar/ActivityCalendarView.swift | 4 +++- .../View/CustomCalendarView.swift | 15 ++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift index 4f6a374..3368369 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift @@ -42,7 +42,9 @@ struct ActivityCalendarView: View { Spacer() } - CustomCalendarView() + CustomCalendarView(action: { + // TODO: Action부 정의 + }) } .frame(maxWidth: .infinity, maxHeight: .infinity) .background(.text09) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift index b2fd653..365f33e 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift @@ -11,6 +11,7 @@ struct CustomCalendarView: View { let days = ["일", "월", "화", "수", "목", "금", "토"] @State var selectedMonth: Int = 0 @State var selectedDate = Date() + var action: () -> Void var body: some View { VStack { @@ -25,10 +26,14 @@ struct CustomCalendarView: View { Spacer() - Text("\(fetchYearAndMonth())") - .font(.climeetFontTitle3()) - .foregroundColor(.levelColorWhite) - + Button { + // TODO: Action + } label: { + Text("\(fetchYearAndMonth())") + .font(.climeetFontTitle3()) + .foregroundColor(.levelColorWhite) + } + Spacer() Button { @@ -113,5 +118,5 @@ struct CustomCalendarView: View { } #Preview { - CustomCalendarView() + CustomCalendarView { } } From c7853c60833d3a9367ce34b1a540dcc2ab977045 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Thu, 20 Jun 2024 13:17:05 +0900 Subject: [PATCH 18/22] =?UTF-8?q?feat:=20CalendarDate=20=EC=9D=B4=EB=8B=88?= =?UTF-8?q?=EC=85=9C=EB=9D=BC=EC=9D=B4=EC=A0=80=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityCalendar/Model/CalendarDate.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift index f034f56..10f9f25 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/Model/CalendarDate.swift @@ -11,4 +11,12 @@ struct CalendarDate: Identifiable { let id = UUID() var day: Int var date: Date + + init( + day: Int = .zero, + date: Date = Date() + ) { + self.day = day + self.date = date + } } From ae00da7aeb4f21bf889ad574a2a468b2661fce83 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Thu, 20 Jun 2024 13:18:37 +0900 Subject: [PATCH 19/22] =?UTF-8?q?feat:=20CustomCalendar=EC=9D=98=20?= =?UTF-8?q?=EC=84=A0=ED=83=9D=EA=B3=BC=20=EC=95=A1=EC=85=98=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 --- ...alendarView.swift => CustomCalendar.swift} | 64 +++++++++++++------ 1 file changed, 43 insertions(+), 21 deletions(-) rename Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/{CustomCalendarView.swift => CustomCalendar.swift} (59%) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendar.swift similarity index 59% rename from Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift rename to Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendar.swift index 365f33e..5520992 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendarView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendar.swift @@ -7,11 +7,14 @@ import SwiftUI -struct CustomCalendarView: View { - let days = ["일", "월", "화", "수", "목", "금", "토"] - @State var selectedMonth: Int = 0 - @State var selectedDate = Date() - var action: () -> Void +struct CustomCalendar: View { + + @Binding var selectedMonth: Int + @Binding var tappedDate: CalendarDate + var calendarTitleTappedAction: () -> Void + + @State private var selectedDate = Date() + private let days = ["일", "월", "화", "수", "목", "금", "토"] var body: some View { VStack { @@ -27,13 +30,13 @@ struct CustomCalendarView: View { Spacer() Button { - // TODO: Action + calendarTitleTappedAction() } label: { Text("\(fetchYearAndMonth())") .font(.climeetFontTitle3()) .foregroundColor(.levelColorWhite) } - + Spacer() Button { @@ -62,17 +65,35 @@ struct CustomCalendarView: View { ForEach(fetchDates()) { value in if value.day != -1 { VStack { - Rectangle() - .frame(width: 36, height: 36) - .cornerRadius(5) - .foregroundColor(.text08) - - Text("\(value.day)") - .font(.climeetFontParagraph6()) - .foregroundColor( - value.date.string() == Date().string() ? .climeetMain : .text06 - ) + Button(action: { + tappedDate = value + }, label: { + Rectangle() + .frame(width: 36, height: 36) + .cornerRadius(5) + .foregroundColor( + tappedDate.day == value.day ? .text05 : .text08 + ) + }) + ZStack { + if value.date.string() == tappedDate.date.string() { + Rectangle() + .fill(Color.climeetMain) + .frame(width: 29, height: 15) + .cornerRadius(3) + + Text("\(value.day)") + .font(.climeetFontParagraph4()) + .foregroundColor(.levelColorBlack) + } else { + Text("\(value.day)") + .font(.climeetFontParagraph6()) + .foregroundColor( + value.date.string() == Date().string() ? .climeetMain : .text06 + ) + } + } } } else { Text("") @@ -82,6 +103,9 @@ struct CustomCalendarView: View { .padding() } + .onAppear { + selectedDate = fetchSelectedMonth() + } .onChange(of: selectedMonth, { _, _ in selectedDate = fetchSelectedMonth() }) @@ -89,6 +113,8 @@ struct CustomCalendarView: View { .background(.text09) } + // MARK: Private + private func fetchDates() -> [CalendarDate] { let calendar = Calendar.current let currentMonth = fetchSelectedMonth() @@ -116,7 +142,3 @@ struct CustomCalendarView: View { return DateFormatter.yearPointMonthFormatter.string(from: selectedDate) } } - -#Preview { - CustomCalendarView { } -} From a245c030c4f4643213dc043ba7613529bde4f9e5 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Thu, 20 Jun 2024 13:18:49 +0900 Subject: [PATCH 20/22] =?UTF-8?q?chore:=20=EB=B7=B0=20=EB=AA=85=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 --- .../Presentation/ActivityCalendar/View/CustomCalendar.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendar.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendar.swift index 5520992..45341e9 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendar.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/View/CustomCalendar.swift @@ -1,5 +1,5 @@ // -// CustomCalendarView.swift +// CustomCalendar.swift // Climeet-iOS // // Created by KOVI on 6/16/24. From b26f2d8268126826fa94b245803dbdc37e90dfd2 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Thu, 20 Jun 2024 13:19:04 +0900 Subject: [PATCH 21/22] =?UTF-8?q?feat:=20ActivityCalendarReducer=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityCalendarReducer.swift | 93 ++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift index b5d0308..e8c06d4 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarReducer.swift @@ -10,21 +10,72 @@ import ComposableArchitecture @Reducer struct ActivityCalendarReducer { + @Reducer + enum Destination { + case selectDate(DateTimePickerReducer) + } @ObservableState struct State { + var screenSize = CGSize(width: 0, height: 0) + var bottomSheetHeight: CGFloat = 0.0 var isSelectedRecordButton = true + var selectedMonth = 0 + var tappedCalendarDate = CalendarDate() + + @Presents var destination: Destination.State? } enum Action { + case selectedMonthChanged(Int) + case tappedCalendarDateChanged(CalendarDate) + case readViewSize(CGSize) case recordButtonTapped case statisticButtonTapped - + case calendarTitleButtonTapped + case destination(PresentationAction) } + // MARK: Internal + var body: some ReducerOf { Reduce { state, action in switch action { + case .selectedMonthChanged(let selectedMonth): + state.selectedMonth = selectedMonth + state.tappedCalendarDate = CalendarDate() + + return .none + + case let .tappedCalendarDateChanged(calendarDate): + state.tappedCalendarDate = calendarDate + + return .none + + case .readViewSize(let size): + state.screenSize = size + + return .none + + case .calendarTitleButtonTapped: + state.bottomSheetHeight = state.screenSize.height * SheetType.datePicker.displaySizeRatio + + var reducer = DateTimePickerReducer.State( + sheetType: .datePicker + ) + // DatePicker의 초기값 설정로직 + var datePickerSelectedDate: Date? + if state.tappedCalendarDate.day != .zero { + datePickerSelectedDate = state.tappedCalendarDate.date + } else { + datePickerSelectedDate = firstDayOfOffsetMonth(selectedMonth: state.selectedMonth) + } + reducer.selectedDate = datePickerSelectedDate ?? Date() + + state.destination = .selectDate(reducer) + + return .none + case .recordButtonTapped: state.isSelectedRecordButton = true @@ -34,8 +85,48 @@ struct ActivityCalendarReducer { state.isSelectedRecordButton = false return .none + + case let .destination(.presented(.selectDate(.delegate(.selectDate(selectedDate))))): + let monthDifference = monthsBetweenNowDate(date: selectedDate) + state.selectedMonth = monthDifference + state.tappedCalendarDate = CalendarDate( + day: Calendar.current.component(.day, from: selectedDate), + date: selectedDate + ) + + return .none + + case .destination: + return .none } } + .ifLet(\.$destination, action: \.destination) + } + + private func monthsBetweenNowDate(date: Date) -> Int { + let calendar = Calendar.current + + let startComponents = calendar.dateComponents([.year, .month], from: Date()) + let endComponents = calendar.dateComponents([.year, .month], from: date) + + if let startYear = startComponents.year, let startMonth = startComponents.month, + let endYear = endComponents.year, let endMonth = endComponents.month { + return (endYear - startYear) * 12 + (endMonth - startMonth) + } + + return 0 + } + + private func firstDayOfOffsetMonth(selectedMonth: Int) -> Date { + let calendar = Calendar.current + let currentMonthAdded = calendar.date(byAdding: .month, value: selectedMonth, to: Date())! + + var components = calendar.dateComponents([.year, .month], from: currentMonthAdded) + components.day = 1 + + let firstDayOfMonth = calendar.date(from: components)! + + return firstDayOfMonth } } From 719212c7568546318a26d36e8d8fb3bd00d7f5a7 Mon Sep 17 00:00:00 2001 From: hyeonung Seo Date: Thu, 20 Jun 2024 13:19:18 +0900 Subject: [PATCH 22/22] =?UTF-8?q?feat:=20ActivityCalendarView=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 --- .../Climeet-iOS.xcodeproj/project.pbxproj | 8 +++---- .../xcdebugger/Breakpoints_v2.xcbkptlist | 18 --------------- .../ActivityCalendarView.swift | 23 +++++++++++++++---- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj index f06653a..d4a8b18 100644 --- a/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj +++ b/Climeet-iOS/Climeet-iOS.xcodeproj/project.pbxproj @@ -24,7 +24,7 @@ D42357462C1DFFBF0070DB70 /* ActivityCalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */; }; D42357482C1DFFDF0070DB70 /* ActivityCalendarReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */; }; D423574E2C1E21260070DB70 /* CalendarDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D423574D2C1E21260070DB70 /* CalendarDate.swift */; }; - D42357522C1E21DC0070DB70 /* CustomCalendarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357512C1E21DC0070DB70 /* CustomCalendarView.swift */; }; + D42357522C1E21DC0070DB70 /* CustomCalendar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357512C1E21DC0070DB70 /* CustomCalendar.swift */; }; D42357542C1FC8910070DB70 /* Date + datesOfMonth.swift in Sources */ = {isa = PBXBuildFile; fileRef = D42357532C1FC8910070DB70 /* Date + datesOfMonth.swift */; }; D442A3DE2BF9D36500A58F92 /* SearchAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */; }; D442A3E12BF9D3F400A58F92 /* SearchRequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */; }; @@ -83,7 +83,7 @@ D42357452C1DFFBF0070DB70 /* ActivityCalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCalendarView.swift; sourceTree = ""; }; D42357472C1DFFDF0070DB70 /* ActivityCalendarReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityCalendarReducer.swift; sourceTree = ""; }; D423574D2C1E21260070DB70 /* CalendarDate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarDate.swift; sourceTree = ""; }; - D42357512C1E21DC0070DB70 /* CustomCalendarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomCalendarView.swift; sourceTree = ""; }; + D42357512C1E21DC0070DB70 /* CustomCalendar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomCalendar.swift; sourceTree = ""; }; D42357532C1FC8910070DB70 /* Date + datesOfMonth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date + datesOfMonth.swift"; sourceTree = ""; }; D442A3DD2BF9D36500A58F92 /* SearchAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchAPI.swift; sourceTree = ""; }; D442A3E02BF9D3F400A58F92 /* SearchRequestModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRequestModel.swift; sourceTree = ""; }; @@ -221,7 +221,7 @@ D42357492C1E0A120070DB70 /* View */ = { isa = PBXGroup; children = ( - D42357512C1E21DC0070DB70 /* CustomCalendarView.swift */, + D42357512C1E21DC0070DB70 /* CustomCalendar.swift */, ); path = View; sourceTree = ""; @@ -586,7 +586,7 @@ D4B75EF02C0B3D540074870D /* Error + toAppError.swift in Sources */, D4F161782C1AAB6300BF4392 /* RootSelectionView.swift in Sources */, D47A3AB32C0CAE2D0031DCAA /* SearchUsecase.swift in Sources */, - D42357522C1E21DC0070DB70 /* CustomCalendarView.swift in Sources */, + D42357522C1E21DC0070DB70 /* CustomCalendar.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Climeet-iOS/Climeet-iOS.xcodeproj/xcuserdata/kovihouseteam.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Climeet-iOS/Climeet-iOS.xcodeproj/xcuserdata/kovihouseteam.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index 2bc988e..d80867f 100644 --- a/Climeet-iOS/Climeet-iOS.xcodeproj/xcuserdata/kovihouseteam.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/Climeet-iOS/Climeet-iOS.xcodeproj/xcuserdata/kovihouseteam.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -3,22 +3,4 @@ uuid = "ABF4A7BC-F0C2-461F-80DF-4C114271ECD4" type = "1" version = "2.0"> - - - - - - diff --git a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift index 3368369..d113f93 100644 --- a/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift +++ b/Climeet-iOS/Climeet-iOS/Presentation/ActivityCalendar/ActivityCalendarView.swift @@ -9,7 +9,7 @@ import SwiftUI import ComposableArchitecture struct ActivityCalendarView: View { - let store: StoreOf + @Bindable var store: StoreOf var body: some View { ScrollView(.vertical) { @@ -42,12 +42,27 @@ struct ActivityCalendarView: View { Spacer() } - CustomCalendarView(action: { - // TODO: Action부 정의 - }) + CustomCalendar( + selectedMonth: $store.selectedMonth.sending(\.selectedMonthChanged), + tappedDate: $store.tappedCalendarDate.sending(\.tappedCalendarDateChanged), + calendarTitleTappedAction: { + store.send(.calendarTitleButtonTapped) + } + ) } .frame(maxWidth: .infinity, maxHeight: .infinity) .background(.text09) + .onReadSize({ size in + store.send(.readViewSize(size)) + }) + .sheet( + item: $store.scope( + state: \.destination?.selectDate, + action: \.destination.selectDate) + ) { dateTimePickerStore in + DateTimePickerView(store: dateTimePickerStore) + .presentationDetents([.height(store.bottomSheetHeight)]) + } } }