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 0000000..11a64cd Binary files /dev/null and b/Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/1024x1024@1x.png differ diff --git a/Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json index 13613e3..f451e10 100644 --- a/Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Apps/Locations/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,6 +1,7 @@ { "images" : [ { + "filename" : "1024x1024@1x.png", "idiom" : "universal", "platform" : "ios", "size" : "1024x1024" 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..60650a6 --- /dev/null +++ b/Apps/Locations/Resources/Assets.xcassets/Launch/LaunchBackgroundColor.colorset/Contents.json @@ -0,0 +1,20 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "255", + "green" : "255", + "red" : "255" + } + }, + "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 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 @@ - + - + + + + + + + + + + + + + + - + + + + + + + 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/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 } - - + } - diff --git a/DeepLinking.xcodeproj/project.pbxproj b/DeepLinking.xcodeproj/project.pbxproj index bcde49f..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 = ( @@ -461,6 +449,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"; @@ -515,8 +504,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Locations; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; IPHONEOS_DEPLOYMENT_TARGET = 16.0; @@ -528,7 +516,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 +536,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"; @@ -596,8 +585,7 @@ INFOPLIST_KEY_CFBundleDisplayName = Locations; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; - INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; - INFOPLIST_KEY_UIMainStoryboardFile = Main; + INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen.storyboard; INFOPLIST_KEY_UISupportedInterfaceOrientations = UIInterfaceOrientationPortrait; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown"; IPHONEOS_DEPLOYMENT_TARGET = 16.0; @@ -608,7 +596,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";