Go to file
André Pacheco Neves 6b38733fd5
Fix CI release git tag push trigger (#869)
Apparently GH action's push event filters accept glob patterns and
*not* regexes 🤦

Source:
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushbranchestagsbranches-ignoretags-ignore

That means that the existing tag filter string being a regex wasn't
working properly and as such wasn't triggering the expected builds on
tag push.

To address this, the `on.push.tags` were updated to have separate
entries for normal vs `rc` tags, and also tweaked the tag-only jobs'
filters to rely on `github.ref_type` instead of inspecting `github.ref`.
2023-01-08 21:20:20 +00:00
.github Fix CI release git tag push trigger (#869) 2023-01-08 21:20:20 +00:00
Carthage/Checkouts Add CI Release jobs on tag push (#862) 2022-12-06 19:19:43 +00:00
Documentation Bump Minimums OSes to suppress Xcode 14 warnings (#865) 2022-12-20 10:15:55 -08:00
Logo Maintain a docset feed alongside docs generation. 2017-04-16 04:26:30 +08:00
ReactiveSwift-UIExamples.playground Removing Result in favor of Swift.Result (#702) 2019-04-05 21:03:24 +01:00
ReactiveSwift.playground Fix "'value' is inaccessible due to 'internal' protection level" in SignalProducer playground (#844) 2021-11-03 13:30:19 +00:00
ReactiveSwift.xcodeproj Update deployment targets in project file. 2022-11-17 11:57:13 +00:00
ReactiveSwift.xcworkspace Removing Result in favor of Swift.Result (#702) 2019-04-05 21:03:24 +01:00
Sources Bump Minimums OSes to suppress Xcode 14 warnings (#865) 2022-12-20 10:15:55 -08:00
Tests Bump Minimums OSes to suppress Xcode 14 warnings (#865) 2022-12-20 10:15:55 -08:00
script Add CI Release jobs on tag push (#862) 2022-12-06 19:19:43 +00:00
.gitignore New observer abstraction for future backpressure support and decluttered stack traces (#799) 2021-01-01 15:31:07 +00:00
.gitmodules Use official xcconfigs repository (#832) 2021-06-21 10:22:34 +01:00
.jazzy.yaml Merge pull request #384 from ReactiveCocoa/readme-split 2017-05-15 07:42:12 -04:00
.swiftlint.yml Make trailing_comma rule mandatory for SwiftLint. Run swiftlint autocorrect. 2017-07-21 18:56:05 +02:00
CHANGELOG.md Fix CI release git tag push trigger (#869) 2023-01-08 21:20:20 +00:00
CONTRIBUTING.md Fixed typos. Moved internal docs out of the Documentation folder. 2016-12-26 03:29:04 +01:00
Cartfile Removing Result in favor of Swift.Result (#702) 2019-04-05 21:03:24 +01:00
Cartfile.private Update private dependencies and tidy up Xcode configuration (#833) 2021-07-23 17:50:34 +01:00
Cartfile.resolved Add CI Release jobs on tag push (#862) 2022-12-06 19:19:43 +00:00
CodeOfConduct.md Replace the placeholder in the code of conduct. 2016-12-29 02:49:18 +01:00
LICENSE.md Update LICENSE.md 2016-02-07 12:32:35 -08:00
Package.resolved Update private dependencies and tidy up Xcode configuration (#833) 2021-07-23 17:50:34 +01:00
Package.swift Bump Minimums OSes to suppress Xcode 14 warnings (#865) 2022-12-20 10:15:55 -08:00
README.md Bump Minimums OSes to suppress Xcode 14 warnings (#865) 2022-12-20 10:15:55 -08:00
ReactiveSwift.podspec Change Podfile iOS deployment minimum (#868) 2023-01-07 16:35:21 +00:00

README.md

ReactiveSwift

Streams of values over time. Tailored for Swift.

Latest ReactiveSwift Documentation Join the ReactiveSwift Slack community.


Carthage compatible CocoaPods compatible SwiftPM compatible GitHub release Swift 5.1 platforms

🚄 Release Roadmap

Getting Started

Learn about the Core Reactive Primitives in ReactiveSwift, and Basic Operators available offered by these primitives.

Extended modules

Module Repository Description
ReactiveCocoa ReactiveCocoa/ReactiveCocoa

Extend Cocoa frameworks and Objective-C runtime APIs with ReactiveSwift bindings and extensions.

Loop ReactiveCocoa/Loop

Composable unidirectional data flow with ReactiveSwift.

ReactiveSwift Composable Architecture trading-point/reactiveswift-composable-architecture

The Pointfree Composable Architecture using ReactiveSwift instead of Combine.

What is ReactiveSwift in a nutshell?

ReactiveSwift offers composable, declarative and flexible primitives that are built around the grand concept of streams of values over time.

These primitives can be used to uniformly represent common Cocoa and generic programming patterns that are fundamentally an act of observation, e.g. delegate pattern, callback closures, notifications, control actions, responder chain events, futures/promises and key-value observing (KVO).

Because all of these different mechanisms can be represented in the same way, its easy to declaratively compose them together, with less spaghetti code and state to bridge the gap.

References

  1. API Reference

  2. API Contracts

    Contracts of the ReactiveSwift primitives, Best Practices with ReactiveSwift, and Guidelines on implementing custom operators.

  3. Debugging Techniques

  4. RxSwift Migration Cheatsheet

Installation

ReactiveSwift supports macOS 10.13+, iOS 11.0+, watchOS 4.0+, tvOS 11.0+ and Linux.

Carthage

If you use Carthage to manage your dependencies, simply add ReactiveSwift to your Cartfile:

github "ReactiveCocoa/ReactiveSwift" ~> 6.1

If you use Carthage to build your dependencies, make sure you have added ReactiveSwift.framework to the "Linked Frameworks and Libraries" section of your target, and have included them in your Carthage framework copying build phase.

CocoaPods

If you use CocoaPods to manage your dependencies, simply add ReactiveSwift to your Podfile:

pod 'ReactiveSwift', '~> 6.1'

Swift Package Manager

If you use Swift Package Manager, simply add ReactiveSwift as a dependency of your package in Package.swift:

.package(url: "https://github.com/ReactiveCocoa/ReactiveSwift.git", from: "6.1.0")

Git submodule

  1. Add the ReactiveSwift repository as a submodule of your applications repository.
  2. Run git submodule update --init --recursive from within the ReactiveCocoa folder.
  3. Drag and drop ReactiveSwift.xcodeproj into your applications Xcode project or workspace.
  4. On the “General” tab of your application targets settings, add ReactiveSwift.framework to the “Embedded Binaries” section.
  5. If your application target does not contain Swift code at all, you should also set the EMBEDDED_CONTENT_CONTAINS_SWIFT build setting to “Yes”.

Playground

We also provide a Playground, so you can get used to ReactiveCocoa's operators. In order to start using it:

  1. Clone the ReactiveSwift repository.
  2. Retrieve the project dependencies using one of the following terminal commands from the ReactiveSwift project root directory:
    • git submodule update --init --recursive OR, if you have Carthage installed
    • carthage checkout
  3. Open ReactiveSwift.xcworkspace
  4. Build ReactiveSwift-macOS scheme
  5. Finally open the ReactiveSwift.playground
  6. Choose View > Show Debug Area

Have a question?

If you need any help, please visit our GitHub issues or Stack Overflow. Feel free to file an issue if you do not manage to find any solution from the archives.

Release Roadmap

Current Stable Release:
GitHub release

Plan of Record

ABI stability release

ReactiveSwift has no plan to declare ABI and module stability at the moment. It will continue to be offered as a source only dependency for the foreseeable future.