Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

rxswift-to-combine-cheatsheet

> 前端框架
Open source

RxSwift to Apple’s Combine Cheat Sheet

2.1K stars0 likes2 views
WebsiteGitHub

About

RxSwift to Apple’s Combine Cheat Sheet

RxSwift to Combine Cheatsheet

This is a Cheatsheet for RxSwift developers interested in Apple's new Combine framework.

It's based on the following blog post: https://medium.com/gett-engineering/rxswift-to-apples-combine-cheat-sheet-e9ce32b14c5b

Basics

RxSwift Combine Deployment Target iOS 8.0+ iOS 13.0+ Platforms supported iOS, macOS, tvOS, watchOS, Linux iOS, macOS, tvOS, watchOS, UIKit for Mac ¹ Spec Reactive Extensions (ReactiveX) Reactive Streams (+ adjustments) Framework Consumption Third-party First-party (built-in) Maintained by Open-Source / Community Apple UI Bindings RxCocoa SwiftUI ²

Core Components

RxSwift Combine Notes AnyObserver AnySubscriber BehaviorRelay ❌ Simple wrapper around BehaviorSubject, could be easily recreated in Combine BehaviorSubject CurrentValueSubject This seems to be the type that holds @State under the hood Completable ❌ CompositeDisposable ❌ ConnectableObservableType ConnectablePublisher Disposable Cancellable DisposeBag A collection of AnyCancellables Call anyCancellable.store(in: &collection), where collection can be an array, a set, or any other RangeReplaceableCollection Driver ObservableObject Both guarantee no failure, but Driver guarantees delivery on Main Thread. In Combine, SwiftUI recreates the entire view hierarachy on the Main Thread, instead. Maybe Optional.Publisher Observable Publisher Observer Subscriber PublishRelay ❌ Simple wrapper around PublishSubject, could be easily recreated in Combine PublishSubject PassthroughSubject ReplaySubject ❌ ScheduledDisposable ❌ SchedulerType Scheduler SerialDisposable ❌ Signal ❌ Single Deferred + Future Future has to be wrapped in a Deferred, or its greedy as opposed to Single's laziness SubjectType Subject TestScheduler ❌ There doesn't seem to be an existing testing scheduler for Combine code

Operators

RxSwift Combine Notes allSatisfy allSatisfy amb() ❌ asObservable() eraseToAnyPublisher() asObserver() ❌ bind(to:) assign(to:on:) Assign uses a KeyPath which is really nice and useful. RxSwift needs a Binder / ObserverType to bind to. buffer buffer catch catch catchAndReturn replaceError(with:) combineLatest combineLatest, tryCombineLatest compactMap compactMap, tryCompactMap concat append, prepend concatMap ❌ contains contains count count create ❌ Apple removed AnyPublisher with a closure in Xcode 11 beta 3 :-( debounce debounce debug print deferred Deferred delay delay delaySubscription ❌ dematerialize ❌ distinctUntilChanged removeDuplicates, tryRemoveDuplicates do handleEvents element(at:) output(at:) empty Empty(completeImmediately: true) enumerated ❌ error Fail filter filter, tryFilter

GitHub Issues· 0 open

View all on GitHub

No open issues yet, or sync has not completed.

Highlights

  • •Ruby
  • •apple
  • •combine
  • •reactive
  • •reactive-programming

> Tags

Rubyapplecombinereactivereactive-programming

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category前端框架
PricingOpen source

> Related tools

R
React
用于构建用户界面的 JavaScript 库
V
Vue.js
渐进式 JavaScript 框架
N
Next.js
基于 React 的全栈 Web 框架