Apple Fitness workout fixer + Strava uploader

Initial Commit

mbenz12 43ec3535

+450
+342
WorkoutEditor.xcodeproj/project.pbxproj
··· 1 + // !$*UTF8*$! 2 + { 3 + archiveVersion = 1; 4 + classes = { 5 + }; 6 + objectVersion = 56; 7 + objects = { 8 + 9 + /* Begin PBXBuildFile section */ 10 + 06E7DFAC2B3608DD0025260F /* WorkoutEditorApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06E7DFAB2B3608DD0025260F /* WorkoutEditorApp.swift */; }; 11 + 06E7DFAE2B3608DD0025260F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06E7DFAD2B3608DD0025260F /* ContentView.swift */; }; 12 + 06E7DFB02B3608E00025260F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 06E7DFAF2B3608E00025260F /* Assets.xcassets */; }; 13 + 06E7DFB32B3608E00025260F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 06E7DFB22B3608E00025260F /* Preview Assets.xcassets */; }; 14 + /* End PBXBuildFile section */ 15 + 16 + /* Begin PBXFileReference section */ 17 + 06E7DFA82B3608DD0025260F /* WorkoutEditor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WorkoutEditor.app; sourceTree = BUILT_PRODUCTS_DIR; }; 18 + 06E7DFAB2B3608DD0025260F /* WorkoutEditorApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WorkoutEditorApp.swift; sourceTree = "<group>"; }; 19 + 06E7DFAD2B3608DD0025260F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; }; 20 + 06E7DFAF2B3608E00025260F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 21 + 06E7DFB22B3608E00025260F /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; 22 + /* End PBXFileReference section */ 23 + 24 + /* Begin PBXFrameworksBuildPhase section */ 25 + 06E7DFA52B3608DD0025260F /* Frameworks */ = { 26 + isa = PBXFrameworksBuildPhase; 27 + buildActionMask = 2147483647; 28 + files = ( 29 + ); 30 + runOnlyForDeploymentPostprocessing = 0; 31 + }; 32 + /* End PBXFrameworksBuildPhase section */ 33 + 34 + /* Begin PBXGroup section */ 35 + 06E7DF9F2B3608DD0025260F = { 36 + isa = PBXGroup; 37 + children = ( 38 + 06E7DFAA2B3608DD0025260F /* WorkoutEditor */, 39 + 06E7DFA92B3608DD0025260F /* Products */, 40 + ); 41 + sourceTree = "<group>"; 42 + }; 43 + 06E7DFA92B3608DD0025260F /* Products */ = { 44 + isa = PBXGroup; 45 + children = ( 46 + 06E7DFA82B3608DD0025260F /* WorkoutEditor.app */, 47 + ); 48 + name = Products; 49 + sourceTree = "<group>"; 50 + }; 51 + 06E7DFAA2B3608DD0025260F /* WorkoutEditor */ = { 52 + isa = PBXGroup; 53 + children = ( 54 + 06E7DFAB2B3608DD0025260F /* WorkoutEditorApp.swift */, 55 + 06E7DFAD2B3608DD0025260F /* ContentView.swift */, 56 + 06E7DFAF2B3608E00025260F /* Assets.xcassets */, 57 + 06E7DFB12B3608E00025260F /* Preview Content */, 58 + ); 59 + path = WorkoutEditor; 60 + sourceTree = "<group>"; 61 + }; 62 + 06E7DFB12B3608E00025260F /* Preview Content */ = { 63 + isa = PBXGroup; 64 + children = ( 65 + 06E7DFB22B3608E00025260F /* Preview Assets.xcassets */, 66 + ); 67 + path = "Preview Content"; 68 + sourceTree = "<group>"; 69 + }; 70 + /* End PBXGroup section */ 71 + 72 + /* Begin PBXNativeTarget section */ 73 + 06E7DFA72B3608DD0025260F /* WorkoutEditor */ = { 74 + isa = PBXNativeTarget; 75 + buildConfigurationList = 06E7DFB62B3608E00025260F /* Build configuration list for PBXNativeTarget "WorkoutEditor" */; 76 + buildPhases = ( 77 + 06E7DFA42B3608DD0025260F /* Sources */, 78 + 06E7DFA52B3608DD0025260F /* Frameworks */, 79 + 06E7DFA62B3608DD0025260F /* Resources */, 80 + ); 81 + buildRules = ( 82 + ); 83 + dependencies = ( 84 + ); 85 + name = WorkoutEditor; 86 + productName = WorkoutEditor; 87 + productReference = 06E7DFA82B3608DD0025260F /* WorkoutEditor.app */; 88 + productType = "com.apple.product-type.application"; 89 + }; 90 + /* End PBXNativeTarget section */ 91 + 92 + /* Begin PBXProject section */ 93 + 06E7DFA02B3608DD0025260F /* Project object */ = { 94 + isa = PBXProject; 95 + attributes = { 96 + BuildIndependentTargetsInParallel = 1; 97 + LastSwiftUpdateCheck = 1400; 98 + LastUpgradeCheck = 1400; 99 + TargetAttributes = { 100 + 06E7DFA72B3608DD0025260F = { 101 + CreatedOnToolsVersion = 14.0.1; 102 + }; 103 + }; 104 + }; 105 + buildConfigurationList = 06E7DFA32B3608DD0025260F /* Build configuration list for PBXProject "WorkoutEditor" */; 106 + compatibilityVersion = "Xcode 14.0"; 107 + developmentRegion = en; 108 + hasScannedForEncodings = 0; 109 + knownRegions = ( 110 + en, 111 + Base, 112 + ); 113 + mainGroup = 06E7DF9F2B3608DD0025260F; 114 + productRefGroup = 06E7DFA92B3608DD0025260F /* Products */; 115 + projectDirPath = ""; 116 + projectRoot = ""; 117 + targets = ( 118 + 06E7DFA72B3608DD0025260F /* WorkoutEditor */, 119 + ); 120 + }; 121 + /* End PBXProject section */ 122 + 123 + /* Begin PBXResourcesBuildPhase section */ 124 + 06E7DFA62B3608DD0025260F /* Resources */ = { 125 + isa = PBXResourcesBuildPhase; 126 + buildActionMask = 2147483647; 127 + files = ( 128 + 06E7DFB32B3608E00025260F /* Preview Assets.xcassets in Resources */, 129 + 06E7DFB02B3608E00025260F /* Assets.xcassets in Resources */, 130 + ); 131 + runOnlyForDeploymentPostprocessing = 0; 132 + }; 133 + /* End PBXResourcesBuildPhase section */ 134 + 135 + /* Begin PBXSourcesBuildPhase section */ 136 + 06E7DFA42B3608DD0025260F /* Sources */ = { 137 + isa = PBXSourcesBuildPhase; 138 + buildActionMask = 2147483647; 139 + files = ( 140 + 06E7DFAE2B3608DD0025260F /* ContentView.swift in Sources */, 141 + 06E7DFAC2B3608DD0025260F /* WorkoutEditorApp.swift in Sources */, 142 + ); 143 + runOnlyForDeploymentPostprocessing = 0; 144 + }; 145 + /* End PBXSourcesBuildPhase section */ 146 + 147 + /* Begin XCBuildConfiguration section */ 148 + 06E7DFB42B3608E00025260F /* Debug */ = { 149 + isa = XCBuildConfiguration; 150 + buildSettings = { 151 + ALWAYS_SEARCH_USER_PATHS = NO; 152 + CLANG_ANALYZER_NONNULL = YES; 153 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 154 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 155 + CLANG_ENABLE_MODULES = YES; 156 + CLANG_ENABLE_OBJC_ARC = YES; 157 + CLANG_ENABLE_OBJC_WEAK = YES; 158 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 159 + CLANG_WARN_BOOL_CONVERSION = YES; 160 + CLANG_WARN_COMMA = YES; 161 + CLANG_WARN_CONSTANT_CONVERSION = YES; 162 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 163 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 164 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 165 + CLANG_WARN_EMPTY_BODY = YES; 166 + CLANG_WARN_ENUM_CONVERSION = YES; 167 + CLANG_WARN_INFINITE_RECURSION = YES; 168 + CLANG_WARN_INT_CONVERSION = YES; 169 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 170 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 171 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 172 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 173 + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 174 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 175 + CLANG_WARN_STRICT_PROTOTYPES = YES; 176 + CLANG_WARN_SUSPICIOUS_MOVE = YES; 177 + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 178 + CLANG_WARN_UNREACHABLE_CODE = YES; 179 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 180 + COPY_PHASE_STRIP = NO; 181 + DEBUG_INFORMATION_FORMAT = dwarf; 182 + ENABLE_STRICT_OBJC_MSGSEND = YES; 183 + ENABLE_TESTABILITY = YES; 184 + GCC_C_LANGUAGE_STANDARD = gnu11; 185 + GCC_DYNAMIC_NO_PIC = NO; 186 + GCC_NO_COMMON_BLOCKS = YES; 187 + GCC_OPTIMIZATION_LEVEL = 0; 188 + GCC_PREPROCESSOR_DEFINITIONS = ( 189 + "DEBUG=1", 190 + "$(inherited)", 191 + ); 192 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 193 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 194 + GCC_WARN_UNDECLARED_SELECTOR = YES; 195 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 196 + GCC_WARN_UNUSED_FUNCTION = YES; 197 + GCC_WARN_UNUSED_VARIABLE = YES; 198 + IPHONEOS_DEPLOYMENT_TARGET = 16.0; 199 + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 200 + MTL_FAST_MATH = YES; 201 + ONLY_ACTIVE_ARCH = YES; 202 + SDKROOT = iphoneos; 203 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 204 + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 205 + }; 206 + name = Debug; 207 + }; 208 + 06E7DFB52B3608E00025260F /* Release */ = { 209 + isa = XCBuildConfiguration; 210 + buildSettings = { 211 + ALWAYS_SEARCH_USER_PATHS = NO; 212 + CLANG_ANALYZER_NONNULL = YES; 213 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 214 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 215 + CLANG_ENABLE_MODULES = YES; 216 + CLANG_ENABLE_OBJC_ARC = YES; 217 + CLANG_ENABLE_OBJC_WEAK = YES; 218 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 219 + CLANG_WARN_BOOL_CONVERSION = YES; 220 + CLANG_WARN_COMMA = YES; 221 + CLANG_WARN_CONSTANT_CONVERSION = YES; 222 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 223 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 224 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 225 + CLANG_WARN_EMPTY_BODY = YES; 226 + CLANG_WARN_ENUM_CONVERSION = YES; 227 + CLANG_WARN_INFINITE_RECURSION = YES; 228 + CLANG_WARN_INT_CONVERSION = YES; 229 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 230 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 231 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 232 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 233 + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 234 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 235 + CLANG_WARN_STRICT_PROTOTYPES = YES; 236 + CLANG_WARN_SUSPICIOUS_MOVE = YES; 237 + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 238 + CLANG_WARN_UNREACHABLE_CODE = YES; 239 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 240 + COPY_PHASE_STRIP = NO; 241 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 242 + ENABLE_NS_ASSERTIONS = NO; 243 + ENABLE_STRICT_OBJC_MSGSEND = YES; 244 + GCC_C_LANGUAGE_STANDARD = gnu11; 245 + GCC_NO_COMMON_BLOCKS = YES; 246 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 247 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 248 + GCC_WARN_UNDECLARED_SELECTOR = YES; 249 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 250 + GCC_WARN_UNUSED_FUNCTION = YES; 251 + GCC_WARN_UNUSED_VARIABLE = YES; 252 + IPHONEOS_DEPLOYMENT_TARGET = 16.0; 253 + MTL_ENABLE_DEBUG_INFO = NO; 254 + MTL_FAST_MATH = YES; 255 + SDKROOT = iphoneos; 256 + SWIFT_COMPILATION_MODE = wholemodule; 257 + SWIFT_OPTIMIZATION_LEVEL = "-O"; 258 + VALIDATE_PRODUCT = YES; 259 + }; 260 + name = Release; 261 + }; 262 + 06E7DFB72B3608E00025260F /* Debug */ = { 263 + isa = XCBuildConfiguration; 264 + buildSettings = { 265 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 266 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 267 + CODE_SIGN_STYLE = Automatic; 268 + CURRENT_PROJECT_VERSION = 1; 269 + DEVELOPMENT_ASSET_PATHS = "\"WorkoutEditor/Preview Content\""; 270 + ENABLE_PREVIEWS = YES; 271 + GENERATE_INFOPLIST_FILE = YES; 272 + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 273 + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 274 + INFOPLIST_KEY_UILaunchScreen_Generation = YES; 275 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 276 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 277 + LD_RUNPATH_SEARCH_PATHS = ( 278 + "$(inherited)", 279 + "@executable_path/Frameworks", 280 + ); 281 + MARKETING_VERSION = 1.0; 282 + PRODUCT_BUNDLE_IDENTIFIER = example.com.WorkoutEditor; 283 + PRODUCT_NAME = "$(TARGET_NAME)"; 284 + SWIFT_EMIT_LOC_STRINGS = YES; 285 + SWIFT_VERSION = 5.0; 286 + TARGETED_DEVICE_FAMILY = "1,2"; 287 + }; 288 + name = Debug; 289 + }; 290 + 06E7DFB82B3608E00025260F /* Release */ = { 291 + isa = XCBuildConfiguration; 292 + buildSettings = { 293 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 294 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 295 + CODE_SIGN_STYLE = Automatic; 296 + CURRENT_PROJECT_VERSION = 1; 297 + DEVELOPMENT_ASSET_PATHS = "\"WorkoutEditor/Preview Content\""; 298 + ENABLE_PREVIEWS = YES; 299 + GENERATE_INFOPLIST_FILE = YES; 300 + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; 301 + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; 302 + INFOPLIST_KEY_UILaunchScreen_Generation = YES; 303 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 304 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 305 + LD_RUNPATH_SEARCH_PATHS = ( 306 + "$(inherited)", 307 + "@executable_path/Frameworks", 308 + ); 309 + MARKETING_VERSION = 1.0; 310 + PRODUCT_BUNDLE_IDENTIFIER = example.com.WorkoutEditor; 311 + PRODUCT_NAME = "$(TARGET_NAME)"; 312 + SWIFT_EMIT_LOC_STRINGS = YES; 313 + SWIFT_VERSION = 5.0; 314 + TARGETED_DEVICE_FAMILY = "1,2"; 315 + }; 316 + name = Release; 317 + }; 318 + /* End XCBuildConfiguration section */ 319 + 320 + /* Begin XCConfigurationList section */ 321 + 06E7DFA32B3608DD0025260F /* Build configuration list for PBXProject "WorkoutEditor" */ = { 322 + isa = XCConfigurationList; 323 + buildConfigurations = ( 324 + 06E7DFB42B3608E00025260F /* Debug */, 325 + 06E7DFB52B3608E00025260F /* Release */, 326 + ); 327 + defaultConfigurationIsVisible = 0; 328 + defaultConfigurationName = Release; 329 + }; 330 + 06E7DFB62B3608E00025260F /* Build configuration list for PBXNativeTarget "WorkoutEditor" */ = { 331 + isa = XCConfigurationList; 332 + buildConfigurations = ( 333 + 06E7DFB72B3608E00025260F /* Debug */, 334 + 06E7DFB82B3608E00025260F /* Release */, 335 + ); 336 + defaultConfigurationIsVisible = 0; 337 + defaultConfigurationName = Release; 338 + }; 339 + /* End XCConfigurationList section */ 340 + }; 341 + rootObject = 06E7DFA02B3608DD0025260F /* Project object */; 342 + }
+7
WorkoutEditor.xcodeproj/project.xcworkspace/contents.xcworkspacedata
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <Workspace 3 + version = "1.0"> 4 + <FileRef 5 + location = "self:"> 6 + </FileRef> 7 + </Workspace>
+8
WorkoutEditor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 + <plist version="1.0"> 4 + <dict> 5 + <key>IDEDidComputeMac32BitWarning</key> 6 + <true/> 7 + </dict> 8 + </plist>
+14
WorkoutEditor.xcodeproj/xcuserdata/lynx1.xcuserdatad/xcschemes/xcschememanagement.plist
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 + <plist version="1.0"> 4 + <dict> 5 + <key>SchemeUserState</key> 6 + <dict> 7 + <key>WorkoutEditor.xcscheme_^#shared#^_</key> 8 + <dict> 9 + <key>orderHint</key> 10 + <integer>0</integer> 11 + </dict> 12 + </dict> 13 + </dict> 14 + </plist>
+11
WorkoutEditor/Assets.xcassets/AccentColor.colorset/Contents.json
··· 1 + { 2 + "colors" : [ 3 + { 4 + "idiom" : "universal" 5 + } 6 + ], 7 + "info" : { 8 + "author" : "xcode", 9 + "version" : 1 10 + } 11 + }
+13
WorkoutEditor/Assets.xcassets/AppIcon.appiconset/Contents.json
··· 1 + { 2 + "images" : [ 3 + { 4 + "idiom" : "universal", 5 + "platform" : "ios", 6 + "size" : "1024x1024" 7 + } 8 + ], 9 + "info" : { 10 + "author" : "xcode", 11 + "version" : 1 12 + } 13 + }
+6
WorkoutEditor/Assets.xcassets/Contents.json
··· 1 + { 2 + "info" : { 3 + "author" : "xcode", 4 + "version" : 1 5 + } 6 + }
+26
WorkoutEditor/ContentView.swift
··· 1 + // 2 + // ContentView.swift 3 + // WorkoutEditor 4 + // 5 + // Created by Vladyslav on 22.12.2023. 6 + // 7 + 8 + import SwiftUI 9 + 10 + struct ContentView: View { 11 + var body: some View { 12 + VStack { 13 + Image(systemName: "globe") 14 + .imageScale(.large) 15 + .foregroundColor(.accentColor) 16 + Text("Hello, world!") 17 + } 18 + .padding() 19 + } 20 + } 21 + 22 + struct ContentView_Previews: PreviewProvider { 23 + static var previews: some View { 24 + ContentView() 25 + } 26 + }
+6
WorkoutEditor/Preview Content/Preview Assets.xcassets/Contents.json
··· 1 + { 2 + "info" : { 3 + "author" : "xcode", 4 + "version" : 1 5 + } 6 + }
+17
WorkoutEditor/WorkoutEditorApp.swift
··· 1 + // 2 + // WorkoutEditorApp.swift 3 + // WorkoutEditor 4 + // 5 + // Created by Vladyslav on 22.12.2023. 6 + // 7 + 8 + import SwiftUI 9 + 10 + @main 11 + struct WorkoutEditorApp: App { 12 + var body: some Scene { 13 + WindowGroup { 14 + ContentView() 15 + } 16 + } 17 + }