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
cancelOnResulttofalseto 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 |
|
|
Customization |
High |
Moderate (full-screen) to High (embedded NativeView on Flutter/RN) |
Continuous Scanning |
Yes |
Yes (set |
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. |