oblador / react-native-keychain

:key: Keychain Access for React Native
MIT License
3.18k stars 519 forks source link

[Fix][Android] UI Blocking on Lower-End Devices #606

Closed EdgarJMesquita closed 6 days ago

EdgarJMesquita commented 1 year ago

Asynchronous Refactor of setGenericPassword to Address UI Blocking on Lower-End Devices

Issue: On certain lower-end devices, a critical issue was identified where the current implementation of the setGenericPassword function caused significant UI blocking. This resulted in unresponsive user interfaces lasting up to 22 seconds, greatly impacting user experience and frustrating our users.

Solution: To mitigate this problem and ensure a seamless user experience across all devices, a comprehensive refactor of the setGenericPassword function has been undertaken. The primary goal of this refactor was to introduce asynchronous execution, enabling heavy processing tasks to be offloaded to separate threads.

Impact: By implementing this change, we have effectively eliminated the UI blocking issue on lower-end devices. This enhancement not only resolves the reported user problems but also elevates the overall performance and usability of our application on a wider range of hardware.

Benefits:

  1. Improved Responsiveness: Asynchronous execution prevents UI blocking, resulting in a smoother and more responsive user interface, even on resource-constrained devices.
  2. Enhanced User Experience: Users will no longer face extended periods of unresponsiveness, leading to increased satisfaction and retention.
  3. Optimized Performance: The updated function execution maintains the security and reliability aspects while delivering better overall application performance.
DorianMazur commented 6 days ago

Fixed in #658