Skip to content

RxSwiftCommunity/RxContacts

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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)