Skip to content
RxContacts is a RxSwift wrapper around the Contacts Framework.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Configs
RxContacts.xcodeproj
Sources
Tests
docs
.gitignore
Cartfile
Cartfile.resolved
LICENSE
Package.resolved
Package.swift
README.md
RxContacts.podspec

README.md

RxContacts

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) 

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.