Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions Example/Tuist/Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ configureOpenSwiftUIEnvironment(provider: PackageContextEnvironmentProvider())
let exampleServerConfiguration = OpenSwiftUIExampleServerConfiguration.resolve()
let enableLookInsideServer = exampleServerConfiguration.enableLookInsideServer
let enableLookInServer = exampleServerConfiguration.enableLookInServer
let openCombineCondition = envBoolValue("OPENCOMBINE")
#else
let enableLookInsideServer = Context.environment["OPENSWIFTUI_EXAMPLE_LOOKINSIDE_SERVER"] == "1"
let enableLookInServer = Context.environment["OPENSWIFTUI_EXAMPLE_LOOKIN_SERVER"] == "1"
let openCombineCondition = Context.environment["OPENSWIFTUI_OPENCOMBINE"] == "1"
#endif

var dependencies: [PackageDescription.Package.Dependency] = [
Expand All @@ -35,6 +37,12 @@ var dependencies: [PackageDescription.Package.Dependency] = [
.package(url: "https://github.com/OpenSwiftUIProject/swift-snapshot-testing.git", exact: "1.19.3"),
]

if openCombineCondition {
dependencies.append(
.package(url: "https://github.com/OpenSwiftUIProject/OpenCombine.git", from: "0.16.0")
)
}

if enableLookInsideServer {
dependencies.append(.package(url: "https://github.com/LookInsideApp/LookInside-Release.git", from: "0.2.2"))
}
Expand Down
2 changes: 1 addition & 1 deletion Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,7 @@ if useLocalDeps {

if openCombineCondition {
package.dependencies.append(
.package(url: "https://github.com/OpenSwiftUIProject/OpenCombine.git", from: "0.15.0")
.package(url: "https://github.com/OpenSwiftUIProject/OpenCombine.git", from: "0.16.0")
)
cOpenSwiftUITarget.addOpenCombineCSettings()
openSwiftUICoreTarget.addOpenCombineSettings()
Expand Down
6 changes: 6 additions & 0 deletions Sources/OpenSwiftUI/Export.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,9 @@ package typealias UniqueID = OpenSwiftUICore.UniqueID
#if canImport(CoreGraphics)
@_exported import CoreGraphics
#endif

#if canImport(OpenCombine)
public import OpenCombine
public typealias Published = OpenCombine.Published
public typealias ObservableObject = OpenCombine.ObservableObject
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ extension Foundation.Progress {
)
}

#if !OPENSWIFTUI_OPENCOMBINE
#if canImport(ObjectiveC)
// OpenCombine also support this API on Darwin since 0.16.0
fileprivate typealias UIStatePublisher = Publishers.Map<
Publishers.CombineLatest4<
NSObject.KeyValueObservingPublisher<Foundation.Progress, Int64>,
Expand Down Expand Up @@ -70,12 +71,11 @@ extension Foundation.Progress {
}
}
#else
// TODO: Implement NSObject.KeyValueObservingPublisher in OpenCombine
fileprivate typealias UIStatePublisher = AnyPublisher<UIState, Never>

fileprivate var uiStatePublisher: UIStatePublisher {
// [AI] OpenCombineFoundation does not provide KVO publishers. Sample
// Progress while the graph-owned subscription is active instead.
// Sample Progress while the graph-owned subscription is active on
// platforms without Objective-C KVO support.
Foundation.Timer.publish(
every: 1.0 / 30.0,
on: .main,
Expand Down
Loading