All Projects → CombineCommunity → Combinecocoa

CombineCommunity / Combinecocoa

Licence: mit
Combine publisher bridges for UIKit

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Combinecocoa

Mybb
MyBB is a free and open source forum software.
Stars: ✭ 750 (-0.92%)
Mutual labels:  hacktoberfest
Glow
Render markdown on the CLI, with pizzazz! 💅🏻
Stars: ✭ 7,596 (+903.43%)
Mutual labels:  hacktoberfest
Obspy
ObsPy: A Python Toolbox for seismology/seismological observatories.
Stars: ✭ 756 (-0.13%)
Mutual labels:  hacktoberfest
Awesome Android Learning Resources
👓 A curated list of awesome android learning resources for android app developers.
Stars: ✭ 753 (-0.53%)
Mutual labels:  hacktoberfest
Migrate
Database migrations. CLI and Golang library.
Stars: ✭ 7,712 (+918.76%)
Mutual labels:  hacktoberfest
Node Fetch
A light-weight module that brings the Fetch API to Node.js
Stars: ✭ 7,176 (+847.95%)
Mutual labels:  hacktoberfest
Phpauth
PHPAuth is a secure PHP Authentication class that easily integrates into any site.
Stars: ✭ 748 (-1.19%)
Mutual labels:  hacktoberfest
Symfony 5 Es Cqrs Boilerplate
Symfony 5 DDD ES CQRS backend boilerplate
Stars: ✭ 759 (+0.26%)
Mutual labels:  hacktoberfest
Actix
Actor framework for Rust.
Stars: ✭ 6,764 (+793.53%)
Mutual labels:  hacktoberfest
Alpine Chrome
Chrome Headless docker images built upon alpine official image
Stars: ✭ 754 (-0.4%)
Mutual labels:  hacktoberfest
Splat
Makes things cross-platform
Stars: ✭ 753 (-0.53%)
Mutual labels:  hacktoberfest
Expr Eval
Mathematical expression evaluator in JavaScript
Stars: ✭ 752 (-0.66%)
Mutual labels:  hacktoberfest
Reactiveui
An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application.
Stars: ✭ 6,709 (+786.26%)
Mutual labels:  hacktoberfest
Awesome Cn Cafe
A curated list of awesome coffee places in China.
Stars: ✭ 752 (-0.66%)
Mutual labels:  hacktoberfest
Easy Digital Downloads
Sell digital downloads through WordPress
Stars: ✭ 757 (+0%)
Mutual labels:  hacktoberfest
Socialify
💞 Socialify your project. 🌐 Share with the world!
Stars: ✭ 750 (-0.92%)
Mutual labels:  hacktoberfest
Mediatr
Simple, unambitious mediator implementation in .NET
Stars: ✭ 7,224 (+854.29%)
Mutual labels:  hacktoberfest
Reaktive
Kotlin multi-platform implementation of Reactive Extensions
Stars: ✭ 760 (+0.4%)
Mutual labels:  hacktoberfest
Awesome Icons
A curated list of awesome Web Font Icons
Stars: ✭ 758 (+0.13%)
Mutual labels:  hacktoberfest
Clarity
Clarity is a scalable, accessible, customizable, open source design system built with web components. Works with any JavaScript framework, built for enterprises, and designed to be inclusive.
Stars: ✭ 6,398 (+745.18%)
Mutual labels:  hacktoberfest

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<String, Never>
segmented.selectedSegmentIndexPublisher // AnyPublisher<Int, Never>
slider.valuePublisher // AnyPublisher<Float, Never>
button.tapPublisher // AnyPublisher<Void, Never>
barButtonItem.tapPublisher // AnyPublisher<Void, Never>
swtch.isOnPublisher // AnyPublisher<Bool, Never>
stepper.valuePublisher // AnyPublisher<Double, Never>
datePicker.datePublisher // AnyPublisher<Date, Never>
refreshControl.isRefreshingPublisher // AnyPublisher<Bool, Never>
pageControl.currentPagePublisher // AnyPublisher<Int, Never>
tapGesture.tapPublisher // AnyPublisher<UITapGestureRecognizer, Never>
pinchGesture.pinchPublisher // AnyPublisher<UIPinchGestureRecognizer, Never>
rotationGesture.rotationPublisher // AnyPublisher<UIRotationGestureRecognizer, Never>
swipeGesture.swipePublisher // AnyPublisher<UISwipeGestureRecognizer, Never>
panGesture.panPublisher // AnyPublisher<UIPanGestureRecognizer, Never>
screenEdgePanGesture.screenEdgePanPublisher // AnyPublisher<UIScreenEdgePanGestureRecognizer, Never>
longPressGesture.longPressPublisher // AnyPublisher<UILongPressGestureRecognizer, Never>
scrollView.contentOffsetPublisher // AnyPublisher<CGPoint, Never>
scrollView.reachedBottomPublisher(offset:) // AnyPublisher<Void, Never>

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].