A React Native bridge to programmatically enable or disable the screen idle timer on iOS and Android.
react-native-idle-timer is a native bridge module for React Native that provides control over the device's screen idle timer. It allows developers to programmatically prevent the screen from dimming or locking during specific app activities, such as video playback or presentations, enhancing user experience.
React Native developers building apps that require the screen to stay awake during certain user interactions, such as media players, presentation tools, or kiosk applications.
Developers choose this library for its cross-platform control, tag-based management for handling multiple concurrent disabling requests, and seamless integration with React component lifecycles, offering a minimal and reliable bridge to native platform APIs.
A cross-platform bridge that allows you to enable and disable the screen idle timer in your React Native app
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 single JavaScript interface to control idle timers on both iOS and Android, ensuring consistent behavior across platforms as shown in the usage examples.
Supports multiple concurrent disabling requests using tags, preventing conflicts in complex apps, demonstrated in the tag usage code snippets.
Offers direct integration from native Android and iOS code, allowing for deeper platform-specific control, mentioned in the native usage section.
Designed to seamlessly hook into React component lifecycles like useEffect, making state management straightforward with component mounting and unmounting.
Requires manual native setup steps for both iOS and Android, which can be error-prone and time-consuming, as detailed in the installation instructions.
Only offers basic enable/disable functionality without support for custom timeout durations or advanced configurations, as the README shows no such options.
Relies on native modules, making it incompatible with Expo managed workflows out-of-the-box, potentially forcing ejecting or alternative solutions.