RxContacts
RxContacts is a RxSwift wrapper around the Contacts Framework.
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)