Skip to content

Conversation

@mCodex
Copy link
Owner

@mCodex mCodex commented Dec 15, 2025

This pull request introduces several important updates and improvements across Android, iOS, and project configuration files. The main focuses are on enhancing platform compatibility, updating dependencies, improving biometric authentication UX, and ensuring better interoperability between TypeScript and native modules.

Platform Compatibility & API Improvements

  • The HybridSensitiveInfo class in both Android (HybridSensitiveInfo.kt) and iOS (HybridSensitiveInfo.swift) now returns a discriminated union (Variant_NullType_SensitiveInfoItem) instead of nullable types for getItem, aligning with TypeScript expectations and improving type safety. Constructors and error handling are added to ensure correct variant creation on Android, and all relevant iOS methods are made public for better cross-platform access. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

  • The Android implementation adds @DoNotStrip and @Keep annotations to prevent code stripping during ProGuard/R8 minification, ensuring the module remains accessible from JavaScript. [1] [2]

Biometric Authentication

  • Upgrades Android biometric dependency to androidx.biometric:biometric-ktx:1.4.0-alpha02 and updates the biometric prompt to disable confirmation where supported, streamlining the user experience while maintaining security. [1] [2]

Dependency & Project Configuration Updates

  • Updates a wide range of dependencies in both root and example package.json files, including React, React Native, Nitro Modules, ESLint, Prettier, and others, to their latest versions for improved stability and compatibility. [1] [2] [3] [4]

  • Enables Gradle parallel build for faster Android builds and updates the biometric library version.

  • Updates iOS project settings for improved build reliability, including corrected REACT_NATIVE_PATH references, shell script quoting, and inheritance of compiler flags. [1] [2] [3] [4] [5]

Summary of Most Important Changes

Cross-Platform API Consistency and Safety

  • Changed getItem on both Android and iOS to return a discriminated union (Variant_NullType_SensitiveInfoItem) instead of nullable types, ensuring better type safety and alignment with TypeScript expectations. All iOS methods are now public for improved interoperability. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

  • Added @DoNotStrip and @Keep annotations to Android HybridSensitiveInfo to prevent code stripping by ProGuard/R8. [1] [2]

Biometric Authentication Enhancements

  • Upgraded Android biometric library to biometric-ktx:1.4.0-alpha02 and improved biometric prompt UX by disabling confirmation where supported. [1] [2]

Dependency Updates

  • Updated major dependencies (React, React Native, Nitro Modules, ESLint, Prettier, etc.) in both root and example projects for improved compatibility and stability. [1] [2] [3] [4]

Build & Project Configuration

  • Enabled Gradle parallel builds for Android and improved iOS project configuration (fixed REACT_NATIVE_PATH, shell script quoting, and compiler flags inheritance). [1] [2] [3] [4] [5] [6]

Upgrades Android biometric dependency to androidx.biometric:biometric-ktx:1.4.0-alpha02 and updates usage to prefer setConfirmationRequired for improved UX. Refactors HybridSensitiveInfo to return a Variant_NullType_SensitiveInfoItem when no entry is found, improving type safety and compatibility. Also enables Gradle parallel builds in the example, and updates iOS and JS dependencies to latest React Native and NitroModules versions.
Changed the HybridSensitiveInfo class and its methods to public to allow access from outside the module. Also updated the getItem method to return a Variant_NullType_SensitiveInfoItem type for better nullability handling.
@mCodex mCodex merged commit 0c7796a into master Dec 15, 2025
6 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants