why is combine not supported on linux

Combine is a awesome reactive framework my question is why is it an Apple only framework, Or will this be released on linux, It would make sense to have a reactive framework for the swift lanaguge that can be used accross the swift eco system.


I thought swift was open sourced to benifit all and all platforms creating a libirary like this and then intergrating is with the reat of the closed source apple frmeworks is fine but then to not release this make its pointless to use when your server side will have use a different reactive framework which you then may as well use on the apple and ios side.


Apple should be free to release what ever closed source frameworks they want but when you create a library that is used though out the standard library and other frameworks then that should be realesed on all platforms not just the ones the help apple share prices. The reasons apple gave to open source swift kind of become nothing more then marketing.


Now I do want to say that combine is a different framework to others it really is or should be in the standard library, Apple has already done a geate job adding its support to their frameworks and I'm 100% sure over then next few years more and more code we write will depend on Combine (swifts reactive framework).


So I want to make sure this is not a rant because apple did not release combine on linux but if you have a framework that will over time pretty much be used by every framework and thought out the standard library should not be kept for Apple only products.

Combine is a "Swift framework" in the sense that it is written in Swift and is not usable from Obj-C code, but it's not part of the Swift compiler or ecosystem. It's not part of the standard library, or used by the standard library. It's really intended for writing apps on Apple platforms.


I suggest you take this to forums.swift.org, and start a discussion about whether a similar module might make sense for other platforms. I'm sure others would be interested in having some sort of commonality, but I doubt it's ever going to be one module with identical functionality across platforms.

I suggest you take this to forums.swift.org, and start a discussion about whether a similar module might make sense for other platforms.

Indeed, there is already such a thread: What’s up with the Combine framework?

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Thanks I understand all that and that was the point why is it not cross platform . ???? when over the next fews yeart we will be forced to use it but then not be able to server side so will end up having to use 2 reactive frameworks within our projects.

I understand the frustration, 2 years later this question as well as the thread mentioned above in the Swift forums remain without a proper answer. However, I'm offering here two solutions:

  1. Use an Open Source Combine compatible library: Github/cx-org/CombineX

  2. Wait a bit longer for the latest Swift update, which includes async/await support.

As a needed a Combine-free solution, I resorted using some good code form:

https://www.hackingwithswift.com/quick-start/swiftui/how-to-detect-device-rotation

But this code has a potential issue with initial state, especially for iPads and navigation, so I introduced a fix:

**@State private var orientation = UIDevice.current.orientation **

instead of:

@State private var orientation = UIDeviceOrientation.unknown

why is combine not supported on linux
 
 
Q