diff --git a/Application/DevLogApp/Sources/App/Assembler/AppLayerAssembler.swift b/Application/DevLogApp/Sources/App/Assembler/AppLayerAssembler.swift index 8e763f20..12fc5e13 100644 --- a/Application/DevLogApp/Sources/App/Assembler/AppLayerAssembler.swift +++ b/Application/DevLogApp/Sources/App/Assembler/AppLayerAssembler.swift @@ -8,7 +8,6 @@ import DevLogCore import DevLogData import DevLogDomain -import DevLogWidgetCore final class AppLayerAssembler: Assembler { func assemble(_ container: any DIContainer) { diff --git a/Application/DevLogApp/Sources/App/Delegate/AppDelegate.swift b/Application/DevLogApp/Sources/App/Delegate/AppDelegate.swift index 718a884a..b4024610 100644 --- a/Application/DevLogApp/Sources/App/Delegate/AppDelegate.swift +++ b/Application/DevLogApp/Sources/App/Delegate/AppDelegate.swift @@ -8,7 +8,6 @@ import UIKit import DevLogCore import DevLogData -import DevLogWidgetCore import GoogleSignIn class AppDelegate: UIResponder, UIApplicationDelegate { diff --git a/Application/DevLogApp/Sources/App/DevLogApp.swift b/Application/DevLogApp/Sources/App/DevLogApp.swift index db923c37..645d183a 100644 --- a/Application/DevLogApp/Sources/App/DevLogApp.swift +++ b/Application/DevLogApp/Sources/App/DevLogApp.swift @@ -7,9 +7,9 @@ import SwiftUI import DevLogCore +import DevLogData import DevLogDomain import DevLogPresentation -import DevLogWidgetCore @main struct DevLogApp: App { diff --git a/Application/DevLogCore/Sources/WidgetTodoSnapshot.swift b/Application/DevLogCore/Sources/WidgetTodoSnapshot.swift new file mode 100644 index 00000000..200e1188 --- /dev/null +++ b/Application/DevLogCore/Sources/WidgetTodoSnapshot.swift @@ -0,0 +1,39 @@ +// +// WidgetTodoSnapshot.swift +// DevLogCore +// +// Created by opfic on 5/18/26. +// + +import Foundation + +public struct WidgetTodoSnapshot: Equatable, Sendable { + public let id: String + public let number: Int? + public let title: String + public let isPinned: Bool + public let createdAt: Date + public let completedAt: Date? + public let deletedAt: Date? + public let dueDate: Date? + + public init( + id: String, + number: Int?, + title: String, + isPinned: Bool, + createdAt: Date, + completedAt: Date?, + deletedAt: Date?, + dueDate: Date? + ) { + self.id = id + self.number = number + self.title = title + self.isPinned = isPinned + self.createdAt = createdAt + self.completedAt = completedAt + self.deletedAt = deletedAt + self.dueDate = dueDate + } +} diff --git a/Application/DevLogData/Sources/DTO/TodoDTO.swift b/Application/DevLogData/Sources/DTO/TodoDTO.swift index f2b8ec0f..218d905f 100644 --- a/Application/DevLogData/Sources/DTO/TodoDTO.swift +++ b/Application/DevLogData/Sources/DTO/TodoDTO.swift @@ -101,34 +101,3 @@ public struct TodoResponse { self.category = category } } - -public struct WidgetTodoSnapshot: Equatable { - public let id: String - public let number: Int? - public let title: String - public let isPinned: Bool - public let createdAt: Date - public let completedAt: Date? - public let deletedAt: Date? - public let dueDate: Date? - - public init( - id: String, - number: Int?, - title: String, - isPinned: Bool, - createdAt: Date, - completedAt: Date?, - deletedAt: Date?, - dueDate: Date? - ) { - self.id = id - self.number = number - self.title = title - self.isPinned = isPinned - self.createdAt = createdAt - self.completedAt = completedAt - self.deletedAt = deletedAt - self.dueDate = dueDate - } -} diff --git a/Application/DevLogData/Sources/Mapper/TodoMapping.swift b/Application/DevLogData/Sources/Mapper/TodoMapping.swift index 74123ad2..31e23f7a 100644 --- a/Application/DevLogData/Sources/Mapper/TodoMapping.swift +++ b/Application/DevLogData/Sources/Mapper/TodoMapping.swift @@ -5,6 +5,7 @@ // Created by 최윤진 on 2/19/26. // +import DevLogCore import DevLogDomain public extension TodoRequest { diff --git a/Widget/DevLogWidgetCore/Sources/Common/WidgetSyncEvent.swift b/Application/DevLogData/Sources/Widget/WidgetSyncEvent.swift similarity index 69% rename from Widget/DevLogWidgetCore/Sources/Common/WidgetSyncEvent.swift rename to Application/DevLogData/Sources/Widget/WidgetSyncEvent.swift index c9116764..1865a716 100644 --- a/Widget/DevLogWidgetCore/Sources/Common/WidgetSyncEvent.swift +++ b/Application/DevLogData/Sources/Widget/WidgetSyncEvent.swift @@ -1,13 +1,10 @@ // // WidgetSyncEvent.swift -// DevLogWidgetCore +// DevLogData // // Created by opfic on 4/29/26. // -import DevLogDomain -import DevLogData - public enum WidgetSyncEvent: Equatable { case syncRequested } diff --git a/Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventBus.swift b/Application/DevLogData/Sources/Widget/WidgetSyncEventBus.swift similarity index 79% rename from Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventBus.swift rename to Application/DevLogData/Sources/Widget/WidgetSyncEventBus.swift index 23aa021f..02cf4977 100644 --- a/Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventBus.swift +++ b/Application/DevLogData/Sources/Widget/WidgetSyncEventBus.swift @@ -1,13 +1,11 @@ // // WidgetSyncEventBus.swift -// DevLogWidgetCore +// DevLogData // // Created by opfic on 4/30/26. // import Combine -import DevLogDomain -import DevLogData public protocol WidgetSyncEventBus { func publish(_ event: WidgetSyncEvent) diff --git a/Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventBusImpl.swift b/Application/DevLogData/Sources/Widget/WidgetSyncEventBusImpl.swift similarity index 88% rename from Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventBusImpl.swift rename to Application/DevLogData/Sources/Widget/WidgetSyncEventBusImpl.swift index 38009879..3031036f 100644 --- a/Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventBusImpl.swift +++ b/Application/DevLogData/Sources/Widget/WidgetSyncEventBusImpl.swift @@ -1,13 +1,11 @@ // // WidgetSyncEventBusImpl.swift -// DevLogWidgetCore +// DevLogData // // Created by opfic on 4/30/26. // import Combine -import DevLogDomain -import DevLogData public final class WidgetSyncEventBusImpl: WidgetSyncEventBus { private let subject = PassthroughSubject() diff --git a/Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventHandler.swift b/Application/DevLogData/Sources/Widget/WidgetSyncEventHandler.swift similarity index 99% rename from Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventHandler.swift rename to Application/DevLogData/Sources/Widget/WidgetSyncEventHandler.swift index 31710430..e23f8990 100644 --- a/Widget/DevLogWidgetCore/Sources/Sync/WidgetSyncEventHandler.swift +++ b/Application/DevLogData/Sources/Widget/WidgetSyncEventHandler.swift @@ -1,6 +1,6 @@ // // WidgetSyncEventHandler.swift -// DevLogWidgetCore +// DevLogData // // Created by opfic on 4/30/26. // @@ -9,7 +9,6 @@ import Combine import Foundation import DevLogCore import DevLogDomain -import DevLogData public final class WidgetSyncEventHandler { private let repository: TodoRepository diff --git a/Widget/DevLogWidgetCore/Tests/Sync/WidgetSyncEventBusTests.swift b/Application/DevLogData/Tests/Widget/WidgetSyncEventBusTests.swift similarity index 91% rename from Widget/DevLogWidgetCore/Tests/Sync/WidgetSyncEventBusTests.swift rename to Application/DevLogData/Tests/Widget/WidgetSyncEventBusTests.swift index d3ae240a..b85610f9 100644 --- a/Widget/DevLogWidgetCore/Tests/Sync/WidgetSyncEventBusTests.swift +++ b/Application/DevLogData/Tests/Widget/WidgetSyncEventBusTests.swift @@ -1,13 +1,13 @@ // // WidgetSyncEventBusTests.swift -// DevLogWidgetCoreTests +// DevLogDataTests // // Created by opfic on 4/30/26. // import Combine import Testing -@testable import DevLogWidgetCore +@testable import DevLogData struct WidgetSyncEventBusTests { @Test("WidgetSyncEventBus는 발행된 이벤트를 관찰자에게 전달한다") diff --git a/Widget/DevLogWidgetCore/Tests/Sync/WidgetSyncEventHandlerTests.swift b/Application/DevLogData/Tests/Widget/WidgetSyncEventHandlerTests.swift similarity index 99% rename from Widget/DevLogWidgetCore/Tests/Sync/WidgetSyncEventHandlerTests.swift rename to Application/DevLogData/Tests/Widget/WidgetSyncEventHandlerTests.swift index 22f48382..7171bce4 100644 --- a/Widget/DevLogWidgetCore/Tests/Sync/WidgetSyncEventHandlerTests.swift +++ b/Application/DevLogData/Tests/Widget/WidgetSyncEventHandlerTests.swift @@ -1,6 +1,6 @@ // // WidgetSyncEventHandlerTests.swift -// DevLogWidgetCoreTests +// DevLogDataTests // // Created by opfic on 4/30/26. // @@ -8,9 +8,8 @@ import Foundation import Testing import DevLogCore -import DevLogData import DevLogDomain -@testable import DevLogWidgetCore +@testable import DevLogData struct WidgetSyncEventHandlerTests { @Test("위젯 동기화 요청 이벤트는 Today와 Heatmap 스냅샷을 갱신한다") diff --git a/Widget/DevLogWidgetCore/Tests/Common/WidgetSyncEventTests.swift b/Application/DevLogData/Tests/Widget/WidgetSyncEventTests.swift similarity index 85% rename from Widget/DevLogWidgetCore/Tests/Common/WidgetSyncEventTests.swift rename to Application/DevLogData/Tests/Widget/WidgetSyncEventTests.swift index 9a7e9a09..d97cb847 100644 --- a/Widget/DevLogWidgetCore/Tests/Common/WidgetSyncEventTests.swift +++ b/Application/DevLogData/Tests/Widget/WidgetSyncEventTests.swift @@ -1,13 +1,13 @@ // // WidgetSyncEventTests.swift -// DevLogWidgetCoreTests +// DevLogDataTests // // Created by opfic on 4/29/26. // import Foundation import Testing -@testable import DevLogWidgetCore +@testable import DevLogData struct WidgetSyncEventTests { @Test("위젯 동기화 이벤트는 동기화 요청만 표현한다") diff --git a/Application/DevLogPersistence/Sources/Persistence/WidgetSnapshotPreferenceStoreImpl.swift b/Application/DevLogPersistence/Sources/Widget/WidgetSnapshotPreferenceStoreImpl.swift similarity index 100% rename from Application/DevLogPersistence/Sources/Persistence/WidgetSnapshotPreferenceStoreImpl.swift rename to Application/DevLogPersistence/Sources/Widget/WidgetSnapshotPreferenceStoreImpl.swift diff --git a/Application/DevLogPersistence/Sources/Persistence/WidgetSnapshotUpdaterImpl.swift b/Application/DevLogPersistence/Sources/Widget/WidgetSnapshotUpdaterImpl.swift similarity index 100% rename from Application/DevLogPersistence/Sources/Persistence/WidgetSnapshotUpdaterImpl.swift rename to Application/DevLogPersistence/Sources/Widget/WidgetSnapshotUpdaterImpl.swift diff --git a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj index 28770b79..22223393 100644 --- a/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj +++ b/Widget/DevLogWidgetCore/DevLogWidgetCore.xcodeproj/project.pbxproj @@ -8,13 +8,9 @@ /* Begin PBXBuildFile section */ 75C99AB35C6DF930E824185E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FBD260F923A87C1577DBFF0F /* Foundation.framework */; }; - 7E979130578F4839B3C640C1 /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C18996E00A69C4BCB0F63AE /* DevLogData.framework */; }; - 80423C5F6B880409E39FD20F /* DevLogData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C18996E00A69C4BCB0F63AE /* DevLogData.framework */; }; 8EF4007864D24A1F9074C80A /* DevLogWidgetCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6AF1B307A7E7CC03AA2BABB1 /* DevLogWidgetCore.framework */; }; - A1DEB84CF3B18EC2005382C5 /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B108898FD3650BE0C116BD3C /* DevLogDomain.framework */; }; B11111111111111111111111 /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B55555555555555555555555 /* DevLogCore.framework */; }; B69F5362A64E4C8FAA88393A /* DevLogCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B55555555555555555555555 /* DevLogCore.framework */; }; - CE64C1569E684FD7BF6E21E7 /* DevLogDomain.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B108898FD3650BE0C116BD3C /* DevLogDomain.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -30,8 +26,6 @@ /* Begin PBXFileReference section */ 099A7D56A0E544A28733E668 /* DevLogWidgetCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DevLogWidgetCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 6AF1B307A7E7CC03AA2BABB1 /* DevLogWidgetCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DevLogWidgetCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7C18996E00A69C4BCB0F63AE /* DevLogData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B108898FD3650BE0C116BD3C /* DevLogDomain.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogDomain.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B55555555555555555555555 /* DevLogCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DevLogCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FBD260F923A87C1577DBFF0F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; /* End PBXFileReference section */ @@ -65,8 +59,6 @@ files = ( 8EF4007864D24A1F9074C80A /* DevLogWidgetCore.framework in Frameworks */, B69F5362A64E4C8FAA88393A /* DevLogCore.framework in Frameworks */, - CE64C1569E684FD7BF6E21E7 /* DevLogDomain.framework in Frameworks */, - 7E979130578F4839B3C640C1 /* DevLogData.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -76,8 +68,6 @@ files = ( 75C99AB35C6DF930E824185E /* Foundation.framework in Frameworks */, B11111111111111111111111 /* DevLogCore.framework in Frameworks */, - A1DEB84CF3B18EC2005382C5 /* DevLogDomain.framework in Frameworks */, - 80423C5F6B880409E39FD20F /* DevLogData.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -108,8 +98,6 @@ 6AF1B307A7E7CC03AA2BABB1 /* DevLogWidgetCore.framework */, 099A7D56A0E544A28733E668 /* DevLogWidgetCoreTests.xctest */, B55555555555555555555555 /* DevLogCore.framework */, - B108898FD3650BE0C116BD3C /* DevLogDomain.framework */, - 7C18996E00A69C4BCB0F63AE /* DevLogData.framework */, ); name = Products; sourceTree = ""; diff --git a/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift b/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift index ef03d307..72b63765 100644 --- a/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift +++ b/Widget/DevLogWidgetCore/Sources/Common/WidgetSharedDefaultsStore.swift @@ -6,8 +6,6 @@ // import Foundation -import DevLogDomain -import DevLogData public final class WidgetSharedDefaultsStore { private let userDefaults: UserDefaults diff --git a/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift b/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift index 7a8b005e..727e2bc8 100644 --- a/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift +++ b/Widget/DevLogWidgetCore/Sources/Common/WidgetSnapshotStore.swift @@ -6,8 +6,6 @@ // import Foundation -import DevLogDomain -import DevLogData public final class WidgetSnapshotStore { private let store: WidgetSharedDefaultsStore diff --git a/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshot.swift b/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshot.swift index b25f89ee..78fc0855 100644 --- a/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshot.swift +++ b/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshot.swift @@ -6,8 +6,6 @@ // import Foundation -import DevLogDomain -import DevLogData public struct HeatmapWidgetSnapshot: Codable, Equatable { let generatedAt: Date diff --git a/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift b/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift index a290a0f9..5db55edf 100644 --- a/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift +++ b/Widget/DevLogWidgetCore/Sources/Heatmap/HeatmapWidgetSnapshotFactory.swift @@ -7,7 +7,6 @@ import Foundation import DevLogCore -import DevLogData public struct HeatmapWidgetSnapshotFactory { fileprivate struct DailyCounts { diff --git a/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshot.swift b/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshot.swift index 89034668..fcb0d3d0 100644 --- a/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshot.swift +++ b/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshot.swift @@ -6,8 +6,6 @@ // import Foundation -import DevLogDomain -import DevLogData public struct TodayWidgetSnapshot: Codable, Equatable { let generatedAt: Date diff --git a/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift b/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift index 6c935e04..efa0a212 100644 --- a/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift +++ b/Widget/DevLogWidgetCore/Sources/Today/TodayWidgetSnapshotFactory.swift @@ -7,7 +7,6 @@ import Foundation import DevLogCore -import DevLogData public struct TodayWidgetSnapshotFactory { private enum SectionCategory: String, CaseIterable { diff --git a/Widget/DevLogWidgetCore/Tests/Heatmap/HeatmapWidgetSnapshotFactoryTests.swift b/Widget/DevLogWidgetCore/Tests/Heatmap/HeatmapWidgetSnapshotFactoryTests.swift index 2c878a9d..5bf87ae4 100644 --- a/Widget/DevLogWidgetCore/Tests/Heatmap/HeatmapWidgetSnapshotFactoryTests.swift +++ b/Widget/DevLogWidgetCore/Tests/Heatmap/HeatmapWidgetSnapshotFactoryTests.swift @@ -8,7 +8,6 @@ import Foundation import Testing import DevLogCore -import DevLogData @testable import DevLogWidgetCore struct HeatmapWidgetSnapshotFactoryTests { diff --git a/Widget/DevLogWidgetCore/Tests/Today/TodayWidgetSnapshotFactoryTests.swift b/Widget/DevLogWidgetCore/Tests/Today/TodayWidgetSnapshotFactoryTests.swift index 96dcf92c..dc029774 100644 --- a/Widget/DevLogWidgetCore/Tests/Today/TodayWidgetSnapshotFactoryTests.swift +++ b/Widget/DevLogWidgetCore/Tests/Today/TodayWidgetSnapshotFactoryTests.swift @@ -8,7 +8,6 @@ import Foundation import Testing import DevLogCore -import DevLogData @testable import DevLogWidgetCore struct TodayWidgetSnapshotFactoryTests {