ACKReactiveExtensions alternatives and similar libraries
Based on the "Reactive Programming" category.
Alternatively, view ACKReactiveExtensions alternatives based on common mentions on social networks and blogs.
-
ReactiveCocoa
Cocoa framework and Obj-C dynamism bindings for ReactiveSwift. -
ReSwift
Unidirectional Data Flow in Swift - Inspired by Redux -
OpenCombine
Open source implementation of Apple's Combine framework for processing values over time. -
Katana
Swift Apps in a Swoosh! A modern framework for creating iOS apps, inspired by Redux. -
Render
UIKit a-lร SwiftUI.framework [min deployment target iOS10] -
RxCoordinator
๐ Powerful navigation library for iOS based on the coordinator pattern -
RxBluetoothKit
iOS & OSX Bluetooth library for RxSwift -
RxAlamofire
RxSwift wrapper around the elegant HTTP networking in Swift Alamofire -
Interstellar
Simple and lightweight Functional Reactive Coding in Swift for the rest of us. :large_orange_diamond: -
RxAutomaton
๐ค RxSwift + State Machine, inspired by Redux and Elm. -
NSObject-Rx
Handy RxSwift extensions on NSObject, including rx.disposeBag. -
Verge
๐ฃ A robust Swift state-management framework designed for complex applications, featuring an integrated ORM for efficient data handling. -
RxMediaPicker
A reactive wrapper built around UIImagePickerController. -
VueFlux
:recycle: Unidirectional State Management Architecture for Swift - Inspired by Vuex and Flux -
RxPermission
RxSwift bindings for Permissions API in iOS. -
Komponents ๐ฆ
๐ฆ React-inspired UIKit Components - โ ๏ธ Deprecated -
ReactiveTask
Flexible, stream-based abstraction for launching processes -
TemplateKit
React-inspired framework for building component-based user interfaces in Swift. -
RxReduce
Lightweight framework that ease the implementation of a state container pattern in a Reactive Programming compliant way. -
LightweightObservable
๐ฌ A lightweight implementation of an observable sequence that you can subscribe to. -
RxMultipeer
A testable RxSwift wrapper around MultipeerConnectivity -
Aftermath
:crystal_ball: Stateless message-driven micro-framework in Swift. -
ReactiveArray
An array class implemented in Swift that can be observed using ReactiveCocoa's Signals -
SimpleApiClient
A configurable api client based on Alamofire4 and RxSwift4 for iOS. -
OneWay
A Swift library for state management with unidirectional data flow. -
ReactiveLocation
ReactiveCocoa wrapper for CLLocationManager. -
BindKit
Two-way data binding framework for iOS. Only one API to learn. -
STDevRxExt
STDevRxExt contains some extension functions for RxSwift and RxCocoa which makes our live easy. -
RxOptional
RxSwift extentions for Swift optionals and "Occupiable" types -
RxAlamoRecord
RxAlamoRecord combines the power of the AlamoRecord and RxSwift libraries to create a networking layer that makes interacting with API's easier than ever reactively.
Appwrite - The open-source backend cloud platform
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ACKReactiveExtensions or a related project?
README
[ackee|ACKReactiveExtensions](Resources/cover-image.png)
ACKReactiveExtensions
ACKReactiveExtensions is set of useful extensions for ReactiveCocoa you could use in your apps.
Currently we have extensions for
- AlamofireImage
- Argo
- Marshal
- Reachability
- Realm
- SDWebImage
- UIKit
- WebKit
If you'd love to have more extensions available just open an issue or even better create a pull request!
Installation
ACKReactiveExtensions is available through CocoaPods. Simply add the following line to your Podfile:
pod "ACKReactiveExtensions"
Requirements
- Xcode 8.x
- Swift 3.x
- iOS 8.3 and newer
For Swift 2.x compatible version use ACKReactiveExtensions in 1.2.x version.
Subspecs
By using pod "ACKReactiveExtensions"
you will get only general and UIKit extensions but there are also subspecs you can like/need.
pod 'ACKReactiveExtensions/AlamofireImage'
pod 'ACKReactiveExtensions/Argo'
pod 'ACKReactiveExtensions/Marshal'
pod 'ACKReactiveExtensions/Reachability'
pod 'ACKReactiveExtensions/Realm'
pod 'ACKReactiveExtensions/SDWebImage'
pod 'ACKReactiveExtensions/WebKit'
These subspecs mostly require aditional dependencies (as Argo or Reachability) and you could not need it for your project. That's why it is separated to subspecs.
Usage
Usage is really simple, ACKReactiveExtensions contains just more extensions for ReactiveSwift's Reactive
struct so it can be used on more objects.
let imageURL: Property<URL> = ...
let imageView = UIImageView()
imageView.reactive.imageURL <~ imageURL
Mapping extensions
ACKReactiveExtensions contains reactive mapping extensions for following libraries. See their page for more information.
- [Argo extensions](Docs/Argo.md)
- [Marshal extensions](Docs/Marshal.md)
Mapping configuration
In general we are against mapping objects on main thread (and you should be too), but you know, you only live once so we still give you the opportunity to do so. By default our mapping extensions allow this behavior but if you want to restrict that, you can do that by setting a configuration variable.
ACKReactiveExtensionsConfiguration.allowMappingOnMainThread = false
From now on the mapping extensions will expect to be called on background thread, but don't worry, we use asserts so your production users are safe from crashing if somehow things don't go as good as expected.
UITextField/UITextView two way binding
ACKReactiveExtensions contains special <~>
two way binding operator which will create binding between MutableProperty
and your UITextField
/UITextView
.
Until now all those bindings looked like this
let textProperty: MutableProperty<String?> ...
let textField: UITextField ...
textField.reactive.text <~ textProperty
textProperty <~ textField.reactive.continousTextValues
From now on you can use the <~>
operator
textProperty <~> textField
The <~>
operator is commutative so the order of operands doesn't matter.
Author
Ackee team
License
ACKategories is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the ACKReactiveExtensions README section above
are relevant to that project's source code only.