Mobile SDK and Cross-Platform Plugins Differences

This page helps you choose the right integration approach when using the Anyline Mobile SDK with a cross-platform framework (Flutter, Cordova, React Native). For native Android, iOS, or .NET development, use the Mobile SDK directly.

Anyline Mobile SDK (Android, iOS, .NET)

The Mobile SDKs give you full native control over the scan view, camera, and scanning lifecycle. This requires familiarity with the native development environment but offers maximum flexibility for custom scanning workflows.

Anyline Cross-Platform Plugins (Flutter, Cordova, React Native)

Each cross-platform plugin ships with two APIs: the Infinity Plugin (current) and the Legacy Plugin (deprecated). Both are included in the same package.

Infinity Plugin API

The Infinity Plugin provides a session-based scanning interface with results delivered via an event stream. It supports two presentation modes:

  • Full-screen mode: The plugin presents the scan view as an Activity (Android) or ViewController (iOS). Available on Flutter, React Native, and Cordova.

  • Embedded NativeView mode: The scan view is embedded as a native widget within your own UI layout. Available on Flutter and React Native only.

Key capabilities:

  • Continuous scanning: Set cancelOnResult to false to receive multiple results per session.

  • Scan switching: Change the scan configuration mid-session without stopping the camera.

  • User Corrected Results (UCR): Submit corrections for scan results back to Anyline.

  • Cached events export: Export scan event logs as a ZIP archive.

  • UI Feedback configuration: Configure interactive visual feedback elements in the scan overlay.

  • Platform-specific options: Pass native platform options through the cross-platform layer.

Configuration is done via a ScanViewConfig JSON string, requiring no native development knowledge.

For details, see the Infinity Plugin documentation for Flutter, React Native, or Cordova.

Legacy Plugin API (deprecated)

The Legacy Plugin uses a simpler callback model: scanning starts, runs until a result is found (or the user cancels), and returns control to the app via onResult or onError. It does not support continuous scanning, scan switching, or UCR. The Legacy Plugin is maintained for backwards compatibility with existing integrations; new projects should use the Infinity Plugin.

The Legacy Plugin and the Infinity Plugin cannot be used simultaneously in the same application.

Comparison

Feature Mobile SDK (Direct Integration) Infinity Plugin (Cross-Platform)

Availability

  • Android (native)

  • iOS (native)

  • .NET Android

  • .NET iOS

  • Flutter (Android & iOS)

  • React Native (Android & iOS)

  • Cordova (Android & iOS)

Customization

High

Moderate (full-screen) to High (embedded NativeView on Flutter/RN)

Continuous Scanning

Yes

Yes (set cancelOnResult to false)

Scan Switching

Yes

Yes

UCR Reporting

Yes

Yes

Embedded Scan View

Yes (native UI)

Flutter and React Native only (via NativeView)

Integration Effort

Moderate

Low

Get help

If there is anything you are missing, you require support, or want to provide us with feedback, please reach out to us via https://support.anyline.com, where you either may find helpful information in our Knowledge Base or you can open a Support Ticket for more specific inquiries.

In order to better assist you, please include any code of your Anyline integration and any ScanViewConfig you are using.