Reader SDK Documents
Breadcrumbs

IFU054(01) v4.0.1 (Expo)

Novarum DX Ltd
Instructions for Use / Guides

Document ID: IFU054 
Revision: 01 
Released: Aug 5, 2026 

1. Overview

v4.0.1 is the current major Expo React Native Reader SDK release for the private npm package @novarumdx/ndx-imaging-expo. It moves the Expo bridge forward from the v3.0.2 baseline to the current v4 platform line and aligns the module with the modern native Reader SDK stack on Android and iOS.

  • Platform compatibility update: upgrades the Expo bridge to the Expo SDK 56 generation and updates the bridge for the React Native new architecture (Fabric / TurboModules).

  • Lifecycle and UI reliability: fixes app background/resume issues on iOS and layout sizing issues affecting flexible or partial-screen reader presentations on both platforms.

  • Integration baseline refresh: carries forward the modern customer integration path established in the v4 native SDK family, including current native dependency alignment and current reader-file expectations.

  • Scope: this release focuses on bridge compatibility, integration reliability, and customer-visible behaviour. The host application remains responsible for workflow, permissions prompting strategy, result handling, persistence, and any external communication.

Warning: The SDK 4.0.1 (Expo) is not compatible with current reader files that do not use the new format with the {estimators: [ wrapper. Reader files must be updated to the new format before use with SDK 4.0.1 (Expo).

2. What’s Changed Since 3.0.2

2.1. Expo SDK 56 and React Native new architecture

  • Expo SDK 56 compatibility: resolves the incompatibility in v3.0.2 with Expo SDK 56, including updated bridge behaviour required by the newer Expo and React Native toolchain.

  • New architecture support: updates and verifies the native bridge for React Native’s new architecture, including Fabric renderer and TurboModules integration.

  • Build and runtime alignment: the module is updated so current iOS and Android bridge code works with the newer Expo baseline rather than the earlier v3-era assumptions.

  • Reader keep-awake alignment: while the reader is visible, the screen now remains awake on both platforms. iOS already received this behaviour from the inner imaging SDK, while Android required Kotlin handling in the Expo module because that inner dependency behaviour was not applied through the Android Expo integration path.

  • Outcome for customers: integrations targeting current Expo applications can adopt the supported bridge rather than remaining pinned to the older v3.0.2-compatible toolchain.

2.3. Reader view layout and presentation fixes

  • Flex layout fix: resolves the issue where the Expo reader view did not respect flex-based layout sizing.

  • Partial-screen Android layout fix: resolves incorrect fit/fill behaviour when the reader view is hosted inside constrained or partial layouts such as split screens, embedded containers, or other non-full-screen presentations on Android.

  • iOS fit positioning correction: resolves the issue where fit-mode scans on iOS were gravitated towards the lower portion of the screen.

  • Outcome for customers: the reader view now behaves more predictably when embedded into real application layouts instead of assuming a simple full-screen presentation.

2.4. Lifecycle and scan completion reliability

  • iOS background/resume fix: resolves the issue where the reader did not resume correctly after the app was backgrounded on iOS.

  • End-of-scan freeze fix: addresses image saving and compression work that could block the main thread and cause a visible UI freeze at the end of scans on Android through the Expo integration path.

  • Outcome for customers: scanning flows are more robust during app lifecycle transitions and more responsive at completion.

2.5. API and behavioural continuity from the 3.0.2 baseline

  • Preserved bridge model: the package continues to expose the React Native component NdxImagingExpoView, typed callbacks such as onFrameCaptured, onComplete, and onAbort, abort control, permission helpers, and TypeScript models.

  • Frame callback continuity: the v3.0.2 additive improvement that surfaced stripStatuses in onFrameCaptured remains part of the current bridge behaviour.

  • Native bridge alignment: the Expo module continues to act as the JavaScript / TypeScript bridge above the platform-specific Android and iOS Reader SDKs and the shared NDX Imaging Core.

3. Fixed Bugs Included in This Release

Expo Specific
(Total: 6)
project = "SDKEXPO" AND type = "NDX Bug" AND fixversion >="4.0.0-expo" AND status = Done ORDER BY created DESC
Key
Summary
Affects versions
Risk (calculated)
Fix versions
Test Result
Status
toRecord Work blocking main thread causing Freezing at end of scan 4.0.0-expo
🟨 Moderate
4.0.1-expo 🟩 Pass
Done
@novarumdx/ndx-imaging-expo: Published artifact omits build/index entry point 4.0.0-expo
🟥 High
4.0.1-expo 🟩 Pass
Done
ImagingExpoView doesn't respect Flex/Partial layouts on Android 3.0.2 (Expo Core)
🟩 Low
4.0.0-expo 🟩 Pass
Done
Expo reader view does not respect flex layout 3.0.2 (Expo Core)
🟨 Moderate
4.0.0-expo 🟩 Pass
Done
On iOS if the app is backgrounded the reader does not resume 3.0.2 (Expo Core)
🟥 High
4.0.0-expo 🟩 Pass
Done
Version 3.0.2 Expo is not compatible with Expo SDK 56 3.0.2 (Expo Core)
🟥 High
4.0.0-expo 🟩 Pass
Done
Android Inherited
(Total: 3)
project = SDKAND AND type = "NDX Bug" AND fixversion >=4.1.0-android AND status = Done ORDER BY created DESC
Key
Summary
Affects versions
Risk (calculated)
Fix versions
Test Result
Status
Devices have a rotated camera resulting in being unable to scan 4.0.1-android
🟥 High
4.1.0-android 🟩 Pass
Done
PMF Story: Discrepancy between last strip statuses captured compared to result's pmfstory 4.0.1-android
🟨 Moderate
4.1.0-android 🟩 Pass
Done
Green check mark does not appear on last frame 4.0.0-android, 4.0.1-android
🟩 Low
4.1.0-android 🟩 Pass
Done

iOS Inherited

(Total: 5)
project = SDKIOS AND type = "NDX Bug" AND fixversion >=4.1.0-ios AND status = Done ORDER BY created DESC
Key
Summary
Affects versions
Risk (calculated)
Fix versions
Test Result
Status
PMF Story: Discrepancy between last strip statuses captured compared to result's pmfstory 4.0.1-ios
🟨 Moderate
4.1.0-ios 🟩 Pass
Done
ReaderViewController deconstruction is causing a leak 4.0.1-ios
🟥 High
4.1.0-ios 🟩 Pass
Done
Missing Swift Doc for ReaderViewControllerDelegate 4.0.1-ios
🟩 Low
4.1.0-ios 🟩 Pass
Done
Missing Swift Doc for PMFLoader 4.0.1-ios
🟩 Low
4.1.0-ios 🟩 Pass
Done
Missing Swift Doc for ReaderViewController 4.0.1-ios
🟩 Low
4.1.0-ios 🟩 Pass
Done

4. Breaking vs. Non-breaking Summary

Change

Type

Developer impact

Upgrade from v3.0.2 baseline to current Expo 56 / React Native new architecture baseline

Compatibility and platform-baseline update

Customer applications should regression test their Expo app against the current runtime and native build environment.

Reader files must use current {estimators: [ JSON wrapper format

Integration-breaking for older reader configurations

Older reader JSON files must be updated before use with the v4.x line.

Reader keeps the screen awake while visible on both platforms

Non-breaking behaviour fix

No API change required; release-device testing should confirm the screen stays awake during scanning on both platforms and auto-lock resumes after exiting the reader. The Android Expo module now aligns with behaviour already provided through the inner SDK on iOS.

Published package includes bundled Android AARs and iOS XCFrameworks

Packaging and integration simplification

Consuming applications should use the scoped npm package and no longer need separate NovarumDX native dependency repository configuration for the published package.

Explicit package exports and generated version metadata alignment

Non-breaking package API/documentation improvement

Imports should use @novarumdx/ndx-imaging-expo; existing public NdxExpoVersion and NdxImagingCoreVersion names are preserved.

Reader view flex and partial-layout fixes

Non-breaking behaviour fix

Existing integrations should render more correctly in constrained layouts without API changes.

iOS background/resume fix

Non-breaking bug fix

No API change required; lifecycle behaviour is improved automatically.

End-of-scan freeze reduction

Non-breaking bug fix

No API change required; scan completion should feel more responsive.

5. When to Upgrade

Upgrade from v3.0.2 when your application needs current Expo SDK support, when you are adopting or validating the React Native new architecture, or when you have encountered any of the known v3-era issues around lifecycle resume behaviour, flex layout handling, partial-screen rendering, or end-of-scan UI freezing.

  • Especially recommended for: teams moving to Expo SDK 56, teams embedding the reader inside non-full-screen layouts, and teams affected by lifecycle, layout, or scan-completion reliability issues.

  • Plan a controlled upgrade if: your integration still uses older reader JSON formats, or your mobile app stack is still pinned to the earlier Expo 52-era assumptions documented for v3.0.0 / v3.0.2.

6. Compatibility Notes

  • The SDK remains a private npm package: @novarumdx/ndx-imaging-expo.

  • The bridge continues to depend on supported native Android and iOS Reader SDK packages beneath the Expo module.

  • The package is intended for Expo / React Native host applications, not for direct standalone end-user use.

  • The SDK performs no network communication; upload, storage, workflow, and result presentation remain the responsibility of the host application.

  • For the Expo SDK 56 line with the latest bundled native SDK dependencies, the supported minimum platform versions are Android SDK 26+ and iOS 16.4+.

Practical upgrade guidance: treat this as a platform-line upgrade rather than a small patch. Update the package, verify reader JSON compatibility, rebuild native projects, and regression test scanning flows on both iOS and Android.

7. Summary of Developer Actions

Area

Action required

Package dependency

Update the application dependency to the v4.0.1 release of @novarumdx/ndx-imaging-expo and use the scoped package name in application imports.

Expo baseline

Validate the host application against the Expo SDK 56 generation and the corresponding React Native runtime.

Native dependency setup

For published-package consumers, rely on the bundled Android AARs and iOS XCFrameworks rather than adding separate NovarumDX native repository configuration.

Reader files

Confirm that Novarum-provided reader JSON files use the current {estimators: [ wrapper format.

Keep-awake behaviour

On physical release builds, verify that the screen stays awake while the reader is visible and that normal dimming / auto-lock resumes after exiting the reader.

Lifecycle testing

Regression test app background/resume behaviour on iOS during an active reader session.

Layout testing

Regression test full-screen, flex, and partial-screen reader layouts on both platforms, especially Android embedded-container scenarios.

Performance testing

Verify scan completion responsiveness and confirm that end-of-scan freezing is no longer observed on representative Android devices.

Callback validation

Confirm expected behaviour of onFrameCaptured, onComplete, onAbort, version exports, and any TypeScript model consumption in the host app.

8. Versioning Summary

Component

Version

Notes

Expo React Native Reader SDK

4.0.1

Current release described by this draft note.

Previous Expo baseline

3.0.2

This document summarises changes from the v3.0.2 external Expo release.

Package name

@novarumdx/ndx-imaging-expo

Private npm package distributed through the Novarum client npm path.

9. Known Issues

No additional Expo-specific known issues are listed in this draft note beyond normal release verification activity. Final release publication should confirm whether any verifying items remain open at release sign-off.