A React Native library to access device information like model, OS, battery, storage, and unique identifiers.
React Native Device Info is a library that provides access to device-specific information for React Native applications across iOS, Android, Windows, and web. It solves the problem of needing to retrieve hardware details, system properties, and application metadata in a cross-platform manner, which is crucial for analytics, debugging, and tailoring user experiences.
React Native developers building mobile or cross-platform applications who need to access device characteristics, monitor system status, or implement platform-specific logic based on hardware or OS details.
Developers choose this library because it offers a unified, well-documented API for over 80 device properties, supports both synchronous and asynchronous calls, and is actively maintained with broad platform coverage including iOS, Android, Windows, and web.
Device Information for React Native iOS and Android
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Covers iOS, Android, Windows, and web with consistent fallbacks like 'unknown' for unsupported platforms, as shown in the extensive API table with platform-specific availability checks.
Offers over 80 methods for device identification, hardware status, and system properties, including niche features like notch detection and dynamic island, essential for analytics and UX customization.
Provides both synchronous and asynchronous versions of most APIs, allowing flexible integration, such as using isCameraPresentSync() during app bootstrap to avoid async overhead.
Requires manual steps for Android Proguard, AndroidX setup, and native linking, which can lead to build errors and increased maintenance, as detailed in the Troubleshooting and Installation sections.
On web platforms, most APIs return default values like empty strings or false, limiting its utility for cross-platform web apps, noted under the 'react-native-dom' compatibility section.
Methods like getUniqueId() carry warnings about app store policies, risking rejection if used without proper consent, and require careful handling to avoid violations.