From 1f186dfd75fc7e664a97c1fe20cabd9faa03064a Mon Sep 17 00:00:00 2001 From: tisfeng Date: Thu, 15 Feb 2024 12:45:31 +0800 Subject: [PATCH] perf: adjust group file structure, move Swift file to SwiftApp --- Easydict.xcodeproj/project.pbxproj | 46 +++++++++++++------ .../App}/EasydictApp.swift | 2 +- .../App/SwiftUIAppManager.swift} | 6 +-- .../Configuration+Defaults.swift | 0 .../Configuration+UserData.swift | 0 .../Configuration/Configuration.swift | 2 +- .../Feature/Shortcut/Shortcut+Bind.swift | 0 .../Feature/Shortcut/Shortcut+Default.swift | 0 .../Feature/Shortcut/Shortcut+Menu.swift | 0 .../Feature/Shortcut/Shortcut+Validator.swift | 0 .../Feature/Shortcut/Shortcut.swift | 0 .../Model/TTSServiceType.swift | 0 .../Service/Ali/AliResponse.swift | 0 .../Service/Ali/AliService.swift | 0 .../Service/Ali/AliTranslateType.swift | 0 .../Service/Caiyun/CaiyunResponse.swift | 0 .../Service/Caiyun/CaiyunService.swift | 0 .../Service/Caiyun/CaiyunTranslateType.swift | 0 .../Service/Gemini/GeminiService.swift | 0 .../Service/Tencent/TencentResponse.swift | 0 .../Service/Tencent/TencentService.swift | 0 .../Service/Tencent/TencentSigning.swift | 0 .../Tencent/TencentTranslateType.swift | 0 .../Utility}/Appearance.swift | 0 .../KeyCombo+Defaults.Serializable.swift | 0 .../LanguageDetectOptimizeExtensions.swift | 0 .../Extensions/LanguageExtensions.swift | 0 .../AliService+ConfigurableService.swift | 0 .../BingService+ConfigurableService.swift | 0 .../CaiyunService+ConfigurableService.swift | 0 .../DeepLTranslate+ConfigurableService.swift | 0 .../GeminiService+ConfigurableService.swift | 0 ...iuTransTranslate+ConfigurableService.swift | 0 .../OpenAIService+ConfigurableService.swift | 0 .../TencentService+ConfigurableService.swift | 0 .../ShowWindowPositionExtensions.swift | 0 .../Extensions/String/String+Regex.swift | 0 .../Extensions/WindowTypeExtensions.swift | 0 .../Utility/GlobalContext.swift | 0 .../Protocol/ConfigurableService.swift | 0 .../ServiceSecretConfigreValidatable.swift | 0 .../View/MenuItemView.swift | 0 .../View/MenuView/MainMenuCommand.swift | 0 .../MenuView/MainMenuShortcutCommand.swift | 0 .../MainMenuShortcutCommandItem.swift | 0 .../View/SettingView/SettingView.swift | 0 .../View/SettingView/Tabs/AboutTab.swift | 0 .../View/SettingView/Tabs/AdvancedTab.swift | 0 .../SettingView/Tabs/DisabledAppTab.swift | 0 .../View/SettingView/Tabs/GeneralTab.swift | 0 .../View/SettingView/Tabs/PrivacyTab.swift | 0 .../SecureTextField.swift | 0 .../ServiceConfigurationCells.swift | 0 ...erviceConfigurationSecretSectionView.swift | 0 .../ServiceConfigurationSection.swift | 0 .../View/SettingView/Tabs/ServiceTab.swift | 0 .../View/SettingView/Tabs/ShortcutTab.swift | 0 .../View/Shortcut/AppShortcutSetting.swift | 0 .../View/Shortcut/GlobalShortcutSetting.swift | 0 .../View/Shortcut/KeyHolderAlterView.swift | 0 .../Tabs/View/Shortcut/KeyHolderRowView.swift | 0 .../Tabs/View/Shortcut/KeyHolderWrapper.swift | 0 .../View/TapHandlerView.swift | 0 .../View/WindowAccessor.swift | 0 64 files changed, 36 insertions(+), 20 deletions(-) rename Easydict/{NewApp => SwiftApp/App}/EasydictApp.swift (97%) rename Easydict/{NewApp/NewAppManager.swift => SwiftApp/App/SwiftUIAppManager.swift} (78%) rename Easydict/{NewApp => SwiftApp}/Configuration/Configuration+Defaults.swift (100%) rename Easydict/{Feature => SwiftApp}/Configuration/Configuration+UserData.swift (100%) rename Easydict/{Feature => SwiftApp}/Configuration/Configuration.swift (99%) rename Easydict/{NewApp => SwiftApp}/Feature/Shortcut/Shortcut+Bind.swift (100%) rename Easydict/{NewApp => SwiftApp}/Feature/Shortcut/Shortcut+Default.swift (100%) rename Easydict/{NewApp => SwiftApp}/Feature/Shortcut/Shortcut+Menu.swift (100%) rename Easydict/{NewApp => SwiftApp}/Feature/Shortcut/Shortcut+Validator.swift (100%) rename Easydict/{NewApp => SwiftApp}/Feature/Shortcut/Shortcut.swift (100%) rename Easydict/{NewApp => SwiftApp}/Model/TTSServiceType.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Ali/AliResponse.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Ali/AliService.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Ali/AliTranslateType.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Caiyun/CaiyunResponse.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Caiyun/CaiyunService.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Caiyun/CaiyunTranslateType.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Gemini/GeminiService.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Tencent/TencentResponse.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Tencent/TencentService.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Tencent/TencentSigning.swift (100%) rename Easydict/{Feature => SwiftApp}/Service/Tencent/TencentTranslateType.swift (100%) rename Easydict/{Feature/Configuration => SwiftApp/Utility}/Appearance.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/Defaults/KeyCombo+Defaults.Serializable.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/LanguageDetectOptimizeExtensions.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/LanguageExtensions.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/AliService+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/BingService+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/CaiyunService+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/DeepLTranslate+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/GeminiService+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/NiuTransTranslate+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/OpenAIService+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/QueryService+ConfigurableService/TencentService+ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/ShowWindowPositionExtensions.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/String/String+Regex.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Extensions/WindowTypeExtensions.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/GlobalContext.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Protocol/ConfigurableService.swift (100%) rename Easydict/{NewApp => SwiftApp}/Utility/Protocol/ServiceSecretConfigreValidatable.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/MenuItemView.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/MenuView/MainMenuCommand.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/MenuView/MainMenuShortcutCommand.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/MenuView/MainMenuShortcutCommandItem.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/SettingView.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/AboutTab.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/AdvancedTab.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/DisabledAppTab.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/GeneralTab.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/PrivacyTab.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/ServiceConfiguration/SecureTextField.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationCells.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSecretSectionView.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSection.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/ServiceTab.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/ShortcutTab.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/View/Shortcut/AppShortcutSetting.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/View/Shortcut/GlobalShortcutSetting.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/View/Shortcut/KeyHolderAlterView.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/View/Shortcut/KeyHolderRowView.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/SettingView/Tabs/View/Shortcut/KeyHolderWrapper.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/TapHandlerView.swift (100%) rename Easydict/{NewApp => SwiftApp}/View/WindowAccessor.swift (100%) diff --git a/Easydict.xcodeproj/project.pbxproj b/Easydict.xcodeproj/project.pbxproj index 7a06f6f76..1cfaac2fb 100644 --- a/Easydict.xcodeproj/project.pbxproj +++ b/Easydict.xcodeproj/project.pbxproj @@ -263,7 +263,7 @@ 278322622B0FB8EF0026644C /* CaiyunTranslateType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278322612B0FB8EF0026644C /* CaiyunTranslateType.swift */; }; 278540342B3DE04F004E9488 /* GeneralTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278540332B3DE04F004E9488 /* GeneralTab.swift */; }; 27FE95272B3DC55F000AD654 /* EasydictApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FE95262B3DC55F000AD654 /* EasydictApp.swift */; }; - 27FE98052B3DCB09000AD654 /* NewAppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FE98042B3DCB09000AD654 /* NewAppManager.swift */; }; + 27FE98052B3DCB09000AD654 /* SwiftUIAppManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FE98042B3DCB09000AD654 /* SwiftUIAppManager.swift */; }; 27FE98092B3DD536000AD654 /* SettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FE98082B3DD536000AD654 /* SettingView.swift */; }; 27FE980B2B3DD5D1000AD654 /* MenuItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27FE980A2B3DD5D1000AD654 /* MenuItemView.swift */; }; 6220AD5B2A82812300BBFB52 /* EZBingService.m in Sources */ = {isa = PBXBuildFile; fileRef = 6220AD5A2A82812300BBFB52 /* EZBingService.m */; }; @@ -780,7 +780,7 @@ 27B791A02AEC3A5C006E07C6 /* Easydict-debug.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Easydict-debug.entitlements"; sourceTree = ""; }; 27FE95262B3DC55F000AD654 /* EasydictApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EasydictApp.swift; sourceTree = ""; }; 27FE95282B3DC666000AD654 /* entry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = entry.h; sourceTree = ""; }; - 27FE98042B3DCB09000AD654 /* NewAppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewAppManager.swift; sourceTree = ""; }; + 27FE98042B3DCB09000AD654 /* SwiftUIAppManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIAppManager.swift; sourceTree = ""; }; 27FE98082B3DD536000AD654 /* SettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingView.swift; sourceTree = ""; }; 27FE980A2B3DD5D1000AD654 /* MenuItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuItemView.swift; sourceTree = ""; }; 357E179B303EF855EF4561FB /* Pods-EasydictTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EasydictTests.release.xcconfig"; path = "Target Support Files/Pods-EasydictTests/Pods-EasydictTests.release.xcconfig"; sourceTree = ""; }; @@ -1340,7 +1340,7 @@ 03B0221829231FA6001C7E63 /* Easydict */ = { isa = PBXGroup; children = ( - 27FE98032B3DCA9F000AD654 /* NewApp */, + 27FE98032B3DCA9F000AD654 /* SwiftApp */, 03B0222429231FA6001C7E63 /* Feature */, 0376AB59294F5EEC00E2E2A4 /* App */, ); @@ -1384,9 +1384,6 @@ 03542A572937CC3200C34C33 /* EZConfiguration.m */, 03D8A65A2A433B4100D9A968 /* EZConfiguration+EZUserData.h */, 03D8A65B2A433B4100D9A968 /* EZConfiguration+EZUserData.m */, - DC46DF7F2B4417B900DEAE3E /* Configuration.swift */, - DCF176F12B57CED700CA6026 /* Configuration+UserData.swift */, - DC6D9C882B3969510055EFFC /* Appearance.swift */, ); path = Configuration; sourceTree = ""; @@ -1394,11 +1391,7 @@ 03B0222B29231FA6001C7E63 /* Service */ = { isa = PBXGroup; children = ( - 62E2BF462B4082BA00E42D38 /* Ali */, - C415C0AB2B450C4500A9D231 /* Gemini */, 17BCAEF22B0DFF9000A7D372 /* Niutrans */, - 2746AEBF2AF95040005FE0A1 /* Caiyun */, - C4DD01E72B12B3B00025EE8E /* Tencent */, 6220AD582A8280E800BBFB52 /* Bing */, 0399C6A929A8608000B4AFCC /* OpenAI */, 03F14A382956011400CB7379 /* Volcano */, @@ -2087,6 +2080,26 @@ path = Volcano; sourceTree = ""; }; + 03FC57C32B7DCAE400E036F3 /* Service */ = { + isa = PBXGroup; + children = ( + 62E2BF462B4082BA00E42D38 /* Ali */, + 2746AEBF2AF95040005FE0A1 /* Caiyun */, + C4DD01E72B12B3B00025EE8E /* Tencent */, + C415C0AB2B450C4500A9D231 /* Gemini */, + ); + path = Service; + sourceTree = ""; + }; + 03FC57C42B7DCB8300E036F3 /* App */ = { + isa = PBXGroup; + children = ( + 27FE95262B3DC55F000AD654 /* EasydictApp.swift */, + 27FE98042B3DCB09000AD654 /* SwiftUIAppManager.swift */, + ); + path = App; + sourceTree = ""; + }; 03FD68BC2B1E14B500FD388E /* String */ = { isa = PBXGroup; children = ( @@ -2140,18 +2153,18 @@ path = Caiyun; sourceTree = ""; }; - 27FE98032B3DCA9F000AD654 /* NewApp */ = { + 27FE98032B3DCA9F000AD654 /* SwiftApp */ = { isa = PBXGroup; children = ( + 03FC57C42B7DCB8300E036F3 /* App */, + 03FC57C32B7DCAE400E036F3 /* Service */, 967712EB2B5B93E200105E0F /* Feature */, EA9943E12B534C2900EE7B97 /* Model */, EA9943DD2B534BAE00EE7B97 /* Utility */, EA3B81F72B52549B004C0E8B /* Configuration */, - 27FE95262B3DC55F000AD654 /* EasydictApp.swift */, - 27FE98042B3DCB09000AD654 /* NewAppManager.swift */, 27FE98062B3DD525000AD654 /* View */, ); - path = NewApp; + path = SwiftApp; sourceTree = ""; }; 27FE98062B3DD525000AD654 /* View */ = { @@ -2373,6 +2386,8 @@ EA3B81F72B52549B004C0E8B /* Configuration */ = { isa = PBXGroup; children = ( + DC46DF7F2B4417B900DEAE3E /* Configuration.swift */, + DCF176F12B57CED700CA6026 /* Configuration+UserData.swift */, EA3B81F82B5254AA004C0E8B /* Configuration+Defaults.swift */, ); path = Configuration; @@ -2382,6 +2397,7 @@ isa = PBXGroup; children = ( EAE3D34F2B62E9DE001EE3E3 /* GlobalContext.swift */, + DC6D9C882B3969510055EFFC /* Appearance.swift */, EAED41ED2B54B1390005FE0A /* Protocol */, EA9943E62B534D7C00EE7B97 /* Extensions */, ); @@ -2983,7 +2999,7 @@ 03BB2DE329F5772F00447EDD /* EZAudioButton.m in Sources */, 03262C2529EFE97B00EFECA0 /* NSViewController+EZWindow.m in Sources */, 03008B2729408BF50062B821 /* NSObject+EZDarkMode.m in Sources */, - 27FE98052B3DCB09000AD654 /* NewAppManager.swift in Sources */, + 27FE98052B3DCB09000AD654 /* SwiftUIAppManager.swift in Sources */, 0399116A292AA2EF00E1B06D /* EZLayoutManager.m in Sources */, 0320C5872B29F35700861B3D /* QueryServiceRecord.swift in Sources */, 9643D9422B6FE4AF000FBEA6 /* Shortcut+Bind.swift in Sources */, diff --git a/Easydict/NewApp/EasydictApp.swift b/Easydict/SwiftApp/App/EasydictApp.swift similarity index 97% rename from Easydict/NewApp/EasydictApp.swift rename to Easydict/SwiftApp/App/EasydictApp.swift index 9743e4dc4..0970bffd2 100644 --- a/Easydict/NewApp/EasydictApp.swift +++ b/Easydict/SwiftApp/App/EasydictApp.swift @@ -14,7 +14,7 @@ import SwiftUI enum EasydictCmpatibilityEntry { static func main() { parseArmguments() - if NewAppManager.shared.enable { + if SwiftUIAppManager.shared.enable { EasydictApp.main() } else { _ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv) diff --git a/Easydict/NewApp/NewAppManager.swift b/Easydict/SwiftApp/App/SwiftUIAppManager.swift similarity index 78% rename from Easydict/NewApp/NewAppManager.swift rename to Easydict/SwiftApp/App/SwiftUIAppManager.swift index 8b3d9a8dc..15a4abab9 100644 --- a/Easydict/NewApp/NewAppManager.swift +++ b/Easydict/SwiftApp/App/SwiftUIAppManager.swift @@ -1,5 +1,5 @@ // -// NewAppManager.swift +// SwiftUIAppManager.swift // Easydict // // Created by Kyle on 2023/12/28. @@ -9,9 +9,9 @@ import Foundation @objc(EasydictNewAppManager) -public final class NewAppManager: NSObject { +public final class SwiftUIAppManager: NSObject { @objc - public static let shared = NewAppManager() + public static let shared = SwiftUIAppManager() override private init() { super.init() } diff --git a/Easydict/NewApp/Configuration/Configuration+Defaults.swift b/Easydict/SwiftApp/Configuration/Configuration+Defaults.swift similarity index 100% rename from Easydict/NewApp/Configuration/Configuration+Defaults.swift rename to Easydict/SwiftApp/Configuration/Configuration+Defaults.swift diff --git a/Easydict/Feature/Configuration/Configuration+UserData.swift b/Easydict/SwiftApp/Configuration/Configuration+UserData.swift similarity index 100% rename from Easydict/Feature/Configuration/Configuration+UserData.swift rename to Easydict/SwiftApp/Configuration/Configuration+UserData.swift diff --git a/Easydict/Feature/Configuration/Configuration.swift b/Easydict/SwiftApp/Configuration/Configuration.swift similarity index 99% rename from Easydict/Feature/Configuration/Configuration.swift rename to Easydict/SwiftApp/Configuration/Configuration.swift index 774f4a193..8234cd9e5 100644 --- a/Easydict/Feature/Configuration/Configuration.swift +++ b/Easydict/SwiftApp/Configuration/Configuration.swift @@ -542,7 +542,7 @@ private extension Configuration { } func didSetHideMenuBarIcon() { - if !NewAppManager.shared.enable { + if !SwiftUIAppManager.shared.enable { hideMenuBarIcon(hidden: hideMenuBarIcon) } diff --git a/Easydict/NewApp/Feature/Shortcut/Shortcut+Bind.swift b/Easydict/SwiftApp/Feature/Shortcut/Shortcut+Bind.swift similarity index 100% rename from Easydict/NewApp/Feature/Shortcut/Shortcut+Bind.swift rename to Easydict/SwiftApp/Feature/Shortcut/Shortcut+Bind.swift diff --git a/Easydict/NewApp/Feature/Shortcut/Shortcut+Default.swift b/Easydict/SwiftApp/Feature/Shortcut/Shortcut+Default.swift similarity index 100% rename from Easydict/NewApp/Feature/Shortcut/Shortcut+Default.swift rename to Easydict/SwiftApp/Feature/Shortcut/Shortcut+Default.swift diff --git a/Easydict/NewApp/Feature/Shortcut/Shortcut+Menu.swift b/Easydict/SwiftApp/Feature/Shortcut/Shortcut+Menu.swift similarity index 100% rename from Easydict/NewApp/Feature/Shortcut/Shortcut+Menu.swift rename to Easydict/SwiftApp/Feature/Shortcut/Shortcut+Menu.swift diff --git a/Easydict/NewApp/Feature/Shortcut/Shortcut+Validator.swift b/Easydict/SwiftApp/Feature/Shortcut/Shortcut+Validator.swift similarity index 100% rename from Easydict/NewApp/Feature/Shortcut/Shortcut+Validator.swift rename to Easydict/SwiftApp/Feature/Shortcut/Shortcut+Validator.swift diff --git a/Easydict/NewApp/Feature/Shortcut/Shortcut.swift b/Easydict/SwiftApp/Feature/Shortcut/Shortcut.swift similarity index 100% rename from Easydict/NewApp/Feature/Shortcut/Shortcut.swift rename to Easydict/SwiftApp/Feature/Shortcut/Shortcut.swift diff --git a/Easydict/NewApp/Model/TTSServiceType.swift b/Easydict/SwiftApp/Model/TTSServiceType.swift similarity index 100% rename from Easydict/NewApp/Model/TTSServiceType.swift rename to Easydict/SwiftApp/Model/TTSServiceType.swift diff --git a/Easydict/Feature/Service/Ali/AliResponse.swift b/Easydict/SwiftApp/Service/Ali/AliResponse.swift similarity index 100% rename from Easydict/Feature/Service/Ali/AliResponse.swift rename to Easydict/SwiftApp/Service/Ali/AliResponse.swift diff --git a/Easydict/Feature/Service/Ali/AliService.swift b/Easydict/SwiftApp/Service/Ali/AliService.swift similarity index 100% rename from Easydict/Feature/Service/Ali/AliService.swift rename to Easydict/SwiftApp/Service/Ali/AliService.swift diff --git a/Easydict/Feature/Service/Ali/AliTranslateType.swift b/Easydict/SwiftApp/Service/Ali/AliTranslateType.swift similarity index 100% rename from Easydict/Feature/Service/Ali/AliTranslateType.swift rename to Easydict/SwiftApp/Service/Ali/AliTranslateType.swift diff --git a/Easydict/Feature/Service/Caiyun/CaiyunResponse.swift b/Easydict/SwiftApp/Service/Caiyun/CaiyunResponse.swift similarity index 100% rename from Easydict/Feature/Service/Caiyun/CaiyunResponse.swift rename to Easydict/SwiftApp/Service/Caiyun/CaiyunResponse.swift diff --git a/Easydict/Feature/Service/Caiyun/CaiyunService.swift b/Easydict/SwiftApp/Service/Caiyun/CaiyunService.swift similarity index 100% rename from Easydict/Feature/Service/Caiyun/CaiyunService.swift rename to Easydict/SwiftApp/Service/Caiyun/CaiyunService.swift diff --git a/Easydict/Feature/Service/Caiyun/CaiyunTranslateType.swift b/Easydict/SwiftApp/Service/Caiyun/CaiyunTranslateType.swift similarity index 100% rename from Easydict/Feature/Service/Caiyun/CaiyunTranslateType.swift rename to Easydict/SwiftApp/Service/Caiyun/CaiyunTranslateType.swift diff --git a/Easydict/Feature/Service/Gemini/GeminiService.swift b/Easydict/SwiftApp/Service/Gemini/GeminiService.swift similarity index 100% rename from Easydict/Feature/Service/Gemini/GeminiService.swift rename to Easydict/SwiftApp/Service/Gemini/GeminiService.swift diff --git a/Easydict/Feature/Service/Tencent/TencentResponse.swift b/Easydict/SwiftApp/Service/Tencent/TencentResponse.swift similarity index 100% rename from Easydict/Feature/Service/Tencent/TencentResponse.swift rename to Easydict/SwiftApp/Service/Tencent/TencentResponse.swift diff --git a/Easydict/Feature/Service/Tencent/TencentService.swift b/Easydict/SwiftApp/Service/Tencent/TencentService.swift similarity index 100% rename from Easydict/Feature/Service/Tencent/TencentService.swift rename to Easydict/SwiftApp/Service/Tencent/TencentService.swift diff --git a/Easydict/Feature/Service/Tencent/TencentSigning.swift b/Easydict/SwiftApp/Service/Tencent/TencentSigning.swift similarity index 100% rename from Easydict/Feature/Service/Tencent/TencentSigning.swift rename to Easydict/SwiftApp/Service/Tencent/TencentSigning.swift diff --git a/Easydict/Feature/Service/Tencent/TencentTranslateType.swift b/Easydict/SwiftApp/Service/Tencent/TencentTranslateType.swift similarity index 100% rename from Easydict/Feature/Service/Tencent/TencentTranslateType.swift rename to Easydict/SwiftApp/Service/Tencent/TencentTranslateType.swift diff --git a/Easydict/Feature/Configuration/Appearance.swift b/Easydict/SwiftApp/Utility/Appearance.swift similarity index 100% rename from Easydict/Feature/Configuration/Appearance.swift rename to Easydict/SwiftApp/Utility/Appearance.swift diff --git a/Easydict/NewApp/Utility/Extensions/Defaults/KeyCombo+Defaults.Serializable.swift b/Easydict/SwiftApp/Utility/Extensions/Defaults/KeyCombo+Defaults.Serializable.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/Defaults/KeyCombo+Defaults.Serializable.swift rename to Easydict/SwiftApp/Utility/Extensions/Defaults/KeyCombo+Defaults.Serializable.swift diff --git a/Easydict/NewApp/Utility/Extensions/LanguageDetectOptimizeExtensions.swift b/Easydict/SwiftApp/Utility/Extensions/LanguageDetectOptimizeExtensions.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/LanguageDetectOptimizeExtensions.swift rename to Easydict/SwiftApp/Utility/Extensions/LanguageDetectOptimizeExtensions.swift diff --git a/Easydict/NewApp/Utility/Extensions/LanguageExtensions.swift b/Easydict/SwiftApp/Utility/Extensions/LanguageExtensions.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/LanguageExtensions.swift rename to Easydict/SwiftApp/Utility/Extensions/LanguageExtensions.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/AliService+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/AliService+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/AliService+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/AliService+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/BingService+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/BingService+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/BingService+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/BingService+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/CaiyunService+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/CaiyunService+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/CaiyunService+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/CaiyunService+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/DeepLTranslate+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/DeepLTranslate+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/DeepLTranslate+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/DeepLTranslate+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/GeminiService+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/GeminiService+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/GeminiService+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/GeminiService+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/NiuTransTranslate+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/NiuTransTranslate+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/NiuTransTranslate+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/NiuTransTranslate+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/OpenAIService+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/OpenAIService+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/OpenAIService+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/OpenAIService+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/TencentService+ConfigurableService.swift b/Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/TencentService+ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/QueryService+ConfigurableService/TencentService+ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Extensions/QueryService+ConfigurableService/TencentService+ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Extensions/ShowWindowPositionExtensions.swift b/Easydict/SwiftApp/Utility/Extensions/ShowWindowPositionExtensions.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/ShowWindowPositionExtensions.swift rename to Easydict/SwiftApp/Utility/Extensions/ShowWindowPositionExtensions.swift diff --git a/Easydict/NewApp/Utility/Extensions/String/String+Regex.swift b/Easydict/SwiftApp/Utility/Extensions/String/String+Regex.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/String/String+Regex.swift rename to Easydict/SwiftApp/Utility/Extensions/String/String+Regex.swift diff --git a/Easydict/NewApp/Utility/Extensions/WindowTypeExtensions.swift b/Easydict/SwiftApp/Utility/Extensions/WindowTypeExtensions.swift similarity index 100% rename from Easydict/NewApp/Utility/Extensions/WindowTypeExtensions.swift rename to Easydict/SwiftApp/Utility/Extensions/WindowTypeExtensions.swift diff --git a/Easydict/NewApp/Utility/GlobalContext.swift b/Easydict/SwiftApp/Utility/GlobalContext.swift similarity index 100% rename from Easydict/NewApp/Utility/GlobalContext.swift rename to Easydict/SwiftApp/Utility/GlobalContext.swift diff --git a/Easydict/NewApp/Utility/Protocol/ConfigurableService.swift b/Easydict/SwiftApp/Utility/Protocol/ConfigurableService.swift similarity index 100% rename from Easydict/NewApp/Utility/Protocol/ConfigurableService.swift rename to Easydict/SwiftApp/Utility/Protocol/ConfigurableService.swift diff --git a/Easydict/NewApp/Utility/Protocol/ServiceSecretConfigreValidatable.swift b/Easydict/SwiftApp/Utility/Protocol/ServiceSecretConfigreValidatable.swift similarity index 100% rename from Easydict/NewApp/Utility/Protocol/ServiceSecretConfigreValidatable.swift rename to Easydict/SwiftApp/Utility/Protocol/ServiceSecretConfigreValidatable.swift diff --git a/Easydict/NewApp/View/MenuItemView.swift b/Easydict/SwiftApp/View/MenuItemView.swift similarity index 100% rename from Easydict/NewApp/View/MenuItemView.swift rename to Easydict/SwiftApp/View/MenuItemView.swift diff --git a/Easydict/NewApp/View/MenuView/MainMenuCommand.swift b/Easydict/SwiftApp/View/MenuView/MainMenuCommand.swift similarity index 100% rename from Easydict/NewApp/View/MenuView/MainMenuCommand.swift rename to Easydict/SwiftApp/View/MenuView/MainMenuCommand.swift diff --git a/Easydict/NewApp/View/MenuView/MainMenuShortcutCommand.swift b/Easydict/SwiftApp/View/MenuView/MainMenuShortcutCommand.swift similarity index 100% rename from Easydict/NewApp/View/MenuView/MainMenuShortcutCommand.swift rename to Easydict/SwiftApp/View/MenuView/MainMenuShortcutCommand.swift diff --git a/Easydict/NewApp/View/MenuView/MainMenuShortcutCommandItem.swift b/Easydict/SwiftApp/View/MenuView/MainMenuShortcutCommandItem.swift similarity index 100% rename from Easydict/NewApp/View/MenuView/MainMenuShortcutCommandItem.swift rename to Easydict/SwiftApp/View/MenuView/MainMenuShortcutCommandItem.swift diff --git a/Easydict/NewApp/View/SettingView/SettingView.swift b/Easydict/SwiftApp/View/SettingView/SettingView.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/SettingView.swift rename to Easydict/SwiftApp/View/SettingView/SettingView.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/AboutTab.swift b/Easydict/SwiftApp/View/SettingView/Tabs/AboutTab.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/AboutTab.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/AboutTab.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/AdvancedTab.swift b/Easydict/SwiftApp/View/SettingView/Tabs/AdvancedTab.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/AdvancedTab.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/AdvancedTab.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/DisabledAppTab.swift b/Easydict/SwiftApp/View/SettingView/Tabs/DisabledAppTab.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/DisabledAppTab.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/DisabledAppTab.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/GeneralTab.swift b/Easydict/SwiftApp/View/SettingView/Tabs/GeneralTab.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/GeneralTab.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/GeneralTab.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/PrivacyTab.swift b/Easydict/SwiftApp/View/SettingView/Tabs/PrivacyTab.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/PrivacyTab.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/PrivacyTab.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/SecureTextField.swift b/Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/SecureTextField.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/SecureTextField.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/SecureTextField.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationCells.swift b/Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationCells.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationCells.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationCells.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSecretSectionView.swift b/Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSecretSectionView.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSecretSectionView.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSecretSectionView.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSection.swift b/Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSection.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSection.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/ServiceConfiguration/ServiceConfigurationSection.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/ServiceTab.swift b/Easydict/SwiftApp/View/SettingView/Tabs/ServiceTab.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/ServiceTab.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/ServiceTab.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/ShortcutTab.swift b/Easydict/SwiftApp/View/SettingView/Tabs/ShortcutTab.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/ShortcutTab.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/ShortcutTab.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/AppShortcutSetting.swift b/Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/AppShortcutSetting.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/AppShortcutSetting.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/AppShortcutSetting.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/GlobalShortcutSetting.swift b/Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/GlobalShortcutSetting.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/GlobalShortcutSetting.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/GlobalShortcutSetting.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/KeyHolderAlterView.swift b/Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/KeyHolderAlterView.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/KeyHolderAlterView.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/KeyHolderAlterView.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/KeyHolderRowView.swift b/Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/KeyHolderRowView.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/KeyHolderRowView.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/KeyHolderRowView.swift diff --git a/Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/KeyHolderWrapper.swift b/Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/KeyHolderWrapper.swift similarity index 100% rename from Easydict/NewApp/View/SettingView/Tabs/View/Shortcut/KeyHolderWrapper.swift rename to Easydict/SwiftApp/View/SettingView/Tabs/View/Shortcut/KeyHolderWrapper.swift diff --git a/Easydict/NewApp/View/TapHandlerView.swift b/Easydict/SwiftApp/View/TapHandlerView.swift similarity index 100% rename from Easydict/NewApp/View/TapHandlerView.swift rename to Easydict/SwiftApp/View/TapHandlerView.swift diff --git a/Easydict/NewApp/View/WindowAccessor.swift b/Easydict/SwiftApp/View/WindowAccessor.swift similarity index 100% rename from Easydict/NewApp/View/WindowAccessor.swift rename to Easydict/SwiftApp/View/WindowAccessor.swift