Latest1.0.2
Homepagehttps://github.com/RxSwiftCommunity/RxContacts
LicenseMIT
Platformsios 9.0, osx 10.12, watchos 3.0
DependenciesRxSwift, RxCocoa
FrameworksFoundation, Contacts
Authors

RxContacts is a RxSwift wrapper around the Contacts Framework.

Language: Swift 4
Version
License
Platform
Swift Package Manager
Carthage compatible

Requirements

  • iOS 9.0+ / Mac OS X 10.12+ / watchOS 3.0+
  • Xcode 9.0+

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

To integrate RxContacts into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

pod 'RxContacts'

Then, run the following command:

$ pod install

Carthage

Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate RxContacts into your Xcode project using Carthage, specify it in your Cartfile:

github "SwiftyContacts/RxContacts" ~> 0.1

Swift Package Manager

To use RxContacts as a Swift Package Manager package just add the following in your Package.swift file.

import PackageDescription

let package = Package(
    name: "HelloContacts",
    dependencies: [
        .Package(url: "https://github.com/satishbabariya/RxContacts", "0.1")
    ]
)

Manually

If you prefer not to use either of the aforementioned dependency managers, you can integrate RxContacts into your project manually.

Embeded Binaries

  • Download the latest release from https://github.com/satishbabariya/RxContacts/releases
  • Next, select your application project in the Project Navigator (blue project icon) to navigate to the target configuration window and select the application target under the "Targets" heading in the sidebar.
  • In the tab bar at the top of that window, open the "General" panel.
  • Click on the + button under the "Embedded Binaries" section.
  • Add the downloaded RxContacts.framework.
  • And that’s it!

Get started


import RxContacts

store.rx.requestAccess(for: CNEntityType.contacts).subscribe { (event) in
            switch event{
            case .next(let bool):
                break
            case .error(let error):
                break
            case .completed:
                break
            }
        }

Notifications


//Posted notifications when changes occur in another CNContactStore.

store.rx.didChange().subscribe { (event) in

}

Methods


unifiedContacts(matching predicate: NSPredicate, keysToFetch keys: [CNKeyDescriptor])
unifiedContact(withIdentifier identifier: String, keysToFetch keys: [CNKeyDescriptor])
groups(matching predicate: NSPredicate?)
containers(matching predicate: NSPredicate?) 
enumerateContacts(with fetchRequest: CNContactFetchRequest) 
execute(_ saveRequest: CNSaveRequest) 

Latest podspec

{
    "name": "RxContacts",
    "version": "1.0.2",
    "summary": "RxSwift extensions for Contacts framework.",
    "homepage": "https://github.com/RxSwiftCommunity/RxContacts",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "Satish Babariya": "[email protected]"
    },
    "cocoapods_version": ">= 1.4.0",
    "swift_version": "4.0",
    "platforms": {
        "ios": "9.0",
        "osx": "10.12",
        "watchos": "3.0"
    },
    "source": {
        "git": "https://github.com/RxSwiftCommunity/RxContacts.git",
        "tag": "1.0.2"
    },
    "source_files": "Sources/**/*",
    "frameworks": [
        "Foundation",
        "Contacts"
    ],
    "static_framework": true,
    "dependencies": {
        "RxSwift": [
            "~> 4"
        ],
        "RxCocoa": [
            "~> 4"
        ]
    }
}

Pin It on Pinterest

Share This