Need help with CombineCocoa?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

CombineCommunity
1.0K Stars 66 Forks MIT License 52 Commits 12 Opened issues

Description

Combine publisher bridges for UIKit

Services available

!
?

Need anything else?

Contributors list

CombineCocoa



Build Status
CombineCocoa supports CocoaPods CombineCocoa supports Swift Package Manager (SPM) CombineCocoa supports Carthage

CombineCocoa attempts to provide publishers for common UIKit controls so you can consume user interaction as Combine emissions and compose them into meaningful, logical publisher chains.

Note: This is still a primal version of this, with much more to be desired. I gladly accept PRs, ideas, opinions, or improvements. Thank you ! :)

Basic Examples

Check out the Example in the Example folder. Open the project in Xcode 11 and Swift Package Manager should automatically resolve the required dependencies.

Usage

tl;dr:

import Combine
import CombineCocoa

textField.textPublisher // AnyPublisher segmented.selectedSegmentIndexPublisher // AnyPublisher slider.valuePublisher // AnyPublisher button.tapPublisher // AnyPublisher barButtonItem.tapPublisher // AnyPublisher switch.isOnPublisher // AnyPublisher stepper.valuePublisher // AnyPublisher datePicker.datePublisher // AnyPublisher refreshControl.isRefreshingPublisher // AnyPublisher pageControl.currentPagePublisher // AnyPublisher tapGesture.tapPublisher // AnyPublisher pinchGesture.pinchPublisher // AnyPublisher rotationGesture.rotationPublisher // AnyPublisher swipeGesture.swipePublisher // AnyPublisher panGesture.panPublisher // AnyPublisher screenEdgePanGesture.screenEdgePanPublisher // AnyPublisher longPressGesture.longPressPublisher // AnyPublisher scrollView.contentOffsetPublisher // AnyPublisher scrollView.reachedBottomPublisher(offset:) // AnyPublisher

Installation

CocoaPods

Add the following line to your Podfile:

pod 'CombineCocoa'

Swift Package Manager

Add the following dependency to your Package.swift file:

.package(url: "https://github.com/CombineCommunity/CombineCocoa.git", from: "0.2.1")

Carthage

Add the following to your Cartfile:

github "CombineCommunity/CombineCocoa"

Future ideas

  • Support non
    UIControl.Event
    -based publishers (e.g. delegates).
  • ... your ideas? :)

Acknowledgments

License

MIT, of course ;-) See the LICENSE file.

The Apple logo and the Combine framework are property of Apple Inc.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.