Contacts Search
Searching for contacts with the ContactsManager SDK
Contact Search via API
The ContactsManager SDK provides powerful contact search capabilities through its API layer. This section explains the available search endpoints and their usage.
Comprehensive Search
The searchContacts
method provides full-featured search functionality with pagination support:
Quick Search
For real-time search-as-you-type scenarios, use the optimized quickSearch
method:
Field-Specific Search
You can target specific contact fields in your search:
The following fields can be included in search operations:
name
: First, middle, last name, nicknameemail
: Email addressesphone
: Phone numbersaddress
: Physical addressesorganization
: Company name and departmentnotes
: Contact notes and additional information
Contact Search UI
The ContactsManager SDK provides a built-in search and select UI that you can easily integrate into your app.
Using the Contact Picker
Installation
The contact picker is included in the ContactsManager SDK for iOS. No additional installation is required.
Configuration
Configure the picker using ContactSelectionOptions
:
Usage
Present the contact picker from your view controller:
Features
- Beautiful native UI following iOS design guidelines
- Real-time search across all contact fields
- Support for single or multiple selection
- Field-type filtering (phone, email, etc.)
- Selection limit enforcement
- Customizable appearance
- Automatic permission handling
Installation
The contact picker is included in the ContactsManager SDK for iOS. No additional installation is required.
Configuration
Configure the picker using ContactSelectionOptions
:
Usage
Present the contact picker from your view controller:
Features
- Beautiful native UI following iOS design guidelines
- Real-time search across all contact fields
- Support for single or multiple selection
- Field-type filtering (phone, email, etc.)
- Selection limit enforcement
- Customizable appearance
- Automatic permission handling
Installation
The contact picker is included in the ContactsManager SDK for Android. No additional installation is required.
Configuration
Configure the picker using ContactSelectionOptions
:
Usage
Launch the contact picker from your activity or fragment:
Features
- Material Design UI following Android guidelines
- Real-time search functionality
- Single/multiple selection support
- Field-type filtering
- Selection limit enforcement
- Customizable theming
- Runtime permission handling
Installation
The contact picker is included in the ContactsManager SDK. No additional installation required.
Configuration
Usage
Features
- Native iOS UI components
- Real-time contact search
- Single/multiple selection support
- Field filtering capabilities
- Selection limit enforcement
- Permission handling
Installation
Configuration
Configure the picker using options object:
Usage
Show the contact picker in your React Native app:
Features
- Platform-native UI (iOS and Android)
- Real-time search functionality
- Support for single/multiple selection
- Field-type filtering
- Selection limit enforcement
- Automatic permission handling
- Customizable styling
Contact Selection Options
The ContactSelectionOptions
struct/object allows you to configure:
selectionMode
: Single or multiple contact selectionfieldType
: Filter contacts by field type (phone, email, any)maxSelectionCount
: Maximum number of contacts that can be selected
Thread Safety
Overview
The Contact model in Swift is built on SwiftData and has important thread safety considerations that must be followed carefully.
Key Thread Safety Rules
- Contact objects must be accessed on the thread where they were created
- Search methods return Contact objects that are bound to the main thread
- Any modifications to Contact objects must be performed on the main thread
- Background operations should use
@MainActor
or dispatch to the main thread for Contact updates
Best Practices
- Always use
@MainActor
where accessing Contact objects
Overview
The Contact model in Swift is built on SwiftData and has important thread safety considerations that must be followed carefully.
Key Thread Safety Rules
- Contact objects must be accessed on the thread where they were created
- Search methods return Contact objects that are bound to the main thread
- Any modifications to Contact objects must be performed on the main thread
- Background operations should use
@MainActor
or dispatch to the main thread for Contact updates
Best Practices
- Always use
@MainActor
where accessing Contact objects
Overview
The Contact model in Kotlin is designed to be thread-safe and coroutine-friendly.
Key Thread Safety Rules
- All search operations are suspension functions and are safe to call from any coroutine context
- Results are returned on the caller’s coroutine context
- Contact objects are immutable and thread-safe
- UI updates should be performed on the main thread
Best Practices
- Use coroutines for asynchronous operations
- Use
withContext(Dispatchers.Main)
for UI updates - Handle search results using the Kotlin Result type
- Use structured concurrency with coroutine scopes
Overview
The Contact model in Objective-C follows standard Cocoa threading patterns.
Key Thread Safety Rules
- Search operations can be performed on any thread
- Completion handlers are called on the same thread as the operation
- UI updates must be performed on the main thread
- Contact objects are thread-safe for reading
Best Practices
- Use completion handlers for asynchronous operations
- Dispatch UI updates to the main queue
- Use atomic properties for thread safety
- Follow Apple’s threading guidelines
Overview
The Contact model in React Native bridges native implementations and follows React Native’s threading model.
Key Thread Safety Rules
- All operations are asynchronous and return Promises
- Bridge calls are automatically queued and thread-safe
- UI updates are handled on the main thread
- Contact objects are immutable
Best Practices
- Use async/await for clean asynchronous code
- Handle Promise rejections appropriately
- Update UI state using React hooks
- Follow React Native’s performance guidelines