From 193d43004e489e804032b4e2ef0418d8b2744e05 Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sun, 9 Apr 2023 19:52:41 +0200 Subject: [PATCH 1/7] Defined the image for the AppIcon asset. --- .../AppIcon.appiconset/1024x1024@1x.png | Bin 0 -> 38354 bytes .../AppIcon.appiconset/Contents.json | 1 + 2 files changed, 1 insertion(+) create mode 100644 Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/1024x1024@1x.png diff --git a/Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/1024x1024@1x.png b/Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..11a64cd13560ad093580d9449a9419794b7dee71 GIT binary patch literal 38354 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

Hn|2?+j~dYubholp+YCARxsCO103WMnQU0s&qx9 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 Date: Sun, 9 Apr 2023 19:54:23 +0200 Subject: [PATCH 2/7] Defined the background color and the image asset for the Launch screen. --- .../Assets.xcassets/Launch/Contents.json | 6 +++ .../Contents.json | 38 +++++++++++++++++++ .../Launch/LaunchImage.imageset/Contents.json | 16 ++++++++ .../location.fill.viewfinder.svg | 13 +++++++ 4 files changed, 73 insertions(+) create mode 100644 Apps/Locations/Resources/Assets.xcassets/Launch/Contents.json create mode 100644 Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json create mode 100644 Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/Contents.json create mode 100644 Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/location.fill.viewfinder.svg diff --git a/Apps/Locations/Resources/Assets.xcassets/Launch/Contents.json b/Apps/Locations/Resources/Assets.xcassets/Launch/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Apps/Locations/Resources/Assets.xcassets/Launch/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json new file mode 100644 index 0000000..02c56bc --- /dev/null +++ b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "255", + "green" : "255", + "red" : "255" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0", + "green" : "0", + "red" : "0" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/Contents.json b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..3b5c3d5 --- /dev/null +++ b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "location.fill.viewfinder.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "original" + } +} diff --git a/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/location.fill.viewfinder.svg b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/location.fill.viewfinder.svg new file mode 100644 index 0000000..4288747 --- /dev/null +++ b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchImage.imageset/location.fill.viewfinder.svg @@ -0,0 +1,13 @@ + + + location.fill.viewfinder + + + + + + + + + + \ No newline at end of file -- 2.47.1 From c1f5c4bbc5acab31ec5dce974d007926858c42ab Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sun, 9 Apr 2023 19:54:58 +0200 Subject: [PATCH 3/7] Implemented the LaunchScreen screen in the LaunchScreen storyboard. --- .../Base.lproj/LaunchScreen.storyboard | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/Apps/Locations/Resources/Base.lproj/LaunchScreen.storyboard b/Apps/Locations/Resources/Base.lproj/LaunchScreen.storyboard index 865e932..9020016 100644 --- a/Apps/Locations/Resources/Base.lproj/LaunchScreen.storyboard +++ b/Apps/Locations/Resources/Base.lproj/LaunchScreen.storyboard @@ -1,7 +1,10 @@ - - + + + - + + + @@ -11,15 +14,34 @@ - + - + + + + + + + + + + + + + + - + + + + + + + -- 2.47.1 From 9f425a24836119dddb7fc3a8d8ef85dfe022b1a3 Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sun, 9 Apr 2023 19:55:59 +0200 Subject: [PATCH 4/7] Defined the LaunchScreen storyboard as the launch screen in the Info.plist file of the Locations target. --- DeepLinking.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DeepLinking.xcodeproj/project.pbxproj b/DeepLinking.xcodeproj/project.pbxproj index bcde49f..9121383 100644 --- a/DeepLinking.xcodeproj/project.pbxproj +++ b/DeepLinking.xcodeproj/project.pbxproj @@ -515,7 +515,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Locations; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; INFOPLIST_KEY_UIMainStoryboardFile = Main; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; @@ -596,7 +596,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Locations; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; INFOPLIST_KEY_UIMainStoryboardFile = Main; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; -- 2.47.1 From ec45fe0c333c53402cfb57c84e42263526df311c Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sun, 9 Apr 2023 19:57:51 +0200 Subject: [PATCH 5/7] Fixed the product bundle identifier of the Locations target. --- DeepLinking.xcodeproj/project.pbxproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/DeepLinking.xcodeproj/project.pbxproj b/DeepLinking.xcodeproj/project.pbxproj index 9121383..4d9ccd2 100644 --- a/DeepLinking.xcodeproj/project.pbxproj +++ b/DeepLinking.xcodeproj/project.pbxproj @@ -461,6 +461,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -528,7 +529,7 @@ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.Locations"; + PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.locations"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -548,6 +549,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -608,7 +610,7 @@ MARKETING_VERSION = 1.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.Locations"; + PRODUCT_BUNDLE_IDENTIFIER = "com.rock-n-code.app.locations"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; -- 2.47.1 From cd0ad7fe27dce26f890709e3d565f41adce88a5c Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sun, 9 Apr 2023 20:15:55 +0200 Subject: [PATCH 6/7] Removed the Main storyboard from the Locations target. --- .../Contents.json | 18 -------------- .../Resources/Base.lproj/Main.storyboard | 24 ------------------- Apps/Locations/Resources/Info.plist | 2 -- DeepLinking.xcodeproj/project.pbxproj | 14 ----------- 4 files changed, 58 deletions(-) delete mode 100644 Apps/Locations/Resources/Base.lproj/Main.storyboard diff --git a/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json index 02c56bc..60650a6 100644 --- a/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json +++ b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json @@ -11,24 +11,6 @@ } }, "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0", - "green" : "0", - "red" : "0" - } - }, - "idiom" : "universal" } ], "info" : { diff --git a/Apps/Locations/Resources/Base.lproj/Main.storyboard b/Apps/Locations/Resources/Base.lproj/Main.storyboard deleted file mode 100644 index 25a7638..0000000 --- a/Apps/Locations/Resources/Base.lproj/Main.storyboard +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Apps/Locations/Resources/Info.plist b/Apps/Locations/Resources/Info.plist index dd3c9af..0eb786d 100644 --- a/Apps/Locations/Resources/Info.plist +++ b/Apps/Locations/Resources/Info.plist @@ -15,8 +15,6 @@ Default Configuration UISceneDelegateClassName $(PRODUCT_MODULE_NAME).SceneDelegate - UISceneStoryboardFile - Main diff --git a/DeepLinking.xcodeproj/project.pbxproj b/DeepLinking.xcodeproj/project.pbxproj index 4d9ccd2..b324f86 100644 --- a/DeepLinking.xcodeproj/project.pbxproj +++ b/DeepLinking.xcodeproj/project.pbxproj @@ -10,7 +10,6 @@ 46EB331B29E1CE04001D5EAF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46EB331A29E1CE04001D5EAF /* AppDelegate.swift */; }; 46EB331D29E1CE04001D5EAF /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46EB331C29E1CE04001D5EAF /* SceneDelegate.swift */; }; 46EB331F29E1CE04001D5EAF /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46EB331E29E1CE04001D5EAF /* ViewController.swift */; }; - 46EB332229E1CE04001D5EAF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 46EB332029E1CE04001D5EAF /* Main.storyboard */; }; 46EB332529E1CE04001D5EAF /* Locations.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 46EB332329E1CE04001D5EAF /* Locations.xcdatamodeld */; }; 46EB332729E1CE05001D5EAF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 46EB332629E1CE05001D5EAF /* Assets.xcassets */; }; 46EB332A29E1CE05001D5EAF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 46EB332829E1CE05001D5EAF /* LaunchScreen.storyboard */; }; @@ -118,7 +117,6 @@ 46EB331A29E1CE04001D5EAF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 46EB331C29E1CE04001D5EAF /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; 46EB331E29E1CE04001D5EAF /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 46EB332129E1CE04001D5EAF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 46EB332429E1CE04001D5EAF /* Locations.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Locations.xcdatamodel; sourceTree = ""; }; 46EB332629E1CE05001D5EAF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 46EB332929E1CE05001D5EAF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; @@ -215,7 +213,6 @@ children = ( 46EB332629E1CE05001D5EAF /* Assets.xcassets */, 46EB332B29E1CE05001D5EAF /* Info.plist */, - 46EB332029E1CE04001D5EAF /* Main.storyboard */, 46EB332829E1CE05001D5EAF /* LaunchScreen.storyboard */, 46EB332329E1CE04001D5EAF /* Locations.xcdatamodeld */, ); @@ -403,7 +400,6 @@ files = ( 46EB332A29E1CE05001D5EAF /* LaunchScreen.storyboard in Resources */, 46EB332729E1CE05001D5EAF /* Assets.xcassets in Resources */, - 46EB332229E1CE04001D5EAF /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -424,14 +420,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ - 46EB332029E1CE04001D5EAF /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 46EB332129E1CE04001D5EAF /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; 46EB332829E1CE05001D5EAF /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( @@ -517,7 +505,6 @@ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; - INFOPLIST_KEY_UIMainStoryboardFile = Main; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; IPHONEOS_DEPLOYMENT_TARGET = 16.0; @@ -599,7 +586,6 @@ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; - INFOPLIST_KEY_UIMainStoryboardFile = Main; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; IPHONEOS_DEPLOYMENT_TARGET = 16.0; -- 2.47.1 From af452da5f4e4931478a12f7942a7ec9a4ee3258a Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Sun, 9 Apr 2023 20:19:17 +0200 Subject: [PATCH 7/7] Implemented the "scene(_: willConnectTo: options: )" function in the SceneDelegate to manually initialise the ViewController view controller. --- Apps/Locations/Sources/AppDelegate.swift | 18 +++++++--- Apps/Locations/Sources/SceneDelegate.swift | 40 +++++++++++++-------- Apps/Locations/Sources/ViewController.swift | 7 ++-- 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/Apps/Locations/Sources/AppDelegate.swift b/Apps/Locations/Sources/AppDelegate.swift index c144996..d3dc549 100644 --- a/Apps/Locations/Sources/AppDelegate.swift +++ b/Apps/Locations/Sources/AppDelegate.swift @@ -12,22 +12,30 @@ import CoreData @main class AppDelegate: UIResponder, UIApplicationDelegate { - - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { // Override point for customization after application launch. return true } // MARK: UISceneSession Lifecycle - func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + func application( + _ application: UIApplication, + configurationForConnecting connectingSceneSession: UISceneSession, + options: UIScene.ConnectionOptions + ) -> UISceneConfiguration { // Called when a new scene session is being created. // Use this method to select a configuration to create the new scene with. return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) } - func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + func application( + _ application: UIApplication, + didDiscardSceneSessions sceneSessions: Set + ) { // Called when the user discards a scene session. // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. // Use this method to release any resources that were specific to the discarded scenes, as they will not return. diff --git a/Apps/Locations/Sources/SceneDelegate.swift b/Apps/Locations/Sources/SceneDelegate.swift index d108611..b94fe63 100644 --- a/Apps/Locations/Sources/SceneDelegate.swift +++ b/Apps/Locations/Sources/SceneDelegate.swift @@ -9,48 +9,60 @@ import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { - + var window: UIWindow? - - - func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + + func scene( + _ scene: UIScene, + willConnectTo session: UISceneSession, + options connectionOptions: UIScene.ConnectionOptions + ) { // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). - guard let _ = (scene as? UIWindowScene) else { return } + guard let windowScene = scene as? UIWindowScene else { + return + } + + window = { + let window = UIWindow(windowScene: windowScene) + + window.rootViewController = ViewController() + window.makeKeyAndVisible() + + return window + }() } - + func sceneDidDisconnect(_ scene: UIScene) { // Called as the scene is being released by the system. // This occurs shortly after the scene enters the background, or when its session is discarded. // Release any resources associated with this scene that can be re-created the next time the scene connects. // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). } - + func sceneDidBecomeActive(_ scene: UIScene) { // Called when the scene has moved from an inactive state to an active state. // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. } - + func sceneWillResignActive(_ scene: UIScene) { // Called when the scene will move from an active state to an inactive state. // This may occur due to temporary interruptions (ex. an incoming phone call). } - + func sceneWillEnterForeground(_ scene: UIScene) { // Called as the scene transitions from the background to the foreground. // Use this method to undo the changes made on entering the background. } - + func sceneDidEnterBackground(_ scene: UIScene) { // Called as the scene transitions from the foreground to the background. // Use this method to save data, release shared resources, and store enough scene-specific state information // to restore the scene back to its current state. - + // Save changes in the application's managed object context when the application transitions to the background. (UIApplication.shared.delegate as? AppDelegate)?.saveContext() } - - + } - diff --git a/Apps/Locations/Sources/ViewController.swift b/Apps/Locations/Sources/ViewController.swift index ea2b4e7..8c3be97 100644 --- a/Apps/Locations/Sources/ViewController.swift +++ b/Apps/Locations/Sources/ViewController.swift @@ -12,9 +12,8 @@ class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - // Do any additional setup after loading the view. + + view.backgroundColor = .red } - - + } - -- 2.47.1