From 73fa497f954f265bde3680ac4e22e510a214a005 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:04:13 +0100 Subject: [PATCH 01/15] WIP --- .spi.yml | 12 ++++++------ Examples/Demo/Demo.xcodeproj/project.pbxproj | 9 +++++++-- Examples/Demo/Demo/AppState.swift | 2 +- Examples/Demo/Demo/Pages.swift | 2 +- Examples/Demo/Demo/RootView.swift | 2 +- Examples/Demo/Demo/SettingsView.swift | 2 +- Package.swift | 6 +++--- Package@swift-6.0.swift | 6 +++--- README.md | 2 +- .../Articles/Custom Transitions.md | 2 +- .../NavigationTransition+SwiftUI.swift | 0 .../NavigationTransition+UIKit.swift | 0 .../NavigationTransitionDelegate.swift | 0 .../NavigationTransitionInteraction.swift | 0 .../_Exports.swift | 0 15 files changed, 25 insertions(+), 20 deletions(-) rename Sources/{NavigationTransitions => SwiftUINavigationTransitions}/Documentation.docc/Articles/Custom Transitions.md (98%) rename Sources/{NavigationTransitions => SwiftUINavigationTransitions}/NavigationTransition+SwiftUI.swift (100%) rename Sources/{NavigationTransitions => SwiftUINavigationTransitions}/NavigationTransition+UIKit.swift (100%) rename Sources/{NavigationTransitions => SwiftUINavigationTransitions}/NavigationTransitionDelegate.swift (100%) rename Sources/{NavigationTransitions => SwiftUINavigationTransitions}/NavigationTransitionInteraction.swift (100%) rename Sources/{NavigationTransitions => SwiftUINavigationTransitions}/_Exports.swift (100%) diff --git a/.spi.yml b/.spi.yml index c7889dbc..66f9a133 100644 --- a/.spi.yml +++ b/.spi.yml @@ -1,9 +1,9 @@ version: 1 builder: configs: - - platform: ios - scheme: NavigationTransitions - documentation_targets: [NavigationTransitions] - custom_documentation_parameters: [--include-extended-types] - - platform: tvos - scheme: NavigationTransitions + - platform: ios + scheme: SwiftUINavigationTransitions + documentation_targets: [SwiftUINavigationTransitions] + custom_documentation_parameters: [--include-extended-types] + - platform: tvos + scheme: SwiftUINavigationTransitions diff --git a/Examples/Demo/Demo.xcodeproj/project.pbxproj b/Examples/Demo/Demo.xcodeproj/project.pbxproj index d5e8ec8a..44d0b0dc 100644 --- a/Examples/Demo/Demo.xcodeproj/project.pbxproj +++ b/Examples/Demo/Demo.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + D52A95512DCEC08F00885069 /* SwiftUINavigationTransitions in Frameworks */ = {isa = PBXBuildFile; productRef = D52A95502DCEC08F00885069 /* SwiftUINavigationTransitions */; }; D5535823290E9692009E5D72 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5535822290E9692009E5D72 /* Assets.xcassets */; }; D5535826290E9692009E5D72 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5535825290E9692009E5D72 /* Preview Assets.xcassets */; }; D5535834290E9718009E5D72 /* Swing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553582C290E9718009E5D72 /* Swing.swift */; }; @@ -14,7 +15,6 @@ D5535836290E9718009E5D72 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553582E290E9718009E5D72 /* SceneDelegate.swift */; }; D5535837290E9718009E5D72 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D553582F290E9718009E5D72 /* LaunchScreen.storyboard */; platformFilter = ios; }; D5535839290E9718009E5D72 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5535831290E9718009E5D72 /* AppDelegate.swift */; }; - D553583F290E97C5009E5D72 /* NavigationTransitions in Frameworks */ = {isa = PBXBuildFile; productRef = D553583E290E97C5009E5D72 /* NavigationTransitions */; }; D5535843290F4BEA009E5D72 /* AppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5535842290F4BEA009E5D72 /* AppView.swift */; }; D5535845290F52F7009E5D72 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5535844290F52F7009E5D72 /* SettingsView.swift */; }; D5535847290F5E6F009E5D72 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5535846290F5E6F009E5D72 /* AppState.swift */; }; @@ -49,7 +49,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D553583F290E97C5009E5D72 /* NavigationTransitions in Frameworks */, + D52A95512DCEC08F00885069 /* SwiftUINavigationTransitions in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -137,6 +137,7 @@ name = Demo; packageProductDependencies = ( D553583E290E97C5009E5D72 /* NavigationTransitions */, + D52A95502DCEC08F00885069 /* SwiftUINavigationTransitions */, ); productName = Demo; productReference = D553581B290E9691009E5D72 /* Demo.app */; @@ -432,6 +433,10 @@ /* End XCConfigurationList section */ /* Begin XCSwiftPackageProductDependency section */ + D52A95502DCEC08F00885069 /* SwiftUINavigationTransitions */ = { + isa = XCSwiftPackageProductDependency; + productName = SwiftUINavigationTransitions; + }; D553583E290E97C5009E5D72 /* NavigationTransitions */ = { isa = XCSwiftPackageProductDependency; productName = NavigationTransitions; diff --git a/Examples/Demo/Demo/AppState.swift b/Examples/Demo/Demo/AppState.swift index 0da5e434..15e24340 100644 --- a/Examples/Demo/Demo/AppState.swift +++ b/Examples/Demo/Demo/AppState.swift @@ -1,5 +1,5 @@ import Foundation -import NavigationTransitions +import SwiftUINavigationTransitions final class AppState: ObservableObject { enum Transition: CaseIterable, CustomStringConvertible, Hashable { diff --git a/Examples/Demo/Demo/Pages.swift b/Examples/Demo/Demo/Pages.swift index 2e821db8..04d955e1 100644 --- a/Examples/Demo/Demo/Pages.swift +++ b/Examples/Demo/Demo/Pages.swift @@ -3,7 +3,7 @@ import SwiftUI struct PageOne: View { var body: some View { let content = Group { - Text("**NavigationTransitions** is a library that integrates seamlessly with SwiftUI's **Navigation** views, allowing complete customization over **push and pop transitions**!") + Text("**SwiftUINavigationTransitions** is a library that integrates seamlessly with SwiftUI's **Navigation** views, allowing complete customization over **push and pop transitions**!") } PageView(number: 1, title: "Welcome", color: .orange) { diff --git a/Examples/Demo/Demo/RootView.swift b/Examples/Demo/Demo/RootView.swift index ca10563d..145a28b5 100644 --- a/Examples/Demo/Demo/RootView.swift +++ b/Examples/Demo/Demo/RootView.swift @@ -1,5 +1,5 @@ -import NavigationTransitions import SwiftUI +import SwiftUINavigationTransitions struct RootView: View { @EnvironmentObject var appState: AppState diff --git a/Examples/Demo/Demo/SettingsView.swift b/Examples/Demo/Demo/SettingsView.swift index 787fc15f..424fd0e1 100644 --- a/Examples/Demo/Demo/SettingsView.swift +++ b/Examples/Demo/Demo/SettingsView.swift @@ -1,5 +1,5 @@ -import NavigationTransitions import SwiftUI +import SwiftUINavigationTransitions struct SettingsView: View { @EnvironmentObject var appState: AppState diff --git a/Package.swift b/Package.swift index 36196433..5e06982f 100644 --- a/Package.swift +++ b/Package.swift @@ -10,7 +10,7 @@ let package = Package( .tvOS(.v13), ], products: [ - .library(name: "NavigationTransitions", targets: ["NavigationTransitions"]), + .library(name: "SwiftUINavigationTransitions", targets: ["SwiftUINavigationTransitions"]), ], targets: [ .target(name: "Animation"), @@ -35,7 +35,7 @@ let package = Package( .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), ]), - .target(name: "NavigationTransitions", dependencies: [ + .target(name: "SwiftUINavigationTransitions", dependencies: [ "NavigationTransition", "RuntimeAssociation", "RuntimeSwizzling", @@ -48,7 +48,7 @@ let package = Package( .target(name: "TestUtils", dependencies: [ .product(name: "CustomDump", package: "swift-custom-dump"), .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), - "NavigationTransitions", + "SwiftUINavigationTransitions", ]), ] ) diff --git a/Package@swift-6.0.swift b/Package@swift-6.0.swift index 73d62171..a2b97d6a 100644 --- a/Package@swift-6.0.swift +++ b/Package@swift-6.0.swift @@ -10,7 +10,7 @@ let package = Package( .tvOS(.v13), ], products: [ - .library(name: "NavigationTransitions", targets: ["NavigationTransitions"]), + .library(name: "SwiftUINavigationTransitions", targets: ["SwiftUINavigationTransitions"]), ], targets: [ .target(name: "Animation"), @@ -35,7 +35,7 @@ let package = Package( .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), ]), - .target(name: "NavigationTransitions", dependencies: [ + .target(name: "SwiftUINavigationTransitions", dependencies: [ "NavigationTransition", "RuntimeAssociation", "RuntimeSwizzling", @@ -48,7 +48,7 @@ let package = Package( .target(name: "TestUtils", dependencies: [ .product(name: "CustomDump", package: "swift-custom-dump"), .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), - "NavigationTransitions", + "SwiftUINavigationTransitions", ]), ], swiftLanguageModes: [.v5] diff --git a/README.md b/README.md index d067801f..b7954d6c 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## Overview -Instead of reinventing the entire navigation stack just to control its transitions, `NavigationTransitions` ships with a **simple modifier** that can be applied directly to SwiftUI's very own **first-party navigation** components. +Instead of reinventing the entire navigation stack just to control its transitions, this library ships with a **simple modifier** that can be applied directly to SwiftUI's very own **first-party navigation** components. ### The Basics diff --git a/Sources/NavigationTransitions/Documentation.docc/Articles/Custom Transitions.md b/Sources/SwiftUINavigationTransitions/Documentation.docc/Articles/Custom Transitions.md similarity index 98% rename from Sources/NavigationTransitions/Documentation.docc/Articles/Custom Transitions.md rename to Sources/SwiftUINavigationTransitions/Documentation.docc/Articles/Custom Transitions.md index 109a2f08..7f3d8f44 100644 --- a/Sources/NavigationTransitions/Documentation.docc/Articles/Custom Transitions.md +++ b/Sources/SwiftUINavigationTransitions/Documentation.docc/Articles/Custom Transitions.md @@ -213,7 +213,7 @@ Next up, let's explore two ways of conforming to `NavigationTransitionProtocol`. The simplest (and most recommended) way is by declaring our atomic transitions (if needed), and composing them via `var body: some NavigationTransitionProtocol { ... }` like we saw [previously with `Slide`](#NavigationTransitionProtocol). -Check out the [documentation](https://swiftpackageindex.com/davdroman/swiftui-navigation-transitions/0.2.0/documentation/navigationtransitions/NavigationTransitionProtocol) to learn about the different `NavigationTransitionProtocol` types and how they compose. +Check out the [documentation](https://swiftpackageindex.com/davdroman/swiftui-navigation-transitions/main/documentation/swiftuinavigationtransitions/NavigationTransitionProtocol) to learn about the different `NavigationTransitionProtocol` types and how they compose. The Demo project in the repo is also a great source of learning about different types of custom transitions and the way to implement them. diff --git a/Sources/NavigationTransitions/NavigationTransition+SwiftUI.swift b/Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift similarity index 100% rename from Sources/NavigationTransitions/NavigationTransition+SwiftUI.swift rename to Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift diff --git a/Sources/NavigationTransitions/NavigationTransition+UIKit.swift b/Sources/SwiftUINavigationTransitions/NavigationTransition+UIKit.swift similarity index 100% rename from Sources/NavigationTransitions/NavigationTransition+UIKit.swift rename to Sources/SwiftUINavigationTransitions/NavigationTransition+UIKit.swift diff --git a/Sources/NavigationTransitions/NavigationTransitionDelegate.swift b/Sources/SwiftUINavigationTransitions/NavigationTransitionDelegate.swift similarity index 100% rename from Sources/NavigationTransitions/NavigationTransitionDelegate.swift rename to Sources/SwiftUINavigationTransitions/NavigationTransitionDelegate.swift diff --git a/Sources/NavigationTransitions/NavigationTransitionInteraction.swift b/Sources/SwiftUINavigationTransitions/NavigationTransitionInteraction.swift similarity index 100% rename from Sources/NavigationTransitions/NavigationTransitionInteraction.swift rename to Sources/SwiftUINavigationTransitions/NavigationTransitionInteraction.swift diff --git a/Sources/NavigationTransitions/_Exports.swift b/Sources/SwiftUINavigationTransitions/_Exports.swift similarity index 100% rename from Sources/NavigationTransitions/_Exports.swift rename to Sources/SwiftUINavigationTransitions/_Exports.swift From cc313c1e78a73ef1ed4443dd54ac29066c5f7b7a Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:04:36 +0100 Subject: [PATCH 02/15] WIP --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e97c1979..0ece8cfe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,7 +39,7 @@ jobs: platform: ${{ matrix.platform }} swift: ~${{ matrix.swift }} action: test - scheme: NavigationTransitions + scheme: SwiftUINavigationTransitions - name: Build Examples/Demo uses: mxcl/xcodebuild@v3 From f05907c32ab04cf7d344c401d5bd59ed4e8208bf Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:09:55 +0100 Subject: [PATCH 03/15] WIP --- Examples/Demo/Demo.xcodeproj/project.pbxproj | 8 ++- .../xcshareddata/xcschemes/Demo.xcscheme | 2 +- .../contents.xcworkspacedata | 3 + .../xcschemes/NavigationTransitions.xcscheme | 72 ------------------- Package.swift | 7 ++ .../AnimatorTransientView+Mocks.swift | 2 +- ...> SwiftUINavigationTransitions.xctestplan} | 10 +-- 7 files changed, 22 insertions(+), 82 deletions(-) delete mode 100644 NavigationTransitions.xcworkspace/xcshareddata/xcschemes/NavigationTransitions.xcscheme rename Tests/TestPlans/{NavigationTransitions.xctestplan => SwiftUINavigationTransitions.xctestplan} (91%) diff --git a/Examples/Demo/Demo.xcodeproj/project.pbxproj b/Examples/Demo/Demo.xcodeproj/project.pbxproj index 44d0b0dc..95958348 100644 --- a/Examples/Demo/Demo.xcodeproj/project.pbxproj +++ b/Examples/Demo/Demo.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ D52A95512DCEC08F00885069 /* SwiftUINavigationTransitions in Frameworks */ = {isa = PBXBuildFile; productRef = D52A95502DCEC08F00885069 /* SwiftUINavigationTransitions */; }; + D52A95532DCEC22700885069 /* NavigationTransitions in Frameworks */ = {isa = PBXBuildFile; productRef = D553583E290E97C5009E5D72 /* NavigationTransitions */; }; D5535823290E9692009E5D72 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5535822290E9692009E5D72 /* Assets.xcassets */; }; D5535826290E9692009E5D72 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5535825290E9692009E5D72 /* Preview Assets.xcassets */; }; D5535834290E9718009E5D72 /* Swing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553582C290E9718009E5D72 /* Swing.swift */; }; @@ -49,6 +50,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D52A95532DCEC22700885069 /* NavigationTransitions in Frameworks */, D52A95512DCEC08F00885069 /* SwiftUINavigationTransitions in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -151,7 +153,7 @@ attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1410; - LastUpgradeCheck = 1500; + LastUpgradeCheck = 1640; TargetAttributes = { D553581A290E9691009E5D72 = { CreatedOnToolsVersion = 14.1; @@ -249,6 +251,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 26CPNYHDUU; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -312,6 +315,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 26CPNYHDUU; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; @@ -344,7 +348,6 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Demo/Preview Content\""; - DEVELOPMENT_TEAM = 26CPNYHDUU; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Demo/Info.plist; @@ -382,7 +385,6 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Demo/Preview Content\""; - DEVELOPMENT_TEAM = 26CPNYHDUU; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Demo/Info.plist; diff --git a/Examples/Demo/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme b/Examples/Demo/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme index decf1e4a..7f6c03c1 100644 --- a/Examples/Demo/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme +++ b/Examples/Demo/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme @@ -1,6 +1,6 @@ + + diff --git a/NavigationTransitions.xcworkspace/xcshareddata/xcschemes/NavigationTransitions.xcscheme b/NavigationTransitions.xcworkspace/xcshareddata/xcschemes/NavigationTransitions.xcscheme deleted file mode 100644 index 208a799e..00000000 --- a/NavigationTransitions.xcworkspace/xcshareddata/xcschemes/NavigationTransitions.xcscheme +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Package.swift b/Package.swift index 5e06982f..5888802d 100644 --- a/Package.swift +++ b/Package.swift @@ -35,10 +35,17 @@ let package = Package( .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), ]), + .target(name: "UIKitNavigationTransitions", dependencies: [ + "NavigationTransition", + "RuntimeAssociation", + "RuntimeSwizzling", + ]), + .target(name: "SwiftUINavigationTransitions", dependencies: [ "NavigationTransition", "RuntimeAssociation", "RuntimeSwizzling", + "UIKitNavigationTransitions"," .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"), ]), diff --git a/Sources/TestUtils/AnimatorTransientView+Mocks.swift b/Sources/TestUtils/AnimatorTransientView+Mocks.swift index c73769ea..5a28d341 100644 --- a/Sources/TestUtils/AnimatorTransientView+Mocks.swift +++ b/Sources/TestUtils/AnimatorTransientView+Mocks.swift @@ -1,5 +1,5 @@ @testable public import Animator -public import UIKit +internal import UIKit import IssueReporting extension AnimatorTransientView { diff --git a/Tests/TestPlans/NavigationTransitions.xctestplan b/Tests/TestPlans/SwiftUINavigationTransitions.xctestplan similarity index 91% rename from Tests/TestPlans/NavigationTransitions.xctestplan rename to Tests/TestPlans/SwiftUINavigationTransitions.xctestplan index ecbf2882..155df591 100644 --- a/Tests/TestPlans/NavigationTransitions.xctestplan +++ b/Tests/TestPlans/SwiftUINavigationTransitions.xctestplan @@ -1,7 +1,7 @@ { "configurations" : [ { - "id" : "8246DD19-912B-4BFD-B95F-A885D62913FC", + "id" : "8C608A98-3C43-44EC-9508-ECA482696F28", "name" : "Test Scheme Action", "options" : { @@ -16,15 +16,15 @@ { "target" : { "containerPath" : "container:", - "identifier" : "AtomicTransitionTests", - "name" : "AtomicTransitionTests" + "identifier" : "AnimatorTests", + "name" : "AnimatorTests" } }, { "target" : { "containerPath" : "container:", - "identifier" : "AnimatorTests", - "name" : "AnimatorTests" + "identifier" : "AtomicTransitionTests", + "name" : "AtomicTransitionTests" } } ], From 6ac62a420ca52abd21a6f169eed2eb49148613f7 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:10:08 +0100 Subject: [PATCH 04/15] WIP --- Package.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Package.swift b/Package.swift index 5888802d..0c1076e3 100644 --- a/Package.swift +++ b/Package.swift @@ -35,11 +35,11 @@ let package = Package( .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), ]), - .target(name: "UIKitNavigationTransitions", dependencies: [ - "NavigationTransition", - "RuntimeAssociation", - "RuntimeSwizzling", - ]), +// .target(name: "UIKitNavigationTransitions", dependencies: [ +// "NavigationTransition", +// "RuntimeAssociation", +// "RuntimeSwizzling", +// ]), .target(name: "SwiftUINavigationTransitions", dependencies: [ "NavigationTransition", From 2770d978c47573d493db0bc6226520c7d9ceaa2a Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:14:10 +0100 Subject: [PATCH 05/15] WIP --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 0c1076e3..139c2854 100644 --- a/Package.swift +++ b/Package.swift @@ -45,7 +45,7 @@ let package = Package( "NavigationTransition", "RuntimeAssociation", "RuntimeSwizzling", - "UIKitNavigationTransitions"," +// "UIKitNavigationTransitions", .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"), ]), From 78d431811226cbd4157c32cdb68f6845a2a833b0 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:15:42 +0100 Subject: [PATCH 06/15] WIP --- .../SwiftUINavigationTransitions.xcscheme | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 NavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme diff --git a/NavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme b/NavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme new file mode 100644 index 00000000..c1215aca --- /dev/null +++ b/NavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 162143c26f10189373e13e4e31b4ab39b5ba35e5 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:16:18 +0100 Subject: [PATCH 07/15] WIP --- .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/swiftpm/Package.resolved | 0 .../xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename {NavigationTransitions.xcworkspace => SwiftUINavigationTransitions.xcworkspace}/contents.xcworkspacedata (100%) rename {NavigationTransitions.xcworkspace => SwiftUINavigationTransitions.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist (100%) rename {NavigationTransitions.xcworkspace => SwiftUINavigationTransitions.xcworkspace}/xcshareddata/swiftpm/Package.resolved (100%) rename {NavigationTransitions.xcworkspace => SwiftUINavigationTransitions.xcworkspace}/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme (100%) diff --git a/NavigationTransitions.xcworkspace/contents.xcworkspacedata b/SwiftUINavigationTransitions.xcworkspace/contents.xcworkspacedata similarity index 100% rename from NavigationTransitions.xcworkspace/contents.xcworkspacedata rename to SwiftUINavigationTransitions.xcworkspace/contents.xcworkspacedata diff --git a/NavigationTransitions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SwiftUINavigationTransitions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from NavigationTransitions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to SwiftUINavigationTransitions.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/NavigationTransitions.xcworkspace/xcshareddata/swiftpm/Package.resolved b/SwiftUINavigationTransitions.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from NavigationTransitions.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to SwiftUINavigationTransitions.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/NavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme b/SwiftUINavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme similarity index 100% rename from NavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme rename to SwiftUINavigationTransitions.xcworkspace/xcshareddata/xcschemes/SwiftUINavigationTransitions.xcscheme From 480bebe9d7b89c27ddf7e1f49d98f0447c4c618b Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:20:05 +0100 Subject: [PATCH 08/15] WIP --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0ece8cfe..ea2a64e3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,6 +39,7 @@ jobs: platform: ${{ matrix.platform }} swift: ~${{ matrix.swift }} action: test + workspace: SwiftUINavigationTransitions.xcworkspace scheme: SwiftUINavigationTransitions - name: Build Examples/Demo @@ -47,4 +48,5 @@ jobs: platform: ${{ matrix.platform }} swift: ~${{ matrix.swift }} action: build + workspace: SwiftUINavigationTransitions.xcworkspace scheme: Demo From 51127d50c337cf1131b9bdbdd4ebec1c57f7aee3 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:21:25 +0100 Subject: [PATCH 09/15] WIP --- .../contents.xcworkspacedata | 3 --- 1 file changed, 3 deletions(-) diff --git a/SwiftUINavigationTransitions.xcworkspace/contents.xcworkspacedata b/SwiftUINavigationTransitions.xcworkspace/contents.xcworkspacedata index 455261f9..ed362b78 100644 --- a/SwiftUINavigationTransitions.xcworkspace/contents.xcworkspacedata +++ b/SwiftUINavigationTransitions.xcworkspace/contents.xcworkspacedata @@ -7,7 +7,4 @@ - - From 78b0ff3c2b144d4ff4856629574f2a223743724a Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 00:22:50 +0100 Subject: [PATCH 10/15] WIP --- Examples/Demo/Demo.xcodeproj/project.pbxproj | 7 ------- 1 file changed, 7 deletions(-) diff --git a/Examples/Demo/Demo.xcodeproj/project.pbxproj b/Examples/Demo/Demo.xcodeproj/project.pbxproj index 95958348..aa4f6e0b 100644 --- a/Examples/Demo/Demo.xcodeproj/project.pbxproj +++ b/Examples/Demo/Demo.xcodeproj/project.pbxproj @@ -8,7 +8,6 @@ /* Begin PBXBuildFile section */ D52A95512DCEC08F00885069 /* SwiftUINavigationTransitions in Frameworks */ = {isa = PBXBuildFile; productRef = D52A95502DCEC08F00885069 /* SwiftUINavigationTransitions */; }; - D52A95532DCEC22700885069 /* NavigationTransitions in Frameworks */ = {isa = PBXBuildFile; productRef = D553583E290E97C5009E5D72 /* NavigationTransitions */; }; D5535823290E9692009E5D72 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5535822290E9692009E5D72 /* Assets.xcassets */; }; D5535826290E9692009E5D72 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5535825290E9692009E5D72 /* Preview Assets.xcassets */; }; D5535834290E9718009E5D72 /* Swing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D553582C290E9718009E5D72 /* Swing.swift */; }; @@ -50,7 +49,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D52A95532DCEC22700885069 /* NavigationTransitions in Frameworks */, D52A95512DCEC08F00885069 /* SwiftUINavigationTransitions in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -138,7 +136,6 @@ ); name = Demo; packageProductDependencies = ( - D553583E290E97C5009E5D72 /* NavigationTransitions */, D52A95502DCEC08F00885069 /* SwiftUINavigationTransitions */, ); productName = Demo; @@ -439,10 +436,6 @@ isa = XCSwiftPackageProductDependency; productName = SwiftUINavigationTransitions; }; - D553583E290E97C5009E5D72 /* NavigationTransitions */ = { - isa = XCSwiftPackageProductDependency; - productName = NavigationTransitions; - }; /* End XCSwiftPackageProductDependency section */ }; rootObject = D5535813290E9691009E5D72 /* Project object */; From 90a73bb787606cf335d476a923aa8da39b98dfbe Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 07:59:41 +0100 Subject: [PATCH 11/15] WIP --- Package.swift | 12 ++++++------ Package@swift-6.0.swift | 7 +++++++ .../NavigationTransition+SwiftUI.swift | 1 + Sources/UIKitNavigationTransitions/Exports.swift | 4 ++++ .../NavigationTransition+UIKit.swift | 0 .../NavigationTransitionDelegate.swift | 0 .../NavigationTransitionInteraction.swift | 0 7 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 Sources/UIKitNavigationTransitions/Exports.swift rename Sources/{SwiftUINavigationTransitions => UIKitNavigationTransitions}/NavigationTransition+UIKit.swift (100%) rename Sources/{SwiftUINavigationTransitions => UIKitNavigationTransitions}/NavigationTransitionDelegate.swift (100%) rename Sources/{SwiftUINavigationTransitions => UIKitNavigationTransitions}/NavigationTransitionInteraction.swift (100%) diff --git a/Package.swift b/Package.swift index 139c2854..7b2f7386 100644 --- a/Package.swift +++ b/Package.swift @@ -35,17 +35,17 @@ let package = Package( .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), ]), -// .target(name: "UIKitNavigationTransitions", dependencies: [ -// "NavigationTransition", -// "RuntimeAssociation", -// "RuntimeSwizzling", -// ]), + .target(name: "UIKitNavigationTransitions", dependencies: [ + "NavigationTransition", + "RuntimeAssociation", + "RuntimeSwizzling", + ]), .target(name: "SwiftUINavigationTransitions", dependencies: [ "NavigationTransition", "RuntimeAssociation", "RuntimeSwizzling", -// "UIKitNavigationTransitions", + "UIKitNavigationTransitions", .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"), ]), diff --git a/Package@swift-6.0.swift b/Package@swift-6.0.swift index a2b97d6a..bd9fcb80 100644 --- a/Package@swift-6.0.swift +++ b/Package@swift-6.0.swift @@ -35,10 +35,17 @@ let package = Package( .product(name: "IssueReporting", package: "xctest-dynamic-overlay"), ]), + .target(name: "UIKitNavigationTransitions", dependencies: [ + "NavigationTransition", + "RuntimeAssociation", + "RuntimeSwizzling", + ]), + .target(name: "SwiftUINavigationTransitions", dependencies: [ "NavigationTransition", "RuntimeAssociation", "RuntimeSwizzling", + "UIKitNavigationTransitions", .product(name: "SwiftUIIntrospect", package: "swiftui-introspect"), ]), diff --git a/Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift b/Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift index e8547e0c..bb4bd89d 100644 --- a/Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift +++ b/Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift @@ -1,3 +1,4 @@ +public import UIKitNavigationTransitions public import SwiftUI @_spi(Advanced) import SwiftUIIntrospect diff --git a/Sources/UIKitNavigationTransitions/Exports.swift b/Sources/UIKitNavigationTransitions/Exports.swift new file mode 100644 index 00000000..1d106e60 --- /dev/null +++ b/Sources/UIKitNavigationTransitions/Exports.swift @@ -0,0 +1,4 @@ +@_exported public import Animation +@_exported public import Animator +@_exported public import AtomicTransition +@_exported public import NavigationTransition diff --git a/Sources/SwiftUINavigationTransitions/NavigationTransition+UIKit.swift b/Sources/UIKitNavigationTransitions/NavigationTransition+UIKit.swift similarity index 100% rename from Sources/SwiftUINavigationTransitions/NavigationTransition+UIKit.swift rename to Sources/UIKitNavigationTransitions/NavigationTransition+UIKit.swift diff --git a/Sources/SwiftUINavigationTransitions/NavigationTransitionDelegate.swift b/Sources/UIKitNavigationTransitions/NavigationTransitionDelegate.swift similarity index 100% rename from Sources/SwiftUINavigationTransitions/NavigationTransitionDelegate.swift rename to Sources/UIKitNavigationTransitions/NavigationTransitionDelegate.swift diff --git a/Sources/SwiftUINavigationTransitions/NavigationTransitionInteraction.swift b/Sources/UIKitNavigationTransitions/NavigationTransitionInteraction.swift similarity index 100% rename from Sources/SwiftUINavigationTransitions/NavigationTransitionInteraction.swift rename to Sources/UIKitNavigationTransitions/NavigationTransitionInteraction.swift From 000cd50ef70295c3eb36f825ef6a688c399043ae Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 08:04:21 +0100 Subject: [PATCH 12/15] WIP --- .../{_Exports.swift => Exports.swift} | 0 ...ansition+SwiftUI.swift => SwiftUISupport.swift} | 0 .../UIKitNavigationTransitions/Interactivity.swift | 14 ++++++++++++++ ...onTransition+UIKit.swift => UIKitSupport.swift} | 13 ------------- 4 files changed, 14 insertions(+), 13 deletions(-) rename Sources/SwiftUINavigationTransitions/{_Exports.swift => Exports.swift} (100%) rename Sources/SwiftUINavigationTransitions/{NavigationTransition+SwiftUI.swift => SwiftUISupport.swift} (100%) create mode 100644 Sources/UIKitNavigationTransitions/Interactivity.swift rename Sources/UIKitNavigationTransitions/{NavigationTransition+UIKit.swift => UIKitSupport.swift} (98%) diff --git a/Sources/SwiftUINavigationTransitions/_Exports.swift b/Sources/SwiftUINavigationTransitions/Exports.swift similarity index 100% rename from Sources/SwiftUINavigationTransitions/_Exports.swift rename to Sources/SwiftUINavigationTransitions/Exports.swift diff --git a/Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift b/Sources/SwiftUINavigationTransitions/SwiftUISupport.swift similarity index 100% rename from Sources/SwiftUINavigationTransitions/NavigationTransition+SwiftUI.swift rename to Sources/SwiftUINavigationTransitions/SwiftUISupport.swift diff --git a/Sources/UIKitNavigationTransitions/Interactivity.swift b/Sources/UIKitNavigationTransitions/Interactivity.swift new file mode 100644 index 00000000..9ce58f37 --- /dev/null +++ b/Sources/UIKitNavigationTransitions/Interactivity.swift @@ -0,0 +1,14 @@ +public import NavigationTransition + +extension AnyNavigationTransition { + public enum Interactivity { + case disabled + case edgePan + case pan + + @inlinable + public static var `default`: Self { + .edgePan + } + } +} diff --git a/Sources/UIKitNavigationTransitions/NavigationTransition+UIKit.swift b/Sources/UIKitNavigationTransitions/UIKitSupport.swift similarity index 98% rename from Sources/UIKitNavigationTransitions/NavigationTransition+UIKit.swift rename to Sources/UIKitNavigationTransitions/UIKitSupport.swift index 1b482bb7..6eced620 100644 --- a/Sources/UIKitNavigationTransitions/NavigationTransition+UIKit.swift +++ b/Sources/UIKitNavigationTransitions/UIKitSupport.swift @@ -3,19 +3,6 @@ import RuntimeAssociation import RuntimeSwizzling public import UIKit -extension AnyNavigationTransition { - public enum Interactivity { - case disabled - case edgePan - case pan - - @inlinable - public static var `default`: Self { - .edgePan - } - } -} - public struct UISplitViewControllerColumns: OptionSet { public static let primary = Self(rawValue: 1) public static let supplementary = Self(rawValue: 1 << 1) From e3eed12e12afef0e5f53231588adc73fe092900f Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 08:06:21 +0100 Subject: [PATCH 13/15] WIP --- .../{Exports.swift => _Exports.swift} | 0 Sources/TestUtils/{Exports.swift => _Exports.swift} | 0 .../{NavigationTransitionDelegate.swift => Delegate.swift} | 0 .../{NavigationTransitionInteraction.swift => Interaction.swift} | 0 .../UIKitNavigationTransitions/{Exports.swift => _Exports.swift} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename Sources/SwiftUINavigationTransitions/{Exports.swift => _Exports.swift} (100%) rename Sources/TestUtils/{Exports.swift => _Exports.swift} (100%) rename Sources/UIKitNavigationTransitions/{NavigationTransitionDelegate.swift => Delegate.swift} (100%) rename Sources/UIKitNavigationTransitions/{NavigationTransitionInteraction.swift => Interaction.swift} (100%) rename Sources/UIKitNavigationTransitions/{Exports.swift => _Exports.swift} (100%) diff --git a/Sources/SwiftUINavigationTransitions/Exports.swift b/Sources/SwiftUINavigationTransitions/_Exports.swift similarity index 100% rename from Sources/SwiftUINavigationTransitions/Exports.swift rename to Sources/SwiftUINavigationTransitions/_Exports.swift diff --git a/Sources/TestUtils/Exports.swift b/Sources/TestUtils/_Exports.swift similarity index 100% rename from Sources/TestUtils/Exports.swift rename to Sources/TestUtils/_Exports.swift diff --git a/Sources/UIKitNavigationTransitions/NavigationTransitionDelegate.swift b/Sources/UIKitNavigationTransitions/Delegate.swift similarity index 100% rename from Sources/UIKitNavigationTransitions/NavigationTransitionDelegate.swift rename to Sources/UIKitNavigationTransitions/Delegate.swift diff --git a/Sources/UIKitNavigationTransitions/NavigationTransitionInteraction.swift b/Sources/UIKitNavigationTransitions/Interaction.swift similarity index 100% rename from Sources/UIKitNavigationTransitions/NavigationTransitionInteraction.swift rename to Sources/UIKitNavigationTransitions/Interaction.swift diff --git a/Sources/UIKitNavigationTransitions/Exports.swift b/Sources/UIKitNavigationTransitions/_Exports.swift similarity index 100% rename from Sources/UIKitNavigationTransitions/Exports.swift rename to Sources/UIKitNavigationTransitions/_Exports.swift From 8ba4c01d25a6257b62726aa152fb8444747a6463 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 08:06:47 +0100 Subject: [PATCH 14/15] WIP --- Package.swift | 1 + Package@swift-6.0.swift | 1 + 2 files changed, 2 insertions(+) diff --git a/Package.swift b/Package.swift index 7b2f7386..5c408720 100644 --- a/Package.swift +++ b/Package.swift @@ -11,6 +11,7 @@ let package = Package( ], products: [ .library(name: "SwiftUINavigationTransitions", targets: ["SwiftUINavigationTransitions"]), + .library(name: "UIKitNavigationTransitions", targets: ["UIKitNavigationTransitions"]), ], targets: [ .target(name: "Animation"), diff --git a/Package@swift-6.0.swift b/Package@swift-6.0.swift index bd9fcb80..a9db53fc 100644 --- a/Package@swift-6.0.swift +++ b/Package@swift-6.0.swift @@ -11,6 +11,7 @@ let package = Package( ], products: [ .library(name: "SwiftUINavigationTransitions", targets: ["SwiftUINavigationTransitions"]), + .library(name: "UIKitNavigationTransitions", targets: ["UIKitNavigationTransitions"]), ], targets: [ .target(name: "Animation"), From 4922a2d1d2e98ac44b4e4431509cf468e3701745 Mon Sep 17 00:00:00 2001 From: David Roman <2538074+davdroman@users.noreply.github.com> Date: Sat, 10 May 2025 09:30:20 +0100 Subject: [PATCH 15/15] WIP --- Sources/SwiftUINavigationTransitions/SwiftUISupport.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/SwiftUINavigationTransitions/SwiftUISupport.swift b/Sources/SwiftUINavigationTransitions/SwiftUISupport.swift index bb4bd89d..eff2f1e8 100644 --- a/Sources/SwiftUINavigationTransitions/SwiftUISupport.swift +++ b/Sources/SwiftUINavigationTransitions/SwiftUISupport.swift @@ -1,6 +1,6 @@ public import UIKitNavigationTransitions public import SwiftUI -@_spi(Advanced) import SwiftUIIntrospect +@_spi(Advanced) internal import SwiftUIIntrospect extension View { @MainActor