吴彦祖 bc1409211a 团餐APP1.0 | 1 год назад | |
---|---|---|
.. | ||
Platform | 1 год назад | |
RxSwift | 1 год назад | |
LICENSE.md | 1 год назад | |
README.md | 1 год назад |
Rx is a generic abstraction of computation expressed through Observable<Element>
interface.
This is a Swift version of Rx.
It tries to port as many concepts from the original version as possible, but some concepts were adapted for more pleasant and performant integration with iOS/macOS environment.
Cross platform documentation can be found on ReactiveX.io.
Like the original Rx, its intention is to enable easy composition of asynchronous operations and event/data streams.
KVO observing, async operations and streams are all unified under abstraction of sequence. This is the reason why Rx is so simple, elegant and powerful.
Single
, Completable
, Maybe
, Driver
, and ControlProperty
... and why do they exist?rxswift-3.0
branch instead)rxswift-2.0
branch instead)Rx doesn't contain any external dependencies.
These are currently the supported options:
Open Rx.xcworkspace, choose RxExample
and hit run. This method will build everything and run the sample app
Tested with pod --version
: 1.3.1
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxSwift', '~> 4.0'
pod 'RxCocoa', '~> 4.0'
end
# RxTest and RxBlocking make the most sense in the context of unit/integration tests
target 'YOUR_TESTING_TARGET' do
pod 'RxBlocking', '~> 4.0'
pod 'RxTest', '~> 4.0'
end
Replace YOUR_TARGET_NAME
and then, in the Podfile
directory, type:
$ pod install
Tested with carthage version
: 0.26.2
Add this to Cartfile
github "ReactiveX/RxSwift" ~> 4.0
$ carthage update
Tested with swift build --version
: Swift 4.0.0-dev (swiftpm-13126)
Create a Package.swift
file.
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "RxTestProject",
dependencies: [
.package(url: "https://github.com/ReactiveX/RxSwift.git", "4.0.0" ..< "5.0.0")
],
targets: [
.target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"])
]
)
$ swift build
To build or test a module with RxTest dependency, set TEST=1
. (RxSwift >= 3.4.2)
$ TEST=1 swift test
Add RxSwift as a submodule
$ git submodule add git@github.com:ReactiveX/RxSwift.git
Drag Rx.xcodeproj
into Project Navigator
Go to Project > Targets > Build Phases > Link Binary With Libraries
, click +
and select RxSwift-[Platform]
and RxCocoa-[Platform]
targets