From c78d262967e13605f63eee86ea68e1094bc4b661 Mon Sep 17 00:00:00 2001 From: Karthik Date: Wed, 20 Nov 2024 11:07:28 +0530 Subject: [PATCH 1/2] Merged Logger and Serialization into Core --- Package.swift | 12 +++----- .../Logger}/A_LoggerKit+Interface.swift | 0 .../Logger}/B_LoggerKit.swift | 0 .../Logger}/C_LoggerKit+Severity.swift | 0 .../Logger}/D_LoggerKit+Writer.swift | 0 .../Logger}/E_LoggerKit+Formatter.swift | 0 .../Logger/Others/Logger+.swift} | 0 Sources/CoreKit/Model/PlaceHolderType.swift | 28 ------------------- .../{Model => Others}/FetchState.swift | 0 .../Serialization}/A_SerializationKit.swift | 0 .../Coredata/Coredata+Extensions.swift | 0 .../Serialization}/Decoder.swift | 0 .../Serialization}/Encoder.swift | 0 .../Serialization}/Model/ParsedResult.swift | 0 .../Model/SerializationError.swift | 1 - .../Others/Serialization+.swift} | 0 16 files changed, 4 insertions(+), 37 deletions(-) rename Sources/{LoggerKit => CoreKit/Logger}/A_LoggerKit+Interface.swift (100%) rename Sources/{LoggerKit => CoreKit/Logger}/B_LoggerKit.swift (100%) rename Sources/{LoggerKit => CoreKit/Logger}/C_LoggerKit+Severity.swift (100%) rename Sources/{LoggerKit => CoreKit/Logger}/D_LoggerKit+Writer.swift (100%) rename Sources/{LoggerKit => CoreKit/Logger}/E_LoggerKit+Formatter.swift (100%) rename Sources/{LoggerKit/Others/Extensions.swift => CoreKit/Logger/Others/Logger+.swift} (100%) delete mode 100644 Sources/CoreKit/Model/PlaceHolderType.swift rename Sources/CoreKit/{Model => Others}/FetchState.swift (100%) rename Sources/{SerializationKit => CoreKit/Serialization}/A_SerializationKit.swift (100%) rename Sources/{SerializationKit => CoreKit/Serialization}/Coredata/Coredata+Extensions.swift (100%) rename Sources/{SerializationKit => CoreKit/Serialization}/Decoder.swift (100%) rename Sources/{SerializationKit => CoreKit/Serialization}/Encoder.swift (100%) rename Sources/{SerializationKit => CoreKit/Serialization}/Model/ParsedResult.swift (100%) rename Sources/{SerializationKit => CoreKit/Serialization}/Model/SerializationError.swift (97%) rename Sources/{SerializationKit/Others/Extensions.swift => CoreKit/Serialization/Others/Serialization+.swift} (100%) diff --git a/Package.swift b/Package.swift index 6c379ac..25e9795 100644 --- a/Package.swift +++ b/Package.swift @@ -8,9 +8,7 @@ let package = Package( platforms: [.iOS(.v13)], products: [ .library(name: "CoreKit", targets: ["CoreKit"]), - .library(name: "LoggerKit", targets: ["LoggerKit"]), .library(name: "NetworkKit", targets: ["NetworkKit"]), - .library(name: "SerializationKit", targets: ["SerializationKit"]), .library(name: "TaskKit", targets: ["TaskKit"]), .library(name: "DIKit", targets: ["DIKit"]), ], @@ -19,14 +17,12 @@ let package = Package( .package(name: "SwinjectAutoregistration", url: "https://github.com/Swinject/SwinjectAutoregistration.git", .upToNextMinor(from: "2.8.0")) ], targets: [ - .target(name: "CoreKit", dependencies: [], resources: [ + .target(name: "CoreKit", dependencies: ["Result"], resources: [ .process("Resources") ]), - .target(name: "LoggerKit", dependencies: []), - .target(name: "SerializationKit", dependencies: ["LoggerKit", "Result"]), - .target(name: "TaskKit", dependencies: ["LoggerKit"]), - .target(name: "NetworkKit", dependencies: ["LoggerKit", "SerializationKit", "TaskKit"]), - .target(name: "DIKit", dependencies: ["LoggerKit", "SwinjectAutoregistration"]) + .target(name: "NetworkKit", dependencies: ["CoreKit", "TaskKit"]), + .target(name: "TaskKit", dependencies: ["CoreKit"]), + .target(name: "DIKit", dependencies: ["CoreKit", "SwinjectAutoregistration"]) ], swiftLanguageVersions: [.v5] ) diff --git a/Sources/LoggerKit/A_LoggerKit+Interface.swift b/Sources/CoreKit/Logger/A_LoggerKit+Interface.swift similarity index 100% rename from Sources/LoggerKit/A_LoggerKit+Interface.swift rename to Sources/CoreKit/Logger/A_LoggerKit+Interface.swift diff --git a/Sources/LoggerKit/B_LoggerKit.swift b/Sources/CoreKit/Logger/B_LoggerKit.swift similarity index 100% rename from Sources/LoggerKit/B_LoggerKit.swift rename to Sources/CoreKit/Logger/B_LoggerKit.swift diff --git a/Sources/LoggerKit/C_LoggerKit+Severity.swift b/Sources/CoreKit/Logger/C_LoggerKit+Severity.swift similarity index 100% rename from Sources/LoggerKit/C_LoggerKit+Severity.swift rename to Sources/CoreKit/Logger/C_LoggerKit+Severity.swift diff --git a/Sources/LoggerKit/D_LoggerKit+Writer.swift b/Sources/CoreKit/Logger/D_LoggerKit+Writer.swift similarity index 100% rename from Sources/LoggerKit/D_LoggerKit+Writer.swift rename to Sources/CoreKit/Logger/D_LoggerKit+Writer.swift diff --git a/Sources/LoggerKit/E_LoggerKit+Formatter.swift b/Sources/CoreKit/Logger/E_LoggerKit+Formatter.swift similarity index 100% rename from Sources/LoggerKit/E_LoggerKit+Formatter.swift rename to Sources/CoreKit/Logger/E_LoggerKit+Formatter.swift diff --git a/Sources/LoggerKit/Others/Extensions.swift b/Sources/CoreKit/Logger/Others/Logger+.swift similarity index 100% rename from Sources/LoggerKit/Others/Extensions.swift rename to Sources/CoreKit/Logger/Others/Logger+.swift diff --git a/Sources/CoreKit/Model/PlaceHolderType.swift b/Sources/CoreKit/Model/PlaceHolderType.swift deleted file mode 100644 index 2dd413a..0000000 --- a/Sources/CoreKit/Model/PlaceHolderType.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// Created by Karthik on 24/04/22. -// - -import Foundation - -public enum PlaceHolderType: String { - case empty - case error - - public var icon: String { - switch self { - case .empty: - return "scribble.variable" - case .error: - return "xmark.circle.fill" - } - } - - public var message: (title: String, desc: String) { - switch self { - case .empty: - return ("Sounds empty!", "") - case .error: - return ("Failed to load!", "Please try again after sometime!") - } - } -} diff --git a/Sources/CoreKit/Model/FetchState.swift b/Sources/CoreKit/Others/FetchState.swift similarity index 100% rename from Sources/CoreKit/Model/FetchState.swift rename to Sources/CoreKit/Others/FetchState.swift diff --git a/Sources/SerializationKit/A_SerializationKit.swift b/Sources/CoreKit/Serialization/A_SerializationKit.swift similarity index 100% rename from Sources/SerializationKit/A_SerializationKit.swift rename to Sources/CoreKit/Serialization/A_SerializationKit.swift diff --git a/Sources/SerializationKit/Coredata/Coredata+Extensions.swift b/Sources/CoreKit/Serialization/Coredata/Coredata+Extensions.swift similarity index 100% rename from Sources/SerializationKit/Coredata/Coredata+Extensions.swift rename to Sources/CoreKit/Serialization/Coredata/Coredata+Extensions.swift diff --git a/Sources/SerializationKit/Decoder.swift b/Sources/CoreKit/Serialization/Decoder.swift similarity index 100% rename from Sources/SerializationKit/Decoder.swift rename to Sources/CoreKit/Serialization/Decoder.swift diff --git a/Sources/SerializationKit/Encoder.swift b/Sources/CoreKit/Serialization/Encoder.swift similarity index 100% rename from Sources/SerializationKit/Encoder.swift rename to Sources/CoreKit/Serialization/Encoder.swift diff --git a/Sources/SerializationKit/Model/ParsedResult.swift b/Sources/CoreKit/Serialization/Model/ParsedResult.swift similarity index 100% rename from Sources/SerializationKit/Model/ParsedResult.swift rename to Sources/CoreKit/Serialization/Model/ParsedResult.swift diff --git a/Sources/SerializationKit/Model/SerializationError.swift b/Sources/CoreKit/Serialization/Model/SerializationError.swift similarity index 97% rename from Sources/SerializationKit/Model/SerializationError.swift rename to Sources/CoreKit/Serialization/Model/SerializationError.swift index a512308..61bddae 100644 --- a/Sources/SerializationKit/Model/SerializationError.swift +++ b/Sources/CoreKit/Serialization/Model/SerializationError.swift @@ -3,7 +3,6 @@ // import Foundation -import LoggerKit public struct SerializationError: Error { public let message: String diff --git a/Sources/SerializationKit/Others/Extensions.swift b/Sources/CoreKit/Serialization/Others/Serialization+.swift similarity index 100% rename from Sources/SerializationKit/Others/Extensions.swift rename to Sources/CoreKit/Serialization/Others/Serialization+.swift From b4743cca0452b85f02c6ca6b49db3a083bb16787 Mon Sep 17 00:00:00 2001 From: Karthik Date: Wed, 20 Nov 2024 11:32:52 +0530 Subject: [PATCH 2/2] Added docs for DI --- README.md | 41 +++++++++++++++++++++++++ Sources/CoreKit/Others/FetchState.swift | 11 +++++++ 2 files changed, 52 insertions(+) diff --git a/README.md b/README.md index 573e669..4918e10 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,44 @@ # CoreKit A description of this package. + +## DI + +```Swift + +@main +struct YourApp: App { + init() { + // Put your DI setup here. + } +} + +// SetupDI +SwiftDI.shared.setup( + assemblies: [ + ServiceAssembly(), + ViewModelAssembly() + ], + inContainer: Container() +) + +class ServiceAssembly: Assembly { + func assemble(container: Container) { + // put you reusable service here + } +} + +class ViewModelAssembly: Assembly { + func assemble(container: Container) { + // Put you view models here + container.autoregister(SomeViewModel.self, initializer: SomeViewModel.init) + container.register(SomeViewModel.self) { r in + // initialization goes here + return SomeViewMode() + } + } +} + +@Inject - Use this inside viewModel for object lookup +@ObservedInject - Use this in swiftUI for the object lookup +``` diff --git a/Sources/CoreKit/Others/FetchState.swift b/Sources/CoreKit/Others/FetchState.swift index 38a2819..f74d912 100644 --- a/Sources/CoreKit/Others/FetchState.swift +++ b/Sources/CoreKit/Others/FetchState.swift @@ -14,3 +14,14 @@ public enum FetchState { self == .fetching } } + +public enum ViewState { + /// The view is currently loading data. + case loading + /// The view has loaded data, but the list is empty. + case empty + /// The view failed to load data. + case failed + /// The view has successfully loaded data. + case loaded +}