RE: https://mastodon.social/@mjtsai/116014736094096168

Oof, RIP Combine I guess?

"Avoid using the Combine framework and instead prefer to use Swift’s async and await versions of APIs instead"

@stroughtonsmith I think this has been obvious for a few years now. Combine really only got about 18 months of updates and has been in maintenance mode ever since.

I think this is mostly a good thing. Swift async is almost always easier to read, write and debug.

But core features like Observations being tied to OS 26 or later and the swift-async-algorithms library moving incredibly slowly do make it hard to fully replace Combine.

@cocoawithlove @stroughtonsmith you don't think the guideline is in relation to SwiftUI rather than an all encompassing? I can't see how async/await can be a substitute for Combine.

"Follow SwiftUI patterns with clear separation of concerns. Avoid using the Combine framework and instead prefer to use Swift's async and await versions of APIs instead."

@qnoid @stroughtonsmith Reactive programming (Combine) is for handling async observing, events and processing over streams of async values over time. Swift Observations, basic closures and AsyncSequence are pretty good matches for each of these. The expression is somewhat different — which is where swift-async-algorithms would bridge the gap if it were more fleshed out.