From d65abb0635fafa666ca5d11f3ebd3cd2827c4953 Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:11:11 +0900 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20iPad=20=EC=9C=88=EB=8F=84=EC=9A=B0?= =?UTF-8?q?=20=EB=A6=AC=EC=82=AC=EC=9D=B4=EC=A7=95=20plist=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=EB=B3=B5=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevLogApp/Sources/Resource/Info.plist | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Application/DevLogApp/Sources/Resource/Info.plist b/Application/DevLogApp/Sources/Resource/Info.plist index 20160ae8..5c328b93 100644 --- a/Application/DevLogApp/Sources/Resource/Info.plist +++ b/Application/DevLogApp/Sources/Resource/Info.plist @@ -14,6 +14,8 @@ $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 + CFBundleDisplayName + DevLog CFBundleName $(PRODUCT_NAME) CFBundlePackageType @@ -42,13 +44,39 @@ $(CLIENT_ID) GITHUB_CLIENT_ID $(GITHUB_CLIENT_ID) + ITSAppUsesNonExemptEncryption + + LSApplicationCategoryType + public.app-category.productivity LSRequiresIPhoneOS PRIVACY_POLICY_URL $(PRIVACY_POLICY_URL) + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UIApplicationSupportsIndirectInputEvents + UIBackgroundModes remote-notification + UILaunchScreen + + UIStatusBarStyle + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + From 9d98d54318ce1d83fcf4f6ed6c13537e5c975b5b Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:16:13 +0900 Subject: [PATCH 2/4] =?UTF-8?q?chore:=20=EB=B6=88=ED=95=84=EC=9A=94=20?= =?UTF-8?q?=ED=82=A4=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/DevLogApp/Sources/Resource/Info.plist | 2 -- 1 file changed, 2 deletions(-) diff --git a/Application/DevLogApp/Sources/Resource/Info.plist b/Application/DevLogApp/Sources/Resource/Info.plist index 5c328b93..0b7c3a8d 100644 --- a/Application/DevLogApp/Sources/Resource/Info.plist +++ b/Application/DevLogApp/Sources/Resource/Info.plist @@ -65,8 +65,6 @@ UILaunchScreen - UIStatusBarStyle - UISupportedInterfaceOrientations UIInterfaceOrientationPortrait From 732a78d8fd842552b42f326de3c6f8e91548b32f Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:24:58 +0900 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20ProfileView=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=ED=88=B4=EB=B0=94=20=EB=B2=84=ED=8A=BC=EC=9D=B4=20=EB=B3=B4?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=20=EC=95=8A=EB=8D=98=20=ED=98=84=EC=83=81=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevLogPresentation/Sources/Profile/ProfileView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/DevLogPresentation/Sources/Profile/ProfileView.swift b/Application/DevLogPresentation/Sources/Profile/ProfileView.swift index 25727f13..6ce916c8 100644 --- a/Application/DevLogPresentation/Sources/Profile/ProfileView.swift +++ b/Application/DevLogPresentation/Sources/Profile/ProfileView.swift @@ -27,7 +27,6 @@ struct ProfileView: View { profileContentView } } - .toolbar { profileToolbarContent } .onChange(of: focused) { _, newValue in withAnimation { coordinator.viewModel.send(.updateStatusTextFieldFocus(newValue)) @@ -127,6 +126,7 @@ struct ProfileView: View { .refreshable { coordinator.viewModel.send(.refresh) } .frame(maxWidth: .infinity) .background(Color(.systemGroupedBackground)) + .toolbar { profileToolbarContent } } @ToolbarContentBuilder From a6062367a40349af6e10d17a86b94a09f7073322 Mon Sep 17 00:00:00 2001 From: opficdev <162981733+opficdev@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:31:06 +0900 Subject: [PATCH 4/4] =?UTF-8?q?refactor:=20Setting=20->=20Settings=20?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B4=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project.pbxproj | 72 +++++++++---------- .../Sources/Main/MainView.swift | 6 +- .../Sources/Profile/ProfileView.swift | 6 +- .../Profile/ProfileViewCoordinator.swift | 4 +- .../{Setting => Settings}/AccountView.swift | 0 .../AccountViewModel.swift | 0 .../PushNotificationSettingsView.swift | 0 .../PushNotificationSettingsViewModel.swift | 0 .../SettingsView.swift} | 6 +- .../SettingsViewModel.swift} | 6 +- .../{Setting => Settings}/ThemeView.swift | 0 11 files changed, 50 insertions(+), 50 deletions(-) rename Application/DevLogPresentation/Sources/{Setting => Settings}/AccountView.swift (100%) rename Application/DevLogPresentation/Sources/{Setting => Settings}/AccountViewModel.swift (100%) rename Application/DevLogPresentation/Sources/{Setting => Settings}/PushNotificationSettingsView.swift (100%) rename Application/DevLogPresentation/Sources/{Setting => Settings}/PushNotificationSettingsViewModel.swift (100%) rename Application/DevLogPresentation/Sources/{Setting/SettingView.swift => Settings/SettingsView.swift} (98%) rename Application/DevLogPresentation/Sources/{Setting/SettingViewModel.swift => Settings/SettingsViewModel.swift} (98%) rename Application/DevLogPresentation/Sources/{Setting => Settings}/ThemeView.swift (100%) diff --git a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj index 32019f8f..8c5c5fc4 100644 --- a/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj +++ b/Application/DevLogPresentation/DevLogPresentation.xcodeproj/project.pbxproj @@ -25,6 +25,7 @@ 2B0C47EBD387EEABE2A90A99 /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCFF8EE1B8855BA6B7BC315F /* SearchViewModel.swift */; }; 2C9840C424A0D3C85D1001C9 /* TestSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5156DCFD77B78CAEE004CDDD /* TestSupport.swift */; }; 2DB84D2FBEA0653D48DF614F /* HeatmapDay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70B652BF58D45805A57ECCE0 /* HeatmapDay.swift */; }; + 30EBAE1A8A4CE21E038CE554 /* PushNotificationSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2A3E43D991EFE9EF2FB3510 /* PushNotificationSettingsViewModel.swift */; }; 336D5F52E964A099E10AECFF /* TodoListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB658B8B1246F4399493FE3 /* TodoListItem.swift */; }; 34AFBED9DAEBD1F4E4A2DB2B /* TodoIdItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08ACC3D94A90881383764E6C /* TodoIdItem.swift */; }; 3801176C353549D8D259FF4A /* LoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4279F380763E7CFF063F4416 /* LoginView.swift */; }; @@ -32,7 +33,7 @@ 3AE04B27F085D1E67BA64537 /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF52D6EE30673D682147FAFE /* LoginViewModel.swift */; }; 40B4784EB5FDD90B5A2EC81B /* TodoManageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E90A0B2F4523B8570322F54C /* TodoManageViewModel.swift */; }; 41A5C4626505C6BF0643E43B /* MainTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 290DE2215D7061AC10A057D8 /* MainTab.swift */; }; - 439047A7AF80D876838710F2 /* AccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4CFA6FFA82E0EC3C25D527B /* AccountView.swift */; }; + 47C006F6D6AAA5848290E5E4 /* AccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A387E6A1194033F9F671A28F /* AccountView.swift */; }; 49631F09477091376DDA0E4D /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B457717DEF395F131159C04 /* MainView.swift */; }; 4BE7032EE7146793A5C58A94 /* ActivityKindItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09CC8A2FCF1577B150A08D83 /* ActivityKindItem.swift */; }; 4C07B469D6576A76BE71E639 /* TodoMarkdownContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFB7CB1992F8434647D2E8D1 /* TodoMarkdownContentView.swift */; }; @@ -57,6 +58,7 @@ 91A04437CA63E957BDD1A060 /* TodayTodoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 587B2119664DB4FDF4A18FFE /* TodayTodoItem.swift */; }; 92DAE6E67927B3014F7FB18A /* PushNotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C7A0A3DE0AB6D5E4DD116B /* PushNotificationItem.swift */; }; 959832CAA00E2B06DF0B8A83 /* TodoEditorViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2D739A2380C3D28C575D08 /* TodoEditorViewModel.swift */; }; + 968A5DDD560CC221D35657AA /* SettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF6F04B8737B498134BABBBD /* SettingsViewModel.swift */; }; 9ADFFABEE75489A526E1ECE5 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 252057C930A70DC1D5674EE5 /* HomeView.swift */; }; 9D69715291EB7F2AE704A722 /* NavigationRouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D136528209E2B94793441C78 /* NavigationRouter.swift */; }; A302B2F9FDCDAFAE5A852E94 /* RootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2195BF2BC362FB4BD570C915 /* RootView.swift */; }; @@ -64,35 +66,33 @@ AECD97E6C980B7940A3112E4 /* Error+SocialLogin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B6F1C309AC57614AD630F79 /* Error+SocialLogin.swift */; }; AFF2EFF4181D0AB292540962 /* NavigationBarConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A16A2DF4C226ACFE7E2F2BD /* NavigationBarConfigurator.swift */; }; B11D48231BFAFAA422C7CB30 /* DevLogPresentation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36A4E11056749B1D5DEF446 /* DevLogPresentation.framework */; }; + B19660510D0792E229B52C9A /* AccountViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A8F58AB3EE5F96A1DFB3DA6 /* AccountViewModel.swift */; }; B81EE3C71EC5CCC8CB9D5CAC /* TodayViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48DEAD71515D037F501E9B9F /* TodayViewModel.swift */; }; B8792A002416865EF41FCB5D /* TodayViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B434E6F27EFBC9D054461A /* TodayViewCoordinator.swift */; }; - BC607762E625C0DCD3B66E8A /* PushNotificationSettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2663D0FE64234FEBBDA9362C /* PushNotificationSettingsViewModel.swift */; }; BCDC49501F5BA61CABB12D2B /* MainViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FA78DB36F62C17E9957AFF /* MainViewCoordinator.swift */; }; BE51244E594875155551774A /* WebItemRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA1D8AFC51309CDFB5962985 /* WebItemRow.swift */; }; C13E62E8FB7D681C14A42AC1 /* HomeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55E834C7D761EA77E717C9DE /* HomeViewModel.swift */; }; C2530FF7F76903E54626D73B /* TodoEditorWindowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E802368D0BA811BD50470735 /* TodoEditorWindowView.swift */; }; C26C5A74B162EF0866093F6E /* OrderedCollections in Frameworks */ = {isa = PBXBuildFile; productRef = F44AF3158F945047473FA5E7 /* OrderedCollections */; }; + C2CFDA48F8D98DF428D7EF34 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A910FDF6E746B5EB7681DF87 /* SettingsView.swift */; }; C3883077C738EF1E76DFCC4C /* RelativeTimeText.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB112B525D9D6CB7B001028A /* RelativeTimeText.swift */; }; CAD9F0F9CDADF2FA55CBC78B /* CacheableImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C52955505427FEA95D9B3CC8 /* CacheableImage.swift */; }; CB6204EC0FB8557D7FAF7174 /* HeatmapActivityItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E174814D9FFAFC79746E1902 /* HeatmapActivityItem.swift */; }; D4C92919FF08171E53C15011 /* TodoDetailViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 334EB88BC5FC0BD7DDA6A0FE /* TodoDetailViewModel.swift */; }; + D53C4D51716DDE5956A78FB6 /* ThemeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17D5BE050186102B97FE88CA /* ThemeView.swift */; }; D73622D51033A4BAF3B68DAC /* HeatmapMonth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD8C6D9E12E040F7B612FB1 /* HeatmapMonth.swift */; }; - D7E51185AD82E7DB333300AF /* AccountViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D6ACE383B5F1DA964DAB252 /* AccountViewModel.swift */; }; D7F0530537BE180AEAA579BB /* DeletePushNotificationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A05BB3C999F4A364401871C5 /* DeletePushNotificationTests.swift */; }; D878C47DE4B2E1A9525FBCBF /* LoadingState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14DA5CF22287DA889A033F8E /* LoadingState.swift */; }; D988D2118F62024F5BA6A095 /* TodoEditorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82C8541262E532FA4A218650 /* TodoEditorView.swift */; }; - D99AD1D26B1D745028A93B8A /* SettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB82F4B31B49736F70F50EE7 /* SettingView.swift */; }; DCD8775B3F51592DD956952F /* HeatmapQuarter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 573AD2720FA89362FF4C4CEF /* HeatmapQuarter.swift */; }; DDC4E20C8BDB38D0087A5190 /* TodoDetailContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1EE8F142D93B01909B6D5C8 /* TodoDetailContentView.swift */; }; - DFF40ACAFF99281CECC2303E /* PushNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C346B13A821F3DFAB3489BBB /* PushNotificationSettingsView.swift */; }; E53B0B91BEE6857758DAF9ED /* TodoItemRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EA81C7F4127479FE7CCE033 /* TodoItemRow.swift */; }; E548BBC38D99E0D2C7D1FA4B /* Tags.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2D1521A459AF5AEFFA99A83 /* Tags.swift */; }; - E635248ED51664A502A7F08A /* ThemeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BC344F5437426E7A309429 /* ThemeView.swift */; }; E8077B723C81E374416DE861 /* TodoEditorWindowValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FA597F8A6C68F9460DE11FC /* TodoEditorWindowValue.swift */; }; E95BB5F53AE62F152798567D /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 950469A44DFD1834A6BFC4B2 /* DevLogDomain.framework */; }; ED2003CBD86C61AB483F9D15 /* TodoManageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E41DC5D62BCD0C53ADF8E7A6 /* TodoManageView.swift */; }; EDDAC6A024EB85257A37723E /* TodayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C91DE4D388124119156BC64E /* TodayView.swift */; }; - F20FC30D05246FD333F034DE /* SettingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B81F9AF1E3CEC36D194A916C /* SettingViewModel.swift */; }; + F41D584F8BF5FF032AA3B12A /* PushNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEE6F409C294C45A9623C41A /* PushNotificationSettingsView.swift */; }; F5D87CFA04C5DF6A6FA36129 /* TodoWindowCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF0435F01417FE17DE757ADB /* TodoWindowCoordinator.swift */; }; FA2E29AB049CAC97DE350BE9 /* ProfileViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A87C034F294C1825D3AC49C3 /* ProfileViewCoordinator.swift */; }; /* End PBXBuildFile section */ @@ -134,14 +134,15 @@ 085FC0504CE36484B655FB09 /* TodoEditorWindowEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorWindowEvent.swift; sourceTree = ""; }; 08ACC3D94A90881383764E6C /* TodoIdItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoIdItem.swift; sourceTree = ""; }; 09CC8A2FCF1577B150A08D83 /* ActivityKindItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityKindItem.swift; sourceTree = ""; }; + 0A8F58AB3EE5F96A1DFB3DA6 /* AccountViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountViewModel.swift; sourceTree = ""; }; 0B8F3DEEF6527F9FBCBDCD5A /* TodoReferenceItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoReferenceItem.swift; sourceTree = ""; }; 0EB658B8B1246F4399493FE3 /* TodoListItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoListItem.swift; sourceTree = ""; }; 10169ED43745C8286BAA560A /* UserTodoCategoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserTodoCategoryItem.swift; sourceTree = ""; }; 14DA5CF22287DA889A033F8E /* LoadingState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingState.swift; sourceTree = ""; }; + 17D5BE050186102B97FE88CA /* ThemeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeView.swift; sourceTree = ""; }; 1B6F1C309AC57614AD630F79 /* Error+SocialLogin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Error+SocialLogin.swift"; sourceTree = ""; }; 2195BF2BC362FB4BD570C915 /* RootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RootView.swift; sourceTree = ""; }; 252057C930A70DC1D5674EE5 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; - 2663D0FE64234FEBBDA9362C /* PushNotificationSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationSettingsViewModel.swift; sourceTree = ""; }; 290DE2215D7061AC10A057D8 /* MainTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTab.swift; sourceTree = ""; }; 2AED8D48F34AE2476CCF4F5A /* TodoInfoSheetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoInfoSheetView.swift; sourceTree = ""; }; 334EB88BC5FC0BD7DDA6A0FE /* TodoDetailViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoDetailViewModel.swift; sourceTree = ""; }; @@ -151,7 +152,6 @@ 37323FDF36DF44C549A71A85 /* DeleteWebPageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteWebPageTests.swift; sourceTree = ""; }; 38030D2CAA016ABB3D0C396B /* Store.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Store.swift; sourceTree = ""; }; 3CA75873FCFFC6182662694B /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = ""; }; - 3D6ACE383B5F1DA964DAB252 /* AccountViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountViewModel.swift; sourceTree = ""; }; 3DC9F3129E8EEBF9CAC622E7 /* ProfileViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewModel.swift; sourceTree = ""; }; 3EA81C7F4127479FE7CCE033 /* TodoItemRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoItemRow.swift; sourceTree = ""; }; 4279F380763E7CFF063F4416 /* LoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginView.swift; sourceTree = ""; }; @@ -180,26 +180,25 @@ 80B7DE00658AC1080A3741C9 /* SearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchView.swift; sourceTree = ""; }; 82C8541262E532FA4A218650 /* TodoEditorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorView.swift; sourceTree = ""; }; 852D34A35C60375D1D9F9566 /* Color+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Hex.swift"; sourceTree = ""; }; - 89BC344F5437426E7A309429 /* ThemeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeView.swift; sourceTree = ""; }; 950469A44DFD1834A6BFC4B2 /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9A6BFC9AC306836245B6E5CD /* TodoDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoDetailView.swift; sourceTree = ""; }; 9E2D739A2380C3D28C575D08 /* TodoEditorViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorViewModel.swift; sourceTree = ""; }; A05BB3C999F4A364401871C5 /* DeletePushNotificationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeletePushNotificationTests.swift; sourceTree = ""; }; - A4CFA6FFA82E0EC3C25D527B /* AccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountView.swift; sourceTree = ""; }; + A387E6A1194033F9F671A28F /* AccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountView.swift; sourceTree = ""; }; A6F52E54B2F053507AE43819 /* PushNotificationListViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationListViewCoordinator.swift; sourceTree = ""; }; A87C034F294C1825D3AC49C3 /* ProfileViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewCoordinator.swift; sourceTree = ""; }; + A910FDF6E746B5EB7681DF87 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; A9B434E6F27EFBC9D054461A /* TodayViewCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayViewCoordinator.swift; sourceTree = ""; }; AB112B525D9D6CB7B001028A /* RelativeTimeText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelativeTimeText.swift; sourceTree = ""; }; ACA48428342FE3040FE708BE /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + AF6F04B8737B498134BABBBD /* SettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModel.swift; sourceTree = ""; }; B1EE8F142D93B01909B6D5C8 /* TodoDetailContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoDetailContentView.swift; sourceTree = ""; }; B2D1521A459AF5AEFFA99A83 /* Tags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tags.swift; sourceTree = ""; }; - B81F9AF1E3CEC36D194A916C /* SettingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingViewModel.swift; sourceTree = ""; }; B8C462E5D83C6B639A66ED26 /* LoginButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginButton.swift; sourceTree = ""; }; BA1D8AFC51309CDFB5962985 /* WebItemRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebItemRow.swift; sourceTree = ""; }; BF0435F01417FE17DE757ADB /* TodoWindowCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoWindowCoordinator.swift; sourceTree = ""; }; C0CBB0EEB3B15A4BE2EF9641 /* SystemTodoCategoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SystemTodoCategoryItem.swift; sourceTree = ""; }; C25193961AAF03B736D8BA4D /* MainViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewModel.swift; sourceTree = ""; }; - C346B13A821F3DFAB3489BBB /* PushNotificationSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationSettingsView.swift; sourceTree = ""; }; C52955505427FEA95D9B3CC8 /* CacheableImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CacheableImage.swift; sourceTree = ""; }; C8D191AD793EE0AC702B1539 /* WebPageItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebPageItem.swift; sourceTree = ""; }; C91DE4D388124119156BC64E /* TodayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodayView.swift; sourceTree = ""; }; @@ -209,14 +208,15 @@ D87DA85DC7F13D4E5B570ED6 /* UIKitTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitTextEditor.swift; sourceTree = ""; }; DA4D52F1343CECB8E0AC4742 /* View+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+.swift"; sourceTree = ""; }; DE04D300F1054596E630CF48 /* TodoCategoryItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoCategoryItem.swift; sourceTree = ""; }; + DEE6F409C294C45A9623C41A /* PushNotificationSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationSettingsView.swift; sourceTree = ""; }; E174814D9FFAFC79746E1902 /* HeatmapActivityItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeatmapActivityItem.swift; sourceTree = ""; }; E41DC5D62BCD0C53ADF8E7A6 /* TodoManageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoManageView.swift; sourceTree = ""; }; E71459EB54EF7A0B3F294418 /* WebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebView.swift; sourceTree = ""; }; E802368D0BA811BD50470735 /* TodoEditorWindowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoEditorWindowView.swift; sourceTree = ""; }; E90A0B2F4523B8570322F54C /* TodoManageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TodoManageViewModel.swift; sourceTree = ""; }; EACFDECD5652C67B68D4936D /* PushNotificationListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationListViewModel.swift; sourceTree = ""; }; + F2A3E43D991EFE9EF2FB3510 /* PushNotificationSettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationSettingsViewModel.swift; sourceTree = ""; }; F6D5BDBC6990696C3FA5B22A /* Toast.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Toast.swift; sourceTree = ""; }; - FB82F4B31B49736F70F50EE7 /* SettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingView.swift; sourceTree = ""; }; FCFF8EE1B8855BA6B7BC315F /* SearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = ""; }; FE61399BC82A4181913F8586 /* UnitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "UnitTests-Info.plist"; sourceTree = ""; }; FE62ED6DF757AF15ACBB2E07 /* PushNotificationListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushNotificationListView.swift; sourceTree = ""; }; @@ -354,7 +354,7 @@ E35F56087C5F3A236FD17FF2 /* Root */, D04E76D2F842BF00A4AC7226 /* Routing */, 7530E5897034E53A8917ABEF /* Search */, - 7A7A479862A8D15E79182C88 /* Setting */, + 9AE1515DA0CF983214BECC78 /* Settings */, 14A1A6F2D3820B4A5D46C522 /* Structure */, E90A426B16234A9CFAB33C3A /* Today */, ); @@ -411,20 +411,6 @@ path = Profile; sourceTree = ""; }; - 7A7A479862A8D15E79182C88 /* Setting */ = { - isa = PBXGroup; - children = ( - A4CFA6FFA82E0EC3C25D527B /* AccountView.swift */, - 3D6ACE383B5F1DA964DAB252 /* AccountViewModel.swift */, - C346B13A821F3DFAB3489BBB /* PushNotificationSettingsView.swift */, - 2663D0FE64234FEBBDA9362C /* PushNotificationSettingsViewModel.swift */, - FB82F4B31B49736F70F50EE7 /* SettingView.swift */, - B81F9AF1E3CEC36D194A916C /* SettingViewModel.swift */, - 89BC344F5437426E7A309429 /* ThemeView.swift */, - ); - path = Setting; - sourceTree = ""; - }; 80795F4F20E81C1E84803EB8 /* Support */ = { isa = PBXGroup; children = ( @@ -466,6 +452,20 @@ path = Main; sourceTree = ""; }; + 9AE1515DA0CF983214BECC78 /* Settings */ = { + isa = PBXGroup; + children = ( + A387E6A1194033F9F671A28F /* AccountView.swift */, + 0A8F58AB3EE5F96A1DFB3DA6 /* AccountViewModel.swift */, + DEE6F409C294C45A9623C41A /* PushNotificationSettingsView.swift */, + F2A3E43D991EFE9EF2FB3510 /* PushNotificationSettingsViewModel.swift */, + A910FDF6E746B5EB7681DF87 /* SettingsView.swift */, + AF6F04B8737B498134BABBBD /* SettingsViewModel.swift */, + 17D5BE050186102B97FE88CA /* ThemeView.swift */, + ); + path = Settings; + sourceTree = ""; + }; BEA53BCE9F5CBA2B9D2748D9 /* Login */ = { isa = PBXGroup; children = ( @@ -721,13 +721,13 @@ 41A5C4626505C6BF0643E43B /* MainTab.swift in Sources */, 909B1608BDEDA51B07F27332 /* SearchView.swift in Sources */, 2B0C47EBD387EEABE2A90A99 /* SearchViewModel.swift in Sources */, - 439047A7AF80D876838710F2 /* AccountView.swift in Sources */, - D7E51185AD82E7DB333300AF /* AccountViewModel.swift in Sources */, - DFF40ACAFF99281CECC2303E /* PushNotificationSettingsView.swift in Sources */, - BC607762E625C0DCD3B66E8A /* PushNotificationSettingsViewModel.swift in Sources */, - D99AD1D26B1D745028A93B8A /* SettingView.swift in Sources */, - F20FC30D05246FD333F034DE /* SettingViewModel.swift in Sources */, - E635248ED51664A502A7F08A /* ThemeView.swift in Sources */, + 47C006F6D6AAA5848290E5E4 /* AccountView.swift in Sources */, + B19660510D0792E229B52C9A /* AccountViewModel.swift in Sources */, + F41D584F8BF5FF032AA3B12A /* PushNotificationSettingsView.swift in Sources */, + 30EBAE1A8A4CE21E038CE554 /* PushNotificationSettingsViewModel.swift in Sources */, + C2CFDA48F8D98DF428D7EF34 /* SettingsView.swift in Sources */, + 968A5DDD560CC221D35657AA /* SettingsViewModel.swift in Sources */, + D53C4D51716DDE5956A78FB6 /* ThemeView.swift in Sources */, 4BE7032EE7146793A5C58A94 /* ActivityKindItem.swift in Sources */, CB6204EC0FB8557D7FAF7174 /* HeatmapActivityItem.swift in Sources */, 2DB84D2FBEA0653D48DF614F /* HeatmapDay.swift in Sources */, diff --git a/Application/DevLogPresentation/Sources/Main/MainView.swift b/Application/DevLogPresentation/Sources/Main/MainView.swift index 77287698..0614582f 100644 --- a/Application/DevLogPresentation/Sources/Main/MainView.swift +++ b/Application/DevLogPresentation/Sources/Main/MainView.swift @@ -359,13 +359,13 @@ struct MainView: View { TodoDetailView(viewModel: profileViewCoordinator.makeTodoDetailViewModel(todoId: todoId)) .id(todoId) case .settings: - SettingView(viewModel: profileViewCoordinator.settingViewModel) + SettingsView(viewModel: profileViewCoordinator.settingsViewModel) .environment(profileViewCoordinator.router) case .theme: ThemeView( theme: Binding( - get: { profileViewCoordinator.settingViewModel.state.theme }, - set: { profileViewCoordinator.settingViewModel.send(.setTheme($0)) } + get: { profileViewCoordinator.settingsViewModel.state.theme }, + set: { profileViewCoordinator.settingsViewModel.send(.setTheme($0)) } ) ) case .pushNotification: diff --git a/Application/DevLogPresentation/Sources/Profile/ProfileView.swift b/Application/DevLogPresentation/Sources/Profile/ProfileView.swift index 6ce916c8..3a01c5ab 100644 --- a/Application/DevLogPresentation/Sources/Profile/ProfileView.swift +++ b/Application/DevLogPresentation/Sources/Profile/ProfileView.swift @@ -148,15 +148,15 @@ struct ProfileView: View { private func profileDestinationView(_ route: ProfileRoute) -> some View { switch route { case .settings: - SettingView(viewModel: coordinator.settingViewModel) + SettingsView(viewModel: coordinator.settingsViewModel) .environment(coordinator.router) case .activity(let todoId): TodoDetailView(viewModel: coordinator.makeTodoDetailViewModel(todoId: todoId)) case .theme: ThemeView( theme: Binding( - get: { coordinator.settingViewModel.state.theme }, - set: { coordinator.settingViewModel.send(.setTheme($0)) } + get: { coordinator.settingsViewModel.state.theme }, + set: { coordinator.settingsViewModel.send(.setTheme($0)) } ) ) case .pushNotification: diff --git a/Application/DevLogPresentation/Sources/Profile/ProfileViewCoordinator.swift b/Application/DevLogPresentation/Sources/Profile/ProfileViewCoordinator.swift index 2a90f684..368275fc 100644 --- a/Application/DevLogPresentation/Sources/Profile/ProfileViewCoordinator.swift +++ b/Application/DevLogPresentation/Sources/Profile/ProfileViewCoordinator.swift @@ -13,7 +13,7 @@ import DevLogDomain @Observable final class ProfileViewCoordinator { let viewModel: ProfileViewModel - let settingViewModel: SettingViewModel + let settingsViewModel: SettingsViewModel var router = NavigationRouter() private let container: DIContainer @@ -27,7 +27,7 @@ final class ProfileViewCoordinator { fetchHeatmapActivityTypesUseCase: container.resolve(FetchHeatmapActivityTypesUseCase.self), updateHeatmapActivityTypesUseCase: container.resolve(UpdateHeatmapActivityTypesUseCase.self) ) - self.settingViewModel = SettingViewModel( + self.settingsViewModel = SettingsViewModel( deleteAuthUseCase: container.resolve(DeleteAuthUseCase.self), signOutUseCase: container.resolve(SignOutUseCase.self), networkConnectivityUseCase: container.resolve(ObserveNetworkConnectivityUseCase.self), diff --git a/Application/DevLogPresentation/Sources/Setting/AccountView.swift b/Application/DevLogPresentation/Sources/Settings/AccountView.swift similarity index 100% rename from Application/DevLogPresentation/Sources/Setting/AccountView.swift rename to Application/DevLogPresentation/Sources/Settings/AccountView.swift diff --git a/Application/DevLogPresentation/Sources/Setting/AccountViewModel.swift b/Application/DevLogPresentation/Sources/Settings/AccountViewModel.swift similarity index 100% rename from Application/DevLogPresentation/Sources/Setting/AccountViewModel.swift rename to Application/DevLogPresentation/Sources/Settings/AccountViewModel.swift diff --git a/Application/DevLogPresentation/Sources/Setting/PushNotificationSettingsView.swift b/Application/DevLogPresentation/Sources/Settings/PushNotificationSettingsView.swift similarity index 100% rename from Application/DevLogPresentation/Sources/Setting/PushNotificationSettingsView.swift rename to Application/DevLogPresentation/Sources/Settings/PushNotificationSettingsView.swift diff --git a/Application/DevLogPresentation/Sources/Setting/PushNotificationSettingsViewModel.swift b/Application/DevLogPresentation/Sources/Settings/PushNotificationSettingsViewModel.swift similarity index 100% rename from Application/DevLogPresentation/Sources/Setting/PushNotificationSettingsViewModel.swift rename to Application/DevLogPresentation/Sources/Settings/PushNotificationSettingsViewModel.swift diff --git a/Application/DevLogPresentation/Sources/Setting/SettingView.swift b/Application/DevLogPresentation/Sources/Settings/SettingsView.swift similarity index 98% rename from Application/DevLogPresentation/Sources/Setting/SettingView.swift rename to Application/DevLogPresentation/Sources/Settings/SettingsView.swift index 91bd74e7..059e32e9 100644 --- a/Application/DevLogPresentation/Sources/Setting/SettingView.swift +++ b/Application/DevLogPresentation/Sources/Settings/SettingsView.swift @@ -1,5 +1,5 @@ // -// SettingView.swift +// SettingsView.swift // DevLogPresentation // // Created by opfic on 5/6/25. @@ -8,9 +8,9 @@ import SwiftUI import DevLogDomain -struct SettingView: View { +struct SettingsView: View { @Environment(NavigationRouter.self) private var router - @State var viewModel: SettingViewModel + @State var viewModel: SettingsViewModel var body: some View { let connected = viewModel.state.isNetworkConnected diff --git a/Application/DevLogPresentation/Sources/Setting/SettingViewModel.swift b/Application/DevLogPresentation/Sources/Settings/SettingsViewModel.swift similarity index 98% rename from Application/DevLogPresentation/Sources/Setting/SettingViewModel.swift rename to Application/DevLogPresentation/Sources/Settings/SettingsViewModel.swift index aaddbab2..ab2401ed 100644 --- a/Application/DevLogPresentation/Sources/Setting/SettingViewModel.swift +++ b/Application/DevLogPresentation/Sources/Settings/SettingsViewModel.swift @@ -1,5 +1,5 @@ // -// SettingViewModel.swift +// SettingsViewModel.swift // DevLogPresentation // // Created by 최윤진 on 11/22/25. @@ -11,7 +11,7 @@ import DevLogCore import DevLogDomain @Observable -final class SettingViewModel: Store { +final class SettingsViewModel: Store { struct State: Equatable { var theme: SystemTheme = .automatic var dirSize: Int64 = 0 @@ -158,7 +158,7 @@ final class SettingViewModel: Store { } } -private extension SettingViewModel { +private extension SettingsViewModel { func setAlert( _ state: inout State, isPresented: Bool, diff --git a/Application/DevLogPresentation/Sources/Setting/ThemeView.swift b/Application/DevLogPresentation/Sources/Settings/ThemeView.swift similarity index 100% rename from Application/DevLogPresentation/Sources/Setting/ThemeView.swift rename to Application/DevLogPresentation/Sources/Settings/ThemeView.swift