diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..d2c1914 Binary files /dev/null and b/.DS_Store differ diff --git a/第一章 我的第一个iOS应用程序/.DS_Store b/第一章 我的第一个iOS应用程序/.DS_Store new file mode 100644 index 0000000..f5bab63 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/.DS_Store differ diff --git a/第一章 我的第一个iOS应用程序/源代码/.DS_Store b/第一章 我的第一个iOS应用程序/源代码/.DS_Store new file mode 100644 index 0000000..d657803 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/.DS_Store differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.pbxproj b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.pbxproj new file mode 100644 index 0000000..ad2afd0 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.pbxproj @@ -0,0 +1,469 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 1F4E431525C3F03D00FDD27B /* FirstAppApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4E431425C3F03D00FDD27B /* FirstAppApp.swift */; }; + 1F4E431725C3F03D00FDD27B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4E431625C3F03D00FDD27B /* ContentView.swift */; }; + 1F4E431925C3F03E00FDD27B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1F4E431825C3F03E00FDD27B /* Assets.xcassets */; }; + 1F4E431C25C3F03E00FDD27B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1F4E431B25C3F03E00FDD27B /* Preview Assets.xcassets */; }; + 1F4E432725C500DA00FDD27B /* CardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4E432625C500DA00FDD27B /* CardView.swift */; }; + 1F4E432D25C69FDD00FDD27B /* CardModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4E432C25C69FDD00FDD27B /* CardModel.swift */; }; + 1F4E433025C6B4D900FDD27B /* CardData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F4E432F25C6B4D900FDD27B /* CardData.swift */; }; + 1FAA7E1B25C6F27500E4E64C /* sound-transitions.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 1FAA7E1A25C6F27500E4E64C /* sound-transitions.mp3 */; }; + 1FAA7E1E25C6F2B400E4E64C /* PlaySound.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FAA7E1D25C6F2B400E4E64C /* PlaySound.swift */; }; + 1FAA7E2525C7D6EA00E4E64C /* Stickers.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1FAA7E2425C7D6EA00E4E64C /* Stickers.xcassets */; }; + 1FAA7E2925C7D6EA00E4E64C /* stickers.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 1FAA7E2225C7D6E900E4E64C /* stickers.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1FAA7E2725C7D6EA00E4E64C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1F4E430925C3F03D00FDD27B /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1FAA7E2125C7D6E900E4E64C; + remoteInfo = stickers; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 1FAA7E2D25C7D6EA00E4E64C /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 1FAA7E2925C7D6EA00E4E64C /* stickers.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1F4E431125C3F03D00FDD27B /* FirstApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FirstApp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F4E431425C3F03D00FDD27B /* FirstAppApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirstAppApp.swift; sourceTree = ""; }; + 1F4E431625C3F03D00FDD27B /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 1F4E431825C3F03E00FDD27B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 1F4E431B25C3F03E00FDD27B /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 1F4E431D25C3F03E00FDD27B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 1F4E432625C500DA00FDD27B /* CardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardView.swift; sourceTree = ""; }; + 1F4E432C25C69FDD00FDD27B /* CardModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardModel.swift; sourceTree = ""; }; + 1F4E432F25C6B4D900FDD27B /* CardData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardData.swift; sourceTree = ""; }; + 1FAA7E1A25C6F27500E4E64C /* sound-transitions.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = "sound-transitions.mp3"; sourceTree = ""; }; + 1FAA7E1D25C6F2B400E4E64C /* PlaySound.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaySound.swift; sourceTree = ""; }; + 1FAA7E2225C7D6E900E4E64C /* stickers.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = stickers.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 1FAA7E2425C7D6EA00E4E64C /* Stickers.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Stickers.xcassets; sourceTree = ""; }; + 1FAA7E2625C7D6EA00E4E64C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1F4E430E25C3F03D00FDD27B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1F4E430825C3F03D00FDD27B = { + isa = PBXGroup; + children = ( + 1F4E431325C3F03D00FDD27B /* FirstApp */, + 1FAA7E2325C7D6E900E4E64C /* stickers */, + 1F4E431225C3F03D00FDD27B /* Products */, + ); + sourceTree = ""; + }; + 1F4E431225C3F03D00FDD27B /* Products */ = { + isa = PBXGroup; + children = ( + 1F4E431125C3F03D00FDD27B /* FirstApp.app */, + 1FAA7E2225C7D6E900E4E64C /* stickers.appex */, + ); + name = Products; + sourceTree = ""; + }; + 1F4E431325C3F03D00FDD27B /* FirstApp */ = { + isa = PBXGroup; + children = ( + 1F4E431425C3F03D00FDD27B /* FirstAppApp.swift */, + 1F4E431625C3F03D00FDD27B /* ContentView.swift */, + 1F4E432625C500DA00FDD27B /* CardView.swift */, + 1F4E431825C3F03E00FDD27B /* Assets.xcassets */, + 1F4E431D25C3F03E00FDD27B /* Info.plist */, + 1F4E431A25C3F03E00FDD27B /* Preview Content */, + 1F4E432C25C69FDD00FDD27B /* CardModel.swift */, + 1F4E432F25C6B4D900FDD27B /* CardData.swift */, + 1FAA7E1A25C6F27500E4E64C /* sound-transitions.mp3 */, + 1FAA7E1D25C6F2B400E4E64C /* PlaySound.swift */, + ); + path = FirstApp; + sourceTree = ""; + }; + 1F4E431A25C3F03E00FDD27B /* Preview Content */ = { + isa = PBXGroup; + children = ( + 1F4E431B25C3F03E00FDD27B /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 1FAA7E2325C7D6E900E4E64C /* stickers */ = { + isa = PBXGroup; + children = ( + 1FAA7E2425C7D6EA00E4E64C /* Stickers.xcassets */, + 1FAA7E2625C7D6EA00E4E64C /* Info.plist */, + ); + path = stickers; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 1F4E431025C3F03D00FDD27B /* FirstApp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1F4E432025C3F03E00FDD27B /* Build configuration list for PBXNativeTarget "FirstApp" */; + buildPhases = ( + 1F4E430D25C3F03D00FDD27B /* Sources */, + 1F4E430E25C3F03D00FDD27B /* Frameworks */, + 1F4E430F25C3F03D00FDD27B /* Resources */, + 1FAA7E2D25C7D6EA00E4E64C /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 1FAA7E2825C7D6EA00E4E64C /* PBXTargetDependency */, + ); + name = FirstApp; + productName = FirstApp; + productReference = 1F4E431125C3F03D00FDD27B /* FirstApp.app */; + productType = "com.apple.product-type.application"; + }; + 1FAA7E2125C7D6E900E4E64C /* stickers */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1FAA7E2A25C7D6EA00E4E64C /* Build configuration list for PBXNativeTarget "stickers" */; + buildPhases = ( + 1FAA7E2025C7D6E900E4E64C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = stickers; + productName = stickers; + productReference = 1FAA7E2225C7D6E900E4E64C /* stickers.appex */; + productType = "com.apple.product-type.app-extension.messages-sticker-pack"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 1F4E430925C3F03D00FDD27B /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1240; + LastUpgradeCheck = 1250; + TargetAttributes = { + 1F4E431025C3F03D00FDD27B = { + CreatedOnToolsVersion = 12.4; + }; + 1FAA7E2125C7D6E900E4E64C = { + CreatedOnToolsVersion = 12.4; + }; + }; + }; + buildConfigurationList = 1F4E430C25C3F03D00FDD27B /* Build configuration list for PBXProject "FirstApp" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 1F4E430825C3F03D00FDD27B; + productRefGroup = 1F4E431225C3F03D00FDD27B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1F4E431025C3F03D00FDD27B /* FirstApp */, + 1FAA7E2125C7D6E900E4E64C /* stickers */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1F4E430F25C3F03D00FDD27B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1F4E431C25C3F03E00FDD27B /* Preview Assets.xcassets in Resources */, + 1F4E431925C3F03E00FDD27B /* Assets.xcassets in Resources */, + 1FAA7E1B25C6F27500E4E64C /* sound-transitions.mp3 in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1FAA7E2025C7D6E900E4E64C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1FAA7E2525C7D6EA00E4E64C /* Stickers.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1F4E430D25C3F03D00FDD27B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1F4E433025C6B4D900FDD27B /* CardData.swift in Sources */, + 1FAA7E1E25C6F2B400E4E64C /* PlaySound.swift in Sources */, + 1F4E431725C3F03D00FDD27B /* ContentView.swift in Sources */, + 1F4E432D25C69FDD00FDD27B /* CardModel.swift in Sources */, + 1F4E432725C500DA00FDD27B /* CardView.swift in Sources */, + 1F4E431525C3F03D00FDD27B /* FirstAppApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1FAA7E2825C7D6EA00E4E64C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1FAA7E2125C7D6E900E4E64C /* stickers */; + targetProxy = 1FAA7E2725C7D6EA00E4E64C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1F4E431E25C3F03E00FDD27B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 1F4E431F25C3F03E00FDD27B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 1F4E432125C3F03E00FDD27B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"FirstApp/Preview Content\""; + DEVELOPMENT_TEAM = Z3W45GNWDZ; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = FirstApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = cn.liuming.FirstApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 1F4E432225C3F03E00FDD27B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"FirstApp/Preview Content\""; + DEVELOPMENT_TEAM = Z3W45GNWDZ; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = FirstApp/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = cn.liuming.FirstApp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 1FAA7E2B25C7D6EA00E4E64C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Z3W45GNWDZ; + INFOPLIST_FILE = stickers/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_BUNDLE_IDENTIFIER = cn.liuming.FirstApp.stickers; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 1FAA7E2C25C7D6EA00E4E64C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "iMessage App Icon"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = Z3W45GNWDZ; + INFOPLIST_FILE = stickers/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_BUNDLE_IDENTIFIER = cn.liuming.FirstApp.stickers; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1F4E430C25C3F03D00FDD27B /* Build configuration list for PBXProject "FirstApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1F4E431E25C3F03E00FDD27B /* Debug */, + 1F4E431F25C3F03E00FDD27B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1F4E432025C3F03E00FDD27B /* Build configuration list for PBXNativeTarget "FirstApp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1F4E432125C3F03E00FDD27B /* Debug */, + 1F4E432225C3F03E00FDD27B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1FAA7E2A25C7D6EA00E4E64C /* Build configuration list for PBXNativeTarget "stickers" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1FAA7E2B25C7D6EA00E4E64C /* Debug */, + 1FAA7E2C25C7D6EA00E4E64C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 1F4E430925C3F03D00FDD27B /* Project object */; +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcuserdata/liuming.xcuserdatad/UserInterfaceState.xcuserstate b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcuserdata/liuming.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..ea3b1b4 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcuserdata/liuming.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcuserdata/liumingl.xcuserdatad/UserInterfaceState.xcuserstate b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcuserdata/liumingl.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..39d0d8d Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/project.xcworkspace/xcuserdata/liumingl.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liuming.xcuserdatad/xcschemes/xcschememanagement.plist b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liuming.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..c506e17 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liuming.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + FirstApp.xcscheme_^#shared#^_ + + orderHint + 0 + + stickers.xcscheme_^#shared#^_ + + orderHint + 1 + + + + diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liumingl.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liumingl.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..c6c32e8 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liumingl.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,6 @@ + + + diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liumingl.xcuserdatad/xcschemes/xcschememanagement.plist b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liumingl.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..c506e17 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp.xcodeproj/xcuserdata/liumingl.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + FirstApp.xcscheme_^#shared#^_ + + orderHint + 0 + + stickers.xcscheme_^#shared#^_ + + orderHint + 1 + + + + diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AccentColor.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..52ae2a6 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,116 @@ +{ + "images" : [ + { + "filename" : "icon-20@2x-ipad.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon-20@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "icon-29@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-29@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "icon-40@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon-40@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "icon-60@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "icon-60@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "icon-20-ipad.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "icon-20@2x-ipad-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon-29-ipad.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "icon-29@2x-ipad.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "icon-40@2x-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon-76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "icon-76@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "icon-83.5@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "icon-1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-1024.png new file mode 100644 index 0000000..1b71e36 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-1024.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png new file mode 100644 index 0000000..fa1331e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad-1.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad-1.png new file mode 100644 index 0000000..7b3c9ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad-1.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png new file mode 100644 index 0000000..7b3c9ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png new file mode 100644 index 0000000..b468375 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png new file mode 100644 index 0000000..94ae895 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png new file mode 100644 index 0000000..95283f0 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png new file mode 100644 index 0000000..95283f0 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png new file mode 100644 index 0000000..81378ab Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40.png new file mode 100644 index 0000000..7b3c9ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png new file mode 100644 index 0000000..3024c64 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x-1.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png new file mode 100644 index 0000000..3024c64 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png new file mode 100644 index 0000000..df9c9bb Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png new file mode 100644 index 0000000..df9c9bb Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png new file mode 100644 index 0000000..7ed3283 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-76.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-76.png new file mode 100644 index 0000000..0c03058 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-76.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png new file mode 100644 index 0000000..e22af9e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png new file mode 100644 index 0000000..31ec8e4 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color01.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color01.colorset/Contents.json new file mode 100644 index 0000000..b1eb577 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color01.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x00", + "green" : "0x71", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.443", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color02.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color02.colorset/Contents.json new file mode 100644 index 0000000..25d7696 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color02.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x42", + "green" : "0x38", + "red" : "0xCE" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.259", + "green" : "0.220", + "red" : "0.808" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color03.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color03.colorset/Contents.json new file mode 100644 index 0000000..406580f --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color03.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD1", + "green" : "0xFF", + "red" : "0xA4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.820", + "green" : "1.000", + "red" : "0.643" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color04.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color04.colorset/Contents.json new file mode 100644 index 0000000..55f6aa2 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color04.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xB3", + "green" : "0xD3", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.702", + "green" : "0.827", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color05.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color05.colorset/Contents.json new file mode 100644 index 0000000..1f60e21 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color05.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xCE", + "green" : "0xBB", + "red" : "0xFA" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.808", + "green" : "0.733", + "red" : "0.980" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color06.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color06.colorset/Contents.json new file mode 100644 index 0000000..801f5ab --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color06.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x7D", + "green" : "0x0B", + "red" : "0xB5" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.490", + "green" : "0.043", + "red" : "0.710" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color07.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color07.colorset/Contents.json new file mode 100644 index 0000000..d1c1a7f --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color07.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xE9", + "green" : "0xF2", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.914", + "green" : "0.949", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color08.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color08.colorset/Contents.json new file mode 100644 index 0000000..a420c6c --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color08.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xD6", + "red" : "0xA1" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.839", + "red" : "0.631" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color09.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color09.colorset/Contents.json new file mode 100644 index 0000000..103891a --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color09.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xBD", + "green" : "0xD8", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.741", + "green" : "0.847", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color10.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color10.colorset/Contents.json new file mode 100644 index 0000000..6acb568 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color10.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x40", + "green" : "0xCD", + "red" : "0xF3" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.251", + "green" : "0.804", + "red" : "0.953" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color11.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color11.colorset/Contents.json new file mode 100644 index 0000000..01bdc08 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color11.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD9", + "green" : "0xE4", + "red" : "0xFA" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.851", + "green" : "0.894", + "red" : "0.980" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color12.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color12.colorset/Contents.json new file mode 100644 index 0000000..523a296 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color12.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x00", + "green" : "0x28", + "red" : "0xA0" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.157", + "red" : "0.627" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color13.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color13.colorset/Contents.json new file mode 100644 index 0000000..f8ae6a8 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color13.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color14.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color14.colorset/Contents.json new file mode 100644 index 0000000..dfc2e53 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Color14.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x6F", + "green" : "0x93", + "red" : "0xD4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.435", + "green" : "0.576", + "red" : "0.831" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/ColorShadow.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/ColorShadow.colorset/Contents.json new file mode 100644 index 0000000..e2e1d47 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/ColorShadow.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.600", + "blue" : "0.000", + "green" : "0.000", + "red" : "0.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.600", + "blue" : "0.000", + "green" : "0.000", + "red" : "0.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Colors/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/Contents.json new file mode 100644 index 0000000..77affa0 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "developer-no1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "developer-no1@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "developer-no1@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1.png new file mode 100644 index 0000000..0699f1e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1@2x.png new file mode 100644 index 0000000..7eeda6b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1@3x.png new file mode 100644 index 0000000..f1b375f Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no1.imageset/developer-no1@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/Contents.json new file mode 100644 index 0000000..4d5cfeb --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "developer-no2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "developer-no2@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "developer-no2@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2.png new file mode 100644 index 0000000..bf6d3c8 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2@2x.png new file mode 100644 index 0000000..f92e8f1 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2@3x.png new file mode 100644 index 0000000..ab2258e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no2.imageset/developer-no2@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/Contents.json new file mode 100644 index 0000000..19e6069 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "developer-no3.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "developer-no3@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "developer-no3@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3.png new file mode 100644 index 0000000..6691669 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3@2x.png new file mode 100644 index 0000000..c80c713 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3@3x.png new file mode 100644 index 0000000..4e970d8 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no3.imageset/developer-no3@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/Contents.json new file mode 100644 index 0000000..5693a33 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "developer-no4.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "developer-no4@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "developer-no4@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4.png new file mode 100644 index 0000000..440bf6e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4@2x.png new file mode 100644 index 0000000..cc5cab1 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4@3x.png new file mode 100644 index 0000000..c956422 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no4.imageset/developer-no4@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/Contents.json new file mode 100644 index 0000000..d10ae28 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "developer-no5.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "developer-no5@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "developer-no5@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5.png new file mode 100644 index 0000000..138b9ce Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5@2x.png new file mode 100644 index 0000000..0d9e54c Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5@3x.png new file mode 100644 index 0000000..bd913ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no5.imageset/developer-no5@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/Contents.json new file mode 100644 index 0000000..efc8259 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "developer-no6.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "developer-no6@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "developer-no6@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6.png new file mode 100644 index 0000000..6df1b83 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6@2x.png new file mode 100644 index 0000000..a994d40 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6@3x.png new file mode 100644 index 0000000..3b18004 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no6.imageset/developer-no6@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/Contents.json new file mode 100644 index 0000000..f04b153 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "developer-no7.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "developer-no7@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "developer-no7@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7.png new file mode 100644 index 0000000..fae10b5 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7@2x.png new file mode 100644 index 0000000..4d61235 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7@3x.png new file mode 100644 index 0000000..0533c85 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/Developer/developer-no7.imageset/developer-no7@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-color.colorset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-color.colorset/Contents.json new file mode 100644 index 0000000..41aedb2 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.578", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.578", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-image.imageset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-image.imageset/Contents.json new file mode 100644 index 0000000..3a668ee --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-image.imageset/Contents.json @@ -0,0 +1,24 @@ +{ + "images" : [ + { + "filename" : "launch-screen-image.svg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-image.imageset/launch-screen-image.svg b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-image.imageset/launch-screen-image.svg new file mode 100644 index 0000000..1bc2069 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Assets.xcassets/LaunchScreen/launch-screen-image.imageset/launch-screen-image.svg @@ -0,0 +1,10 @@ + + + launch-screen-image + + + + + + + \ No newline at end of file diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardData.swift b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardData.swift new file mode 100644 index 0000000..5a38700 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardData.swift @@ -0,0 +1,56 @@ +// +// CardData.swift +// FirstApp +// +// Created by 刘铭 on 2021/1/31. +// + +import SwiftUI + +// MARK: - 卡片数据 + +let cardData: [Card] = [ + Card(title: "SwiftUI", + headline: "如此美妙 不同凡响", + imageName: "developer-no1", + callToAction: "技术总监", + message: "态度决定一切,勤于思考,不断学习。", + gradientColors: [Color("Color01"), Color("Color02")]), + Card(title: "iOS 14", + headline: "从来没有如此梦幻的新面貌", + imageName: "developer-no2", + callToAction: "研发Leader", + message: "持续学习,不断进步,这不管是对女性工作者还是男性工作者,其实都是重要的。", + gradientColors: [Color("Color03"), Color("Color04")]), + Card(title: "Swift 5", + headline: "相信自己 不断前行", + imageName: "developer-no3", + callToAction: "首席架构师", + message: "架构分析,架构设计与实现,业务架构设计与实现,重构。", + gradientColors: [Color("Color05"), Color("Color06")]), + Card(title: "Catalyst", + headline: "Think Different", + imageName: "developer-no4", + callToAction: "高级程序员", + message: "我是主力干活者,有技术难题亲自攻克解决。", + gradientColors: [Color("Color07"), Color("Color08")]), + Card(title: "Playgrounds", + headline: "再一次 改变一切", + imageName: "developer-no5", + callToAction: "程序员", + message: "苹果改变世界的力量,牛顿通过苹果发现了万有引力,乔布斯通过苹果改变了世界。", + gradientColors: [Color("Color09"), Color("Color10")]), + Card(title: "Xcode 12", + headline: "最好的自己 最好的工具", + imageName: "developer-no6", + callToAction: "程序员", + message: "利用Xcode可以把你的想法变为现实。", + gradientColors: [Color("Color11"), Color("Color12")]), + Card(title: "Create ML", + headline: "Hello 未来", + imageName: "developer-no7", + callToAction: "产品测试员", + message: "信心,这是我作为一个女性从业者,从业以来最大的感受。希望女性程序员要自信起来,勇敢起来。", + gradientColors: [Color("Color13"), Color("Color14")]) + +] diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardModel.swift b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardModel.swift new file mode 100644 index 0000000..e037ac4 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardModel.swift @@ -0,0 +1,19 @@ +// +// CardModel.swift +// FirstApp +// +// Created by 刘铭 on 2021/1/31. +// + +import SwiftUI + +// MARK: - 卡片数据模型 +struct Card: Identifiable { + var id = UUID() + var title: String + var headline: String + var imageName: String + var callToAction: String + var message: String + var gradientColors: [Color] +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardView.swift b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardView.swift new file mode 100644 index 0000000..2b64f83 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/CardView.swift @@ -0,0 +1,91 @@ +// +// CardView.swift +// FirstApp +// +// Created by 刘铭 on 2021/1/30. +// + +import SwiftUI + +struct CardView: View { + // MARK: - Properties + var card: Card + + @State private var fadeIn: Bool = false + @State private var moveDownward: Bool = false + @State private var moveUpward: Bool = false + @State private var showAlert: Bool = false + + var hapticImpact = UIImpactFeedbackGenerator(style: .heavy) + + // MARK: - Body + var body: some View { + ZStack { + Image(card.imageName) + .opacity(fadeIn ? 1.0 : 0.0) + + VStack { + Text(card.title) + .font(.largeTitle) + .fontWeight(.heavy) + .foregroundColor(.white) + .multilineTextAlignment(.center) + Text(card.headline) + .fontWeight(.light) + .foregroundColor(.white) + .italic() + } + .offset(y: moveDownward ? -218 : -300) + + Button(action: { + print("按钮被用户点击") + playSound(sound: "sound-transitions", type: "mp3") + hapticImpact.impactOccurred() + self.showAlert.toggle() + }){ + HStack { + Text(card.callToAction) + .fontWeight(.heavy) + .foregroundColor(.white) + .accentColor(.white) + Image(systemName: "arrow.right.circle") + .font(Font.title.weight(.medium)) + .accentColor(.white) + } + .padding(.vertical) + .padding(.horizontal, 24) + .background(LinearGradient(gradient: Gradient(colors: card.gradientColors), startPoint: .leading, endPoint: .trailing)) + .clipShape(Capsule()) + .shadow(color: Color("ColorShadow"), radius: 6, x: 0, y: 3) + } + .offset(y: moveUpward ? 210 : 300) + } + .frame(width: 335, height: 545) + .background(LinearGradient(gradient: Gradient(colors: card.gradientColors), startPoint: .top, endPoint: .bottom)) + .cornerRadius(16) + .shadow(radius: 8) + .onAppear() { + withAnimation(.linear(duration: 1.2)) { + self.fadeIn.toggle() + } + withAnimation(.linear(duration: 0.8)) { + self.moveDownward.toggle() + self.moveUpward.toggle() + } + } + .alert(isPresented: $showAlert){ + Alert(title: Text(card.title), + message: Text(card.message), + dismissButton: .default(Text("OK")) + ) + } + } +} + +// MARK: - Preview +struct CardView_Previews: PreviewProvider { + static var previews: some View { + CardView(card: cardData[5]) + .previewLayout(.sizeThatFits) + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/ContentView.swift b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/ContentView.swift new file mode 100644 index 0000000..e9012db --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/ContentView.swift @@ -0,0 +1,33 @@ +// +// ContentView.swift +// FirstApp +// +// Created by 刘铭 on 2021/1/29. +// + +import SwiftUI + +struct ContentView: View { + // MARK: - Properties + let cards: [Card] = cardData + + // MARK: - Body + var body: some View { + ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .center, spacing: 20) { + ForEach(cards) { item in + CardView(card: item) + } + } + .padding(20) + } + } +} + +// MARK: - Preview +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + .previewDevice("iPhone 11") + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/FirstAppApp.swift b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/FirstAppApp.swift new file mode 100644 index 0000000..47fd1cf --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/FirstAppApp.swift @@ -0,0 +1,17 @@ +// +// FirstAppApp.swift +// FirstApp +// +// Created by 刘铭 on 2021/1/29. +// + +import SwiftUI + +@main +struct FirstAppApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Info.plist b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Info.plist new file mode 100644 index 0000000..f2d1db0 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Info.plist @@ -0,0 +1,55 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UIApplicationSupportsIndirectInputEvents + + UILaunchScreen + + UIColorName + launch-screen-color + UIImageName + launch-screen-image + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/PlaySound.swift b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/PlaySound.swift new file mode 100644 index 0000000..10d932e --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/PlaySound.swift @@ -0,0 +1,23 @@ +// +// PlaySound.swift +// FirstApp +// +// Created by 刘铭 on 2021/1/31. +// + +import Foundation +import AVFoundation + +// MARK: - 音频播放器 +var audioPlayer: AVAudioPlayer? + +func playSound(sound: String, type: String) { + if let path = Bundle.main.path(forResource: sound, ofType: type) { + do { + audioPlayer = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path)) + audioPlayer?.play() + } catch { + print("不能播放指定的音效文件。") + } + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Preview Content/Preview Assets.xcassets/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/sound-transitions.mp3 b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/sound-transitions.mp3 new file mode 100644 index 0000000..0d08ef7 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/FirstApp/sound-transitions.mp3 differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Info.plist b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Info.plist new file mode 100644 index 0000000..b354cc0 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Info.plist @@ -0,0 +1,31 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + First App + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + NSExtension + + NSExtensionPointIdentifier + com.apple.message-payload-provider + NSExtensionPrincipalClass + StickerBrowserViewController + + + diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/Contents.json new file mode 100644 index 0000000..8ddeeb6 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/Contents.json @@ -0,0 +1,32 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "grid-size" : "regular" + }, + "stickers" : [ + { + "filename" : "sticker-developer01.sticker" + }, + { + "filename" : "sticker-developer02.sticker" + }, + { + "filename" : "sticker-developer03.sticker" + }, + { + "filename" : "sticker-developer04.sticker" + }, + { + "filename" : "sticker-developer05.sticker" + }, + { + "filename" : "sticker-developer06.sticker" + }, + { + "filename" : "sticker-developer07.sticker" + } + ] +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer01.sticker/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer01.sticker/Contents.json new file mode 100644 index 0000000..d1b9181 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer01.sticker/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "filename" : "sticker-developer01.png" + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer01.sticker/sticker-developer01.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer01.sticker/sticker-developer01.png new file mode 100644 index 0000000..3b5677d Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer01.sticker/sticker-developer01.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer02.sticker/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer02.sticker/Contents.json new file mode 100644 index 0000000..0c800f4 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer02.sticker/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "filename" : "sticker-developer02.png" + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer02.sticker/sticker-developer02.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer02.sticker/sticker-developer02.png new file mode 100644 index 0000000..c6eee6b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer02.sticker/sticker-developer02.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer03.sticker/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer03.sticker/Contents.json new file mode 100644 index 0000000..a0ed682 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer03.sticker/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "filename" : "sticker-developer03.png" + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer03.sticker/sticker-developer03.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer03.sticker/sticker-developer03.png new file mode 100644 index 0000000..2b9dbde Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer03.sticker/sticker-developer03.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer04.sticker/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer04.sticker/Contents.json new file mode 100644 index 0000000..c717bb7 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer04.sticker/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "filename" : "sticker-developer04.png" + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer04.sticker/sticker-developer04.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer04.sticker/sticker-developer04.png new file mode 100644 index 0000000..c2ed925 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer04.sticker/sticker-developer04.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer05.sticker/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer05.sticker/Contents.json new file mode 100644 index 0000000..833c729 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer05.sticker/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "filename" : "sticker-developer05.png" + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer05.sticker/sticker-developer05.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer05.sticker/sticker-developer05.png new file mode 100644 index 0000000..8d56e3b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer05.sticker/sticker-developer05.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer06.sticker/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer06.sticker/Contents.json new file mode 100644 index 0000000..29fc025 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer06.sticker/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "filename" : "sticker-developer06.png" + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer06.sticker/sticker-developer06.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer06.sticker/sticker-developer06.png new file mode 100644 index 0000000..8cce95b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer06.sticker/sticker-developer06.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer07.sticker/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer07.sticker/Contents.json new file mode 100644 index 0000000..a37bef1 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer07.sticker/Contents.json @@ -0,0 +1,9 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "filename" : "sticker-developer07.png" + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer07.sticker/sticker-developer07.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer07.sticker/sticker-developer07.png new file mode 100644 index 0000000..fc58edd Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/Sticker Pack.stickerpack/sticker-developer07.sticker/sticker-developer07.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/1024x768.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/1024x768.png new file mode 100644 index 0000000..cd4c54e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/1024x768.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/27x20@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/27x20@2x.png new file mode 100644 index 0000000..f2a5ec8 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/27x20@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/27x20@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/27x20@3x.png new file mode 100644 index 0000000..1858477 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/27x20@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/29x29@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/29x29@2x.png new file mode 100644 index 0000000..e0102bc Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/29x29@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/32x24@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/32x24@2x.png new file mode 100644 index 0000000..76f32fe Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/32x24@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/32x24@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/32x24@3x.png new file mode 100644 index 0000000..dc1d0ff Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/32x24@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/60x45@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/60x45@2x.png new file mode 100644 index 0000000..f2780a3 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/60x45@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/60x45@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/60x45@3x.png new file mode 100644 index 0000000..d8d707e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/60x45@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/67x50@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/67x50@2x.png new file mode 100644 index 0000000..03d2241 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/67x50@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/74x55@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/74x55@2x.png new file mode 100644 index 0000000..d6abb31 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/74x55@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/Contents.json b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/Contents.json new file mode 100644 index 0000000..65ed2ee --- /dev/null +++ b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/Contents.json @@ -0,0 +1,91 @@ +{ + "images" : [ + { + "filename" : "icon-29@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-29@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "60x45@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x45" + }, + { + "filename" : "60x45@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x45" + }, + { + "filename" : "29x29@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "67x50@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "67x50" + }, + { + "filename" : "74x55@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "74x55" + }, + { + "filename" : "icon-1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "27x20@2x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "2x", + "size" : "27x20" + }, + { + "filename" : "27x20@3x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "3x", + "size" : "27x20" + }, + { + "filename" : "32x24@2x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "2x", + "size" : "32x24" + }, + { + "filename" : "32x24@3x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "3x", + "size" : "32x24" + }, + { + "filename" : "1024x768.png", + "idiom" : "ios-marketing", + "platform" : "ios", + "scale" : "1x", + "size" : "1024x768" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-1024.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-1024.png new file mode 100644 index 0000000..1b71e36 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-1024.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-29@2x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-29@2x.png new file mode 100644 index 0000000..95283f0 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-29@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-29@3x.png b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-29@3x.png new file mode 100644 index 0000000..81378ab Binary files /dev/null and b/第一章 我的第一个iOS应用程序/源代码/FirstApp/stickers/Stickers.xcassets/iMessage App Icon.stickersiconset/icon-29@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/Contents.json new file mode 100644 index 0000000..52ae2a6 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/Contents.json @@ -0,0 +1,116 @@ +{ + "images" : [ + { + "filename" : "icon-20@2x-ipad.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon-20@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "icon-29@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-29@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "icon-40@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon-40@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "icon-60@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "icon-60@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "icon-20-ipad.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "icon-20@2x-ipad-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon-29-ipad.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "icon-29@2x-ipad.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-40.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "icon-40@2x-1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon-76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "icon-76@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "icon-83.5@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "icon-1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-1024.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-1024.png new file mode 100644 index 0000000..1b71e36 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-1024.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20-ipad.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20-ipad.png new file mode 100644 index 0000000..fa1331e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@2x-ipad-1.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@2x-ipad-1.png new file mode 100644 index 0000000..7b3c9ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@2x-ipad-1.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@2x-ipad.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@2x-ipad.png new file mode 100644 index 0000000..7b3c9ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@2x-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@3x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@3x.png new file mode 100644 index 0000000..b468375 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-20@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29-ipad.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29-ipad.png new file mode 100644 index 0000000..94ae895 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@2x-ipad.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@2x-ipad.png new file mode 100644 index 0000000..95283f0 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@2x-ipad.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@2x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@2x.png new file mode 100644 index 0000000..95283f0 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@3x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@3x.png new file mode 100644 index 0000000..81378ab Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-29@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40.png new file mode 100644 index 0000000..7b3c9ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@2x-1.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@2x-1.png new file mode 100644 index 0000000..3024c64 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@2x-1.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@2x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@2x.png new file mode 100644 index 0000000..3024c64 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@3x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@3x.png new file mode 100644 index 0000000..df9c9bb Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-40@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-60@2x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-60@2x.png new file mode 100644 index 0000000..df9c9bb Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-60@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-60@3x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-60@3x.png new file mode 100644 index 0000000..7ed3283 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-60@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-76.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-76.png new file mode 100644 index 0000000..0c03058 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-76.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-76@2x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-76@2x.png new file mode 100644 index 0000000..e22af9e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-76@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-83.5@2x.png b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-83.5@2x.png new file mode 100644 index 0000000..31ec8e4 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/AppIcon/icon-83.5@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color01.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color01.colorset/Contents.json new file mode 100644 index 0000000..b1eb577 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color01.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x00", + "green" : "0x71", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.443", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color02.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color02.colorset/Contents.json new file mode 100644 index 0000000..25d7696 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color02.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x42", + "green" : "0x38", + "red" : "0xCE" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.259", + "green" : "0.220", + "red" : "0.808" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color03.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color03.colorset/Contents.json new file mode 100644 index 0000000..406580f --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color03.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD1", + "green" : "0xFF", + "red" : "0xA4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.820", + "green" : "1.000", + "red" : "0.643" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color04.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color04.colorset/Contents.json new file mode 100644 index 0000000..55f6aa2 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color04.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xB3", + "green" : "0xD3", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.702", + "green" : "0.827", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color05.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color05.colorset/Contents.json new file mode 100644 index 0000000..1f60e21 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color05.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xCE", + "green" : "0xBB", + "red" : "0xFA" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.808", + "green" : "0.733", + "red" : "0.980" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color06.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color06.colorset/Contents.json new file mode 100644 index 0000000..801f5ab --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color06.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x7D", + "green" : "0x0B", + "red" : "0xB5" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.490", + "green" : "0.043", + "red" : "0.710" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color07.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color07.colorset/Contents.json new file mode 100644 index 0000000..d1c1a7f --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color07.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xE9", + "green" : "0xF2", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.914", + "green" : "0.949", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color08.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color08.colorset/Contents.json new file mode 100644 index 0000000..a420c6c --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color08.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xD6", + "red" : "0xA1" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "0.839", + "red" : "0.631" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color09.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color09.colorset/Contents.json new file mode 100644 index 0000000..103891a --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color09.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xBD", + "green" : "0xD8", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.741", + "green" : "0.847", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color10.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color10.colorset/Contents.json new file mode 100644 index 0000000..6acb568 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color10.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x40", + "green" : "0xCD", + "red" : "0xF3" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.251", + "green" : "0.804", + "red" : "0.953" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color11.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color11.colorset/Contents.json new file mode 100644 index 0000000..01bdc08 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color11.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xD9", + "green" : "0xE4", + "red" : "0xFA" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.851", + "green" : "0.894", + "red" : "0.980" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color12.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color12.colorset/Contents.json new file mode 100644 index 0000000..523a296 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color12.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x00", + "green" : "0x28", + "red" : "0xA0" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.157", + "red" : "0.627" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color13.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color13.colorset/Contents.json new file mode 100644 index 0000000..f8ae6a8 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color13.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Colors/Color14.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color14.colorset/Contents.json new file mode 100644 index 0000000..dfc2e53 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Colors/Color14.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x6F", + "green" : "0x93", + "red" : "0xD4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.435", + "green" : "0.576", + "red" : "0.831" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/Data/CardData.txt b/第一章 我的第一个iOS应用程序/项目资源/Data/CardData.txt new file mode 100644 index 0000000..0fb72d1 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/Data/CardData.txt @@ -0,0 +1,42 @@ +Card(title: "SwiftUI", + headline: "如此美妙 不同凡响", + imageName: "developer-no1", + callToAction: "技术总监", + message: "态度决定一切,勤于思考,不断学习。", + gradientColors: [Color("Color01"), Color("Color02")]), + Card(title: "iOS 14", + headline: "从来没有如此梦幻的新面貌", + imageName: "developer-no2", + callToAction: "研发Leader", + message: "持续学习,不断进步,这不管是对女性工作者还是男性工作者,其实都是重要的。", + gradientColors: [Color("Color03"), Color("Color04")]), + Card(title: "Swift 5", + headline: "相信自己 不断前行", + imageName: "developer-no3", + callToAction: "首席架构师", + message: "架构分析,架构设计与实现,业务架构设计与实现,重构。", + gradientColors: [Color("Color05"), Color("Color06")]), + Card(title: "Catalyst", + headline: "Think Different", + imageName: "developer-no4", + callToAction: "高级程序员", + message: "我是主力干活者,有技术难题亲自攻克解决。", + gradientColors: [Color("Color07"), Color("Color08")]), + Card(title: "Playgrounds", + headline: "再一次 改变一切", + imageName: "developer-no5", + callToAction: "程序员", + message: "苹果改变世界的力量,牛顿通过苹果发现了万有引力,乔布斯通过苹果改变了世界。", + gradientColors: [Color("Color09"), Color("Color10")]), + Card(title: "Xcode 12", + headline: "最好的自己 最好的工具", + imageName: "developer-no6", + callToAction: "程序员", + message: "利用Xcode可以把你的想法变为现实。", + gradientColors: [Color("Color11"), Color("Color12")]), + Card(title: "Create ML", + headline: "Hello 未来", + imageName: "developer-no7", + callToAction: "产品测试员", + message: "信心,这是我作为一个女性从业者,从业以来最大的感受。希望女性程序员要自信起来,勇敢起来。", + gradientColors: [Color("Color13"), Color("Color14")]) \ No newline at end of file diff --git a/第一章 我的第一个iOS应用程序/项目资源/Sound/sound-transitions.mp3 b/第一章 我的第一个iOS应用程序/项目资源/Sound/sound-transitions.mp3 new file mode 100644 index 0000000..0d08ef7 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/Sound/sound-transitions.mp3 differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/1024x768.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/1024x768.png new file mode 100644 index 0000000..cd4c54e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/1024x768.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/27x20@2x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/27x20@2x.png new file mode 100644 index 0000000..f2a5ec8 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/27x20@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/27x20@3x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/27x20@3x.png new file mode 100644 index 0000000..1858477 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/27x20@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/29x29@2x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/29x29@2x.png new file mode 100644 index 0000000..e0102bc Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/29x29@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/32x24@2x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/32x24@2x.png new file mode 100644 index 0000000..76f32fe Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/32x24@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/32x24@3x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/32x24@3x.png new file mode 100644 index 0000000..dc1d0ff Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/32x24@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/60x45@2x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/60x45@2x.png new file mode 100644 index 0000000..f2780a3 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/60x45@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/60x45@3x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/60x45@3x.png new file mode 100644 index 0000000..d8d707e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/60x45@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/67x50@2x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/67x50@2x.png new file mode 100644 index 0000000..03d2241 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/67x50@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/74x55@2x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/74x55@2x.png new file mode 100644 index 0000000..d6abb31 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/74x55@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/Contents.json new file mode 100644 index 0000000..65ed2ee --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/Contents.json @@ -0,0 +1,91 @@ +{ + "images" : [ + { + "filename" : "icon-29@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-29@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "60x45@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x45" + }, + { + "filename" : "60x45@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x45" + }, + { + "filename" : "29x29@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "67x50@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "67x50" + }, + { + "filename" : "74x55@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "74x55" + }, + { + "filename" : "icon-1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "27x20@2x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "2x", + "size" : "27x20" + }, + { + "filename" : "27x20@3x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "3x", + "size" : "27x20" + }, + { + "filename" : "32x24@2x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "2x", + "size" : "32x24" + }, + { + "filename" : "32x24@3x.png", + "idiom" : "universal", + "platform" : "ios", + "scale" : "3x", + "size" : "32x24" + }, + { + "filename" : "1024x768.png", + "idiom" : "ios-marketing", + "platform" : "ios", + "scale" : "1x", + "size" : "1024x768" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-1024.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-1024.png new file mode 100644 index 0000000..1b71e36 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-1024.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-29@2x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-29@2x.png new file mode 100644 index 0000000..95283f0 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-29@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-29@3x.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-29@3x.png new file mode 100644 index 0000000..81378ab Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/icon-29@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/源文件.sketch b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/源文件.sketch new file mode 100644 index 0000000..80784ba Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Icon/源文件.sketch differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer01.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer01.png new file mode 100644 index 0000000..3b5677d Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer01.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer02.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer02.png new file mode 100644 index 0000000..c6eee6b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer02.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer03.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer03.png new file mode 100644 index 0000000..2b9dbde Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer03.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer04.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer04.png new file mode 100644 index 0000000..c2ed925 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer04.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer05.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer05.png new file mode 100644 index 0000000..8d56e3b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer05.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer06.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer06.png new file mode 100644 index 0000000..8cce95b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer06.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer07.png b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer07.png new file mode 100644 index 0000000..fc58edd Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/iMessage-Stickers/sticker-developer07.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1.png new file mode 100644 index 0000000..0699f1e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1@2x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1@2x.png new file mode 100644 index 0000000..7eeda6b Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1@3x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1@3x.png new file mode 100644 index 0000000..f1b375f Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no1@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2.png new file mode 100644 index 0000000..bf6d3c8 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2@2x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2@2x.png new file mode 100644 index 0000000..f92e8f1 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2@3x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2@3x.png new file mode 100644 index 0000000..ab2258e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no2@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3.png new file mode 100644 index 0000000..6691669 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3@2x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3@2x.png new file mode 100644 index 0000000..c80c713 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3@3x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3@3x.png new file mode 100644 index 0000000..4e970d8 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no3@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4.png new file mode 100644 index 0000000..440bf6e Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4@2x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4@2x.png new file mode 100644 index 0000000..cc5cab1 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4@3x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4@3x.png new file mode 100644 index 0000000..c956422 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no4@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5.png new file mode 100644 index 0000000..138b9ce Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5@2x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5@2x.png new file mode 100644 index 0000000..0d9e54c Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5@3x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5@3x.png new file mode 100644 index 0000000..bd913ef Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no5@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6.png new file mode 100644 index 0000000..6df1b83 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6@2x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6@2x.png new file mode 100644 index 0000000..a994d40 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6@3x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6@3x.png new file mode 100644 index 0000000..3b18004 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no6@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7.png new file mode 100644 index 0000000..fae10b5 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7@2x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7@2x.png new file mode 100644 index 0000000..4d61235 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7@2x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7@3x.png b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7@3x.png new file mode 100644 index 0000000..0533c85 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/developer-no7@3x.png differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/人物/背景渐变色.sketch b/第一章 我的第一个iOS应用程序/项目资源/人物/背景渐变色.sketch new file mode 100644 index 0000000..1e72e15 Binary files /dev/null and b/第一章 我的第一个iOS应用程序/项目资源/人物/背景渐变色.sketch differ diff --git a/第一章 我的第一个iOS应用程序/项目资源/启动画面/launch-screen-color.colorset/Contents.json b/第一章 我的第一个iOS应用程序/项目资源/启动画面/launch-screen-color.colorset/Contents.json new file mode 100644 index 0000000..41aedb2 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/启动画面/launch-screen-color.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.578", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.000", + "green" : "0.578", + "red" : "1.000" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/第一章 我的第一个iOS应用程序/项目资源/启动画面/launch-screen-image.svg b/第一章 我的第一个iOS应用程序/项目资源/启动画面/launch-screen-image.svg new file mode 100644 index 0000000..1bc2069 --- /dev/null +++ b/第一章 我的第一个iOS应用程序/项目资源/启动画面/launch-screen-image.svg @@ -0,0 +1,10 @@ + + + launch-screen-image + + + + + + + \ No newline at end of file