From 1a1563cd11f38e70f4ba15a524ab8111ebb9b62b Mon Sep 17 00:00:00 2001 From: fish Date: Fri, 17 Jul 2026 23:10:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E4=BB=8E=20UIKit=20=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=88=B0=20SwiftUI=EF=BC=8C=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=20Bundle=20ID=20=E5=92=8C=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=E7=AD=89=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .../LearnEnglish.xcodeproj/project.pbxproj | 236 +++++++++--------- LearnEnglish/LearnEnglish/AppDelegate.swift | 36 --- .../AppIcon.appiconset/Contents.json | 50 ++++ .../Base.lproj/LaunchScreen.storyboard | 25 -- .../LearnEnglish/Base.lproj/Main.storyboard | 24 -- LearnEnglish/LearnEnglish/ContentView.swift | 24 ++ LearnEnglish/LearnEnglish/Info.plist | 25 -- .../LearnEnglish/LearnEnglishApp.swift | 17 ++ LearnEnglish/LearnEnglish/SceneDelegate.swift | 52 ---- .../LearnEnglish/ViewController.swift | 19 -- 10 files changed, 211 insertions(+), 297 deletions(-) delete mode 100644 LearnEnglish/LearnEnglish/AppDelegate.swift delete mode 100644 LearnEnglish/LearnEnglish/Base.lproj/LaunchScreen.storyboard delete mode 100644 LearnEnglish/LearnEnglish/Base.lproj/Main.storyboard create mode 100644 LearnEnglish/LearnEnglish/ContentView.swift delete mode 100644 LearnEnglish/LearnEnglish/Info.plist create mode 100644 LearnEnglish/LearnEnglish/LearnEnglishApp.swift delete mode 100644 LearnEnglish/LearnEnglish/SceneDelegate.swift delete mode 100644 LearnEnglish/LearnEnglish/ViewController.swift diff --git a/LearnEnglish/LearnEnglish.xcodeproj/project.pbxproj b/LearnEnglish/LearnEnglish.xcodeproj/project.pbxproj index b3f9489..d7611d5 100644 --- a/LearnEnglish/LearnEnglish.xcodeproj/project.pbxproj +++ b/LearnEnglish/LearnEnglish.xcodeproj/project.pbxproj @@ -7,32 +7,19 @@ objects = { /* Begin PBXFileReference section */ - CF43E826300A795C00CB9AE3 /* LearnEnglish.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LearnEnglish.app; sourceTree = BUILT_PRODUCTS_DIR; }; + CF43E868300A7CFA00CB9AE3 /* LearnEnglish.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LearnEnglish.app; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ -/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - CF43E838300A795D00CB9AE3 /* Exceptions for "LearnEnglish" folder in "LearnEnglish" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Info.plist, - ); - target = CF43E825300A795C00CB9AE3 /* LearnEnglish */; - }; -/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ - /* Begin PBXFileSystemSynchronizedRootGroup section */ - CF43E828300A795C00CB9AE3 /* LearnEnglish */ = { + CF43E86A300A7CFA00CB9AE3 /* LearnEnglish */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - CF43E838300A795D00CB9AE3 /* Exceptions for "LearnEnglish" folder in "LearnEnglish" target */, - ); path = LearnEnglish; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ - CF43E823300A795C00CB9AE3 /* Frameworks */ = { + CF43E865300A7CFA00CB9AE3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -42,18 +29,18 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - CF43E81D300A795C00CB9AE3 = { + CF43E85F300A7CFA00CB9AE3 = { isa = PBXGroup; children = ( - CF43E828300A795C00CB9AE3 /* LearnEnglish */, - CF43E827300A795C00CB9AE3 /* Products */, + CF43E86A300A7CFA00CB9AE3 /* LearnEnglish */, + CF43E869300A7CFA00CB9AE3 /* Products */, ); sourceTree = ""; }; - CF43E827300A795C00CB9AE3 /* Products */ = { + CF43E869300A7CFA00CB9AE3 /* Products */ = { isa = PBXGroup; children = ( - CF43E826300A795C00CB9AE3 /* LearnEnglish.app */, + CF43E868300A7CFA00CB9AE3 /* LearnEnglish.app */, ); name = Products; sourceTree = ""; @@ -61,64 +48,64 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - CF43E825300A795C00CB9AE3 /* LearnEnglish */ = { + CF43E867300A7CFA00CB9AE3 /* LearnEnglish */ = { isa = PBXNativeTarget; - buildConfigurationList = CF43E839300A795D00CB9AE3 /* Build configuration list for PBXNativeTarget "LearnEnglish" */; + buildConfigurationList = CF43E873300A7CFB00CB9AE3 /* Build configuration list for PBXNativeTarget "LearnEnglish" */; buildPhases = ( - CF43E822300A795C00CB9AE3 /* Sources */, - CF43E823300A795C00CB9AE3 /* Frameworks */, - CF43E824300A795C00CB9AE3 /* Resources */, + CF43E864300A7CFA00CB9AE3 /* Sources */, + CF43E865300A7CFA00CB9AE3 /* Frameworks */, + CF43E866300A7CFA00CB9AE3 /* Resources */, ); buildRules = ( ); dependencies = ( ); fileSystemSynchronizedGroups = ( - CF43E828300A795C00CB9AE3 /* LearnEnglish */, + CF43E86A300A7CFA00CB9AE3 /* LearnEnglish */, ); name = LearnEnglish; packageProductDependencies = ( ); productName = LearnEnglish; - productReference = CF43E826300A795C00CB9AE3 /* LearnEnglish.app */; + productReference = CF43E868300A7CFA00CB9AE3 /* LearnEnglish.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - CF43E81E300A795C00CB9AE3 /* Project object */ = { + CF43E860300A7CFA00CB9AE3 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 2630; LastUpgradeCheck = 2630; TargetAttributes = { - CF43E825300A795C00CB9AE3 = { + CF43E867300A7CFA00CB9AE3 = { CreatedOnToolsVersion = 26.3; }; }; }; - buildConfigurationList = CF43E821300A795C00CB9AE3 /* Build configuration list for PBXProject "LearnEnglish" */; + buildConfigurationList = CF43E863300A7CFA00CB9AE3 /* Build configuration list for PBXProject "LearnEnglish" */; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); - mainGroup = CF43E81D300A795C00CB9AE3; + mainGroup = CF43E85F300A7CFA00CB9AE3; minimizedProjectReferenceProxies = 1; preferredProjectObjectVersion = 77; - productRefGroup = CF43E827300A795C00CB9AE3 /* Products */; + productRefGroup = CF43E869300A7CFA00CB9AE3 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - CF43E825300A795C00CB9AE3 /* LearnEnglish */, + CF43E867300A7CFA00CB9AE3 /* LearnEnglish */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - CF43E824300A795C00CB9AE3 /* Resources */ = { + CF43E866300A7CFA00CB9AE3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -128,7 +115,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - CF43E822300A795C00CB9AE3 /* Sources */ = { + CF43E864300A7CFA00CB9AE3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -138,73 +125,7 @@ /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ - CF43E83A300A795D00CB9AE3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 37HGUEC495; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LearnEnglish/Info.plist; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; - INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; - IPHONEOS_DEPLOYMENT_TARGET = 26; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0.0; - PRODUCT_BUNDLE_IDENTIFIER = com.fishestlife.english; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - CF43E83B300A795D00CB9AE3 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = 37HGUEC495; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = LearnEnglish/Info.plist; - INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; - INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; - INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; - IPHONEOS_DEPLOYMENT_TARGET = 26; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0.0; - PRODUCT_BUNDLE_IDENTIFIER = com.fishestlife.english; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRING_CATALOG_GENERATE_SYMBOLS = YES; - SWIFT_APPROACHABLE_CONCURRENCY = YES; - SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - CF43E83C300A795D00CB9AE3 /* Debug */ = { + CF43E871300A7CFB00CB9AE3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -257,18 +178,16 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 26.2; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; - CF43E83D300A795D00CB9AE3 /* Release */ = { + CF43E872300A7CFB00CB9AE3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -315,38 +234,123 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 26.2; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; - VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + CF43E874300A7CFB00CB9AE3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 37HGUEC495; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SELECTED_FILES = readonly; + GENERATE_INFOPLIST_FILE = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 26; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 26; + MARKETING_VERSION = 1.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.fishestlife.english; + PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + SDKROOT = auto; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,7"; + XROS_DEPLOYMENT_TARGET = 26; + }; + name = Debug; + }; + CF43E875300A7CFB00CB9AE3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 37HGUEC495; + ENABLE_APP_SANDBOX = YES; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SELECTED_FILES = readonly; + GENERATE_INFOPLIST_FILE = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; + INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; + IPHONEOS_DEPLOYMENT_TARGET = 26; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 26; + MARKETING_VERSION = 1.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.fishestlife.english; + PRODUCT_NAME = "$(TARGET_NAME)"; + REGISTER_APP_GROUPS = YES; + SDKROOT = auto; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,7"; + XROS_DEPLOYMENT_TARGET = 26; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - CF43E821300A795C00CB9AE3 /* Build configuration list for PBXProject "LearnEnglish" */ = { + CF43E863300A7CFA00CB9AE3 /* Build configuration list for PBXProject "LearnEnglish" */ = { isa = XCConfigurationList; buildConfigurations = ( - CF43E83C300A795D00CB9AE3 /* Debug */, - CF43E83D300A795D00CB9AE3 /* Release */, + CF43E871300A7CFB00CB9AE3 /* Debug */, + CF43E872300A7CFB00CB9AE3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CF43E839300A795D00CB9AE3 /* Build configuration list for PBXNativeTarget "LearnEnglish" */ = { + CF43E873300A7CFB00CB9AE3 /* Build configuration list for PBXNativeTarget "LearnEnglish" */ = { isa = XCConfigurationList; buildConfigurations = ( - CF43E83A300A795D00CB9AE3 /* Debug */, - CF43E83B300A795D00CB9AE3 /* Release */, + CF43E874300A7CFB00CB9AE3 /* Debug */, + CF43E875300A7CFB00CB9AE3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = CF43E81E300A795C00CB9AE3 /* Project object */; + rootObject = CF43E860300A7CFA00CB9AE3 /* Project object */; } diff --git a/LearnEnglish/LearnEnglish/AppDelegate.swift b/LearnEnglish/LearnEnglish/AppDelegate.swift deleted file mode 100644 index 4396696..0000000 --- a/LearnEnglish/LearnEnglish/AppDelegate.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// AppDelegate.swift -// LearnEnglish -// -// Created by fish on 2026/7/17. -// - -import UIKit - -@main -class AppDelegate: UIResponder, UIApplicationDelegate { - - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - // MARK: UISceneSession Lifecycle - - func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { - // Called when a new scene session is being created. - // Use this method to select a configuration to create the new scene with. - return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) - } - - func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { - // Called when the user discards a scene session. - // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. - // Use this method to release any resources that were specific to the discarded scenes, as they will not return. - } - - -} - diff --git a/LearnEnglish/LearnEnglish/Assets.xcassets/AppIcon.appiconset/Contents.json b/LearnEnglish/LearnEnglish/Assets.xcassets/AppIcon.appiconset/Contents.json index 2305880..ffdfe15 100644 --- a/LearnEnglish/LearnEnglish/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/LearnEnglish/LearnEnglish/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -26,6 +26,56 @@ "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" } ], "info" : { diff --git a/LearnEnglish/LearnEnglish/Base.lproj/LaunchScreen.storyboard b/LearnEnglish/LearnEnglish/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 865e932..0000000 --- a/LearnEnglish/LearnEnglish/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/LearnEnglish/LearnEnglish/Base.lproj/Main.storyboard b/LearnEnglish/LearnEnglish/Base.lproj/Main.storyboard deleted file mode 100644 index 25a7638..0000000 --- a/LearnEnglish/LearnEnglish/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/LearnEnglish/LearnEnglish/ContentView.swift b/LearnEnglish/LearnEnglish/ContentView.swift new file mode 100644 index 0000000..d915cb2 --- /dev/null +++ b/LearnEnglish/LearnEnglish/ContentView.swift @@ -0,0 +1,24 @@ +// +// ContentView.swift +// LearnEnglish +// +// Created by fish on 2026/7/17. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundStyle(.tint) + Text("Hello, world!") + } + .padding() + } +} + +#Preview { + ContentView() +} diff --git a/LearnEnglish/LearnEnglish/Info.plist b/LearnEnglish/LearnEnglish/Info.plist deleted file mode 100644 index dd3c9af..0000000 --- a/LearnEnglish/LearnEnglish/Info.plist +++ /dev/null @@ -1,25 +0,0 @@ - - - - - UIApplicationSceneManifest - - UIApplicationSupportsMultipleScenes - - UISceneConfigurations - - UIWindowSceneSessionRoleApplication - - - UISceneConfigurationName - Default Configuration - UISceneDelegateClassName - $(PRODUCT_MODULE_NAME).SceneDelegate - UISceneStoryboardFile - Main - - - - - - diff --git a/LearnEnglish/LearnEnglish/LearnEnglishApp.swift b/LearnEnglish/LearnEnglish/LearnEnglishApp.swift new file mode 100644 index 0000000..eb81531 --- /dev/null +++ b/LearnEnglish/LearnEnglish/LearnEnglishApp.swift @@ -0,0 +1,17 @@ +// +// LearnEnglishApp.swift +// LearnEnglish +// +// Created by fish on 2026/7/17. +// + +import SwiftUI + +@main +struct LearnEnglishApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/LearnEnglish/LearnEnglish/SceneDelegate.swift b/LearnEnglish/LearnEnglish/SceneDelegate.swift deleted file mode 100644 index 84715f7..0000000 --- a/LearnEnglish/LearnEnglish/SceneDelegate.swift +++ /dev/null @@ -1,52 +0,0 @@ -// -// SceneDelegate.swift -// LearnEnglish -// -// Created by fish on 2026/7/17. -// - -import UIKit - -class SceneDelegate: UIResponder, UIWindowSceneDelegate { - - var window: UIWindow? - - - func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { - // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. - // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. - // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). - guard let _ = (scene as? UIWindowScene) else { return } - } - - func sceneDidDisconnect(_ scene: UIScene) { - // Called as the scene is being released by the system. - // This occurs shortly after the scene enters the background, or when its session is discarded. - // Release any resources associated with this scene that can be re-created the next time the scene connects. - // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). - } - - func sceneDidBecomeActive(_ scene: UIScene) { - // Called when the scene has moved from an inactive state to an active state. - // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. - } - - func sceneWillResignActive(_ scene: UIScene) { - // Called when the scene will move from an active state to an inactive state. - // This may occur due to temporary interruptions (ex. an incoming phone call). - } - - func sceneWillEnterForeground(_ scene: UIScene) { - // Called as the scene transitions from the background to the foreground. - // Use this method to undo the changes made on entering the background. - } - - func sceneDidEnterBackground(_ scene: UIScene) { - // Called as the scene transitions from the foreground to the background. - // Use this method to save data, release shared resources, and store enough scene-specific state information - // to restore the scene back to its current state. - } - - -} - diff --git a/LearnEnglish/LearnEnglish/ViewController.swift b/LearnEnglish/LearnEnglish/ViewController.swift deleted file mode 100644 index b879099..0000000 --- a/LearnEnglish/LearnEnglish/ViewController.swift +++ /dev/null @@ -1,19 +0,0 @@ -// -// ViewController.swift -// LearnEnglish -// -// Created by fish on 2026/7/17. -// - -import UIKit - -class ViewController: UIViewController { - - override func viewDidLoad() { - super.viewDidLoad() - // Do any additional setup after loading the view. - } - - -} -