A React Native library for accessing and managing iOS Contacts Framework (iOS 9+) and Android Contacts (SDK 23+) with a unified API.
React Native Unified Contacts is a React Native library that provides a unified JavaScript API to access and manage the native Contacts Framework on iOS (9+) and Android (6.0+). It allows developers to perform CRUD operations on contacts and groups, handle permissions, and integrate contact data into cross-platform mobile apps. The library simplifies working with the latest Apple Contacts Framework while ensuring Android compatibility.
React Native developers building iOS and Android apps that need to access, manage, or integrate device contacts, such as social apps, communication tools, or productivity applications.
Developers choose React Native Unified Contacts for its comprehensive cross-platform support, intuitive API mirroring native capabilities, and robust feature set including group management and permission utilities, avoiding the need to write separate native modules for iOS and Android contact handling.
Your best friend when working with the latest and greatest Contacts Framework in iOS 9+ in React Native.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a unified JavaScript interface for both iOS (9+) and Android (6.0+), simplifying contact access with consistent methods like getContacts and searchContacts across platforms.
Returns detailed contact objects with fields such as phonetic names, social profiles, and base64 thumbnail images, as shown in the example contact object in the README.
Includes comprehensive methods for handling contact permissions, such as userCanAccessContacts, requestAccessToContacts, and openPrivacySettings to guide users through privacy settings.
Offers Android-exclusive features like selectContact and openContact, which launch the native Contacts app for selection or viewing, enhancing user experience without custom UI.
Critical features like creating, updating, deleting contacts, and all group operations are unavailable on Android, as highlighted in the compatibility table, limiting true cross-platform functionality.
Uses traditional callbacks instead of Promises or async/await, which can lead to nested code and is less aligned with modern JavaScript patterns, as seen in all usage examples.
Requires extensive manual configuration for both iOS and Android if automatic linking fails, including editing Xcode projects, Gradle files, and AndroidManifest.xml, as detailed in the installation section.