RxSwift extensions for Core Data

Overview

RxCoreData

CI Status Version License Platform

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

  • Xcode 9.0
  • Swift 4.0

Installation

RxCoreData is available via Carthage and CocoaPods.

Carthage

To install RxCoreData via Carthage, simply add the following line to your Cartfile:

github "RxSwiftCommunity/RxCoreData" ~> 1.0.0

CocoaPods

To install RxCoreData via CocoaPods, simply add the following line to your Podfile:

pod "RxCoreData", "~> 1.0.0"

Author

Scott Gardner, [email protected]

License

RxCoreData is available under the MIT license. See the LICENSE file for more info.

Comments
  • Persistable protocol fix

    Persistable protocol fix

    Dear maintainer, looking at https://github.com/RxSwiftCommunity/RxCoreData/pull/23 and the RxDatasources implementation of cell updates, the Persistable protocol needs some more changes. Problem is it interferes with IdentifiableType protocol of RxDataSources.

    Will provide updates for the examples as well after this is merged.

    opened by max-pfeiffer 12
  • Swift 3.0

    Swift 3.0

    This builds on the existing pull request #10 (also thereby issue #9) and updates the dependencies to the latest RxSwift as well as fixing the example app (there is now a swift 3 RxDataSources)

    I've also bumped the version number in the podspec and updated the readme.

    opened by samscam 8
  • Lower deployment target

    Lower deployment target

    Is this necessary to use iOS 9.1 as the minimum deployment target? As far as I know RxSwift and RxCocoa require a minimum dep. iOS 8.0 . Can we lower the deployment target to iOS 8 ? I'll be happy to send a PR to do so.

    opened by vadimb 7
  • Support for RxSwift 6.0.0

    Support for RxSwift 6.0.0

    1. update RxSwift and RxCocoa versions in the podspec to 6.0.0
    2. change directory from RxCoreDateExamples to RxCoreDataExamples (note Date vs Data)
    3. ensure there is a Podfile for the examples
    4. add the necessary pods to the Podfile for the examples
    5. ensure the Examples projects builds and remove all errors
    opened by vandadnp 4
  • Proposal for FetchedResultsControllerEntityObserver and FetchedResultsControllerSectionObserver

    Proposal for FetchedResultsControllerEntityObserver and FetchedResultsControllerSectionObserver

    Issue

    I had a performance issue using the rx_entities method. The fetch request that I have to execute is heavy and it blocks the Main thread, and as expected the bottleneck is try self.frc.performFetch(). So I created another context with the concurrency type PrivateQueueConcurrencyType and I called rx_entities using the new context but nothing the try self.frc.performFetch() was still executed on the Main Thread because I was calling rx_entities on the Main Thread.

    Proposal

    What do you think about wrapping the try self.frc.performFetch() and sendNextElement() with performBlock? Or even better to schedule rx_entities on the context thread.

    opened by serluca 4
  • Add mac 🖥, tv 📺 & watch ⌚️ support for Carthage

    Add mac 🖥, tv 📺 & watch ⌚️ support for Carthage

    This PR builds on my previous contributions and adds cross platform Carthage support to the project.

    I've followed the convention used by RxOptional, Actions and other RxSwiftCommunity projects by having a scheme and target per platform. As annoying as it is adding any new source files to all 4 targets, it seems like it's not possible to have a single target and include all of the flavours of RxSwift - however, I'd be more than happy to be corrected.

    Finally, I've removed _Pods.xcodeproj as it's a dead symbolic link.

    enhancement 
    opened by SimonRice 3
  • Updates to work with RxSwift 3.0.0 release

    Updates to work with RxSwift 3.0.0 release

    I updated the dependencies to use the 3.0.0 releases of RxSwift/RxCocoa - along with RxDataSources 1.0.0 in the example app.

    It threw up a couple of minor syntax changes: • creating AnonymousDisposables can now only be done via Disposables.createself.tableView.rx.model(at: indexPath) needs the explicit "at" (this used in the example app)

    With the build setting for ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES I've removed them again, erring on the side of stopping Cocoapods from complaining even though Xcode will disagree. You kinda can't win with this at the moment :/

    Updated the version number (0.3.0 without the rc bit). The podspec lints ok for me with Cocoapods 1.1.1 so should be good to go.

    opened by samscam 3
  • Swift 3 support

    Swift 3 support

    Hi, guys I've already started some changes towards Swift 3.0 support. If you don't mind I would like to continue working on it :) So please add In Progress label

    opened by sergdort 3
  • RxSwift 6.0 support

    RxSwift 6.0 support

    Hi and thank you for RxCoreData 😊

    RxSwift has released version 6.0.0 and I am getting an error updating our main project to RxSwift 6.0.0 because RxCoreData is still on 5.x

    Would it be possible to update RxCoreData to RxSwift 6.0?

    image
    opened by vandadnp 2
  • Add Carthage installation info to readme

    Add Carthage installation info to readme

    Hey, I've just added an information to the readme that one is able to install RxCoreData via Carthage. I've thought it's not supported at first, but then I found out it is by simply trying it out. Maybe this clears it up a bit.

    opened by forceunwrap 2
  • Does keeping a reference to Observer cause a retain-cycle?

    Does keeping a reference to Observer cause a retain-cycle?

    I'm still getting familiar with RxSwift, especially with regards to its memory management. I'm not clear on "what" the observer is. So in FetchedResultsControllerEntityObserver, it keeps a reference to observer so it can send onNext events in the delegate methods. Is this not a retain cycle, because observer is being held by the FetchedResultsControllerEntityObserver and also (I might be wrong here) by the Observable it's created in? Or is this one of those scenarios where all the references are being held "down-stream" so you don't really have a parent<--> child retain-cycle, just two references to a child.

    In the Observable.create( (observer) -> Disposable) call, who "owns" the observer?

    opened by isidorebaldado 2
  • Extract Persistable

    Extract Persistable

    IMHO, mapping domain objects to NSManagedObject and vice-versa shouldn't be part of this library, main target is rx extensions of CoreData. (Mainly doing same as RxRealm)

    opened by marshallxxx 0
  • Feature/notification based observation

    Feature/notification based observation

    Add notification based NSManagedObjectContext change observation.

    This adds two extra reactive extension to NSManagedObjectContext:

    1. Observable for any context changes
    2. Observable for object change in context

    This would allow us later to create an observable with NSFetchRequest which will be notification based instead of NSFetchedResultsController. Benefits would be that every time a relationship of a type is changed we can trigger next value.

    opened by marshallxxx 4
  • Stewardship

    Stewardship

    I think @samscam initially created this repo, but hasn't been active lately. That's totally fin! Open source is all volunteer-based. But we should discuss future stewardship of this project.

    opened by ashfurrow 3
Releases(1.0.1)
Owner
RxSwift Community
RxSwift ecosystem projects
RxSwift Community
Handy RxSwift extensions on NSObject, including rx.disposeBag.

NSObject+Rx If you're using RxSwift, you've probably encountered the following code more than a few times. class MyObject: Whatever { let disposeBag

RxSwift Community 625 Dec 12, 2022
Core Data with ReactiveCocoa

ReactiveCoreData ReactiveCoreData (RCD) is an attempt to bring Core Data into the ReactiveCocoa (RAC) world. Currently has several files with the sour

Jacob Gorban 258 Aug 6, 2022
Super Simple Pager with RxSwift extension

SSPager Super Simple Pager Example To run the example project, clone the repo, and run pod install from the SSPagerExample directory first. Installati

9oya 4 Jul 10, 2022
RxSwift extentions for Swift optionals and "Occupiable" types

RxOptional RxSwift extentions for Swift optionals and "Occupiable" types. Usage All operators are available on Driver as well unless otherwise marked.

Thane Gill 8 Jun 28, 2020
RxSwift bindings for Permissions API in iOS.

RxPermission RxSwift bindings for Permission API that helps you with Permissions in iOS. Installation RxPermission is available through CocoaPods. I c

Luke 230 Dec 27, 2022
RxSwift wrapper around the elegant HTTP networking in Swift Alamofire

RxAlamofire RxAlamofire is a RxSwift wrapper around the elegant HTTP networking in Swift Alamofire. Getting Started Wrapping RxSwift around Alamofire

RxSwift Community 1.6k Jan 3, 2023
RxSwift extension for RealmSwift's types

RxRealm This library is a thin wrapper around RealmSwift ( Realm Docs ). Table of contents: Observing object collections Observing a single object Wri

RxSwift Community 1.1k Jan 6, 2023
A testable RxSwift wrapper around MultipeerConnectivity

A testable RxSwift wrapper around MultipeerConnectivity RxMultipeer is a RxSwift wrapper for MultipeerConnectivity. Using the adapter pattern, we can

RxSwift Community 69 Jul 5, 2022
iOS & OSX Bluetooth library for RxSwift

RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant. It's backed by RxSwift and CoreBluetooth and it prov

Polidea 1.3k Dec 16, 2022
RxSwift reactive wrapper for view gestures

RxGesture Usage To run the example project, clone the repo, in the Example folder open RxGesture.xcworkspace. You might need to run pod install from t

RxSwift Community 1.3k Dec 30, 2022
🤖 RxSwift + State Machine, inspired by Redux and Elm.

RxAutomaton RxSwift port of ReactiveAutomaton (State Machine). Terminology Whenever the word "signal" or "(signal) producer" appears (derived from Rea

Yasuhiro Inami 719 Nov 19, 2022
STDevRxExt contains some extension functions for RxSwift and RxCocoa which makes our live easy.

STDevRxExt Example To run the Example.playground, clone the repo, and run pod install from the Example directory first. Requirements iOS 9.0+ tvOS 9.0

STDev 6 Mar 26, 2021
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.

Written in Swift 5 RxAlamoRecord combines the power of the AlamoRecord and RxSwift libraries to create a networking layer that makes interacting with

Dalton Hinterscher 9 Aug 7, 2020
Support Combine Assign subscriber in RxSwift.

RxAssign Support Combine Assign subscriber in RxSwift. Assign uses a KeyPath which is really nice and useful. ** RxAssign extends Driver and Signal in

Won Heo 3 Dec 7, 2021
This is the demo of MVVM-C structure with dependency injection using RxSwift.

MVVMC-Demo Demo defination This is the demo project, I have integrated two APIs for MovieDB APIS (https://www.themoviedb.org/). One for the listing of

Anshul Shah 61 Dec 6, 2022
Set of useful extensions for ReactiveSwift & ReactiveCocoa

ACKReactiveExtensions ACKReactiveExtensions is set of useful extensions for ReactiveCocoa you could use in your apps. Currently we have extensions for

Ackee 17 Aug 12, 2022
Unidirectional Data Flow in Swift - Inspired by Redux

ReSwift Supported Swift Versions: Swift 4.2, 5.x For Swift 3.2 or 4.0 Support use Release 5.0.0 or earlier. For Swift 2.2 Support use Release 2.0.0 or

null 7.3k Dec 25, 2022
🔄 Unidirectional data flow in Swift.

Reactor Reactor is a framework for making more reactive applications inspired by Elm, Redux, and recent work on ReSwift. It's small and simple (just o

Reactor 175 Jul 9, 2022
Two-way data binding framework for iOS. Only one API to learn.

BindKit A simple to use two-way data binding framework for iOS. Only one API to learn. Supports Objective-C, Swift 5, Xcode 10.2, iOS 8 and above. Shi

Electric Bolt 13 May 25, 2022