react-native-device-info is a library that exposes device and operating system information to React Native applications on iOS and Android.
The library solves the problem of accessing native device metadata—such as hardware capabilities, OS version, device model, and system properties—from JavaScript code in React Native apps. It wraps native APIs on both platforms and exposes them through a unified JavaScript interface, offering both asynchronous and synchronous variants of most methods to accommodate different use cases, from runtime queries to early-stage app initialization.
Developers should adopt this tool when building React Native applications that need to query device characteristics or adapt behavior based on hardware capabilities or OS version. It suits projects targeting iOS 10 or later and Android with AndroidX support. The library provides sensible defaults when APIs are unavailable on a particular platform, returning "unknown" for strings, -1 for numbers, false for booleans, and empty collections for arrays and objects. Automatic linking is supported across platforms, which eliminates a common source of integration friction for React Native developers. The example app included in the repository demonstrates usage of every API, serving as a reference for developers integrating the library.
The project maintains active engagement with contributions, processes pull requests and issues regularly, and provides clear upgrade guidance for major version transitions. Documentation is comprehensive and kept current with platform requirements, including specific configuration instructions for Proguard, AndroidX compatibility, and troubleshooting common linking issues. The maintainers emphasize using modern React Native versions and provide references to upgrade tools for developers on older releases.