Scanbot SDK has been acquired by Apryse! Learn more

Learn more
Skip to content

Kotlin Multiplatform Barcode Scanner SDK

The Scanbot Kotlin Multiplatform Barcode Scanner SDK adds real-time 1D and 2D barcode scanning to Android and iOS apps built from a shared Kotlin codebase.

Trusted by 400+ global
industry leaders

Thalia Logo Logo United Airlines blue Volvo Customer Shiseido Customer Procter & Gamble Customer Generali Success Story Deutsche Telekom Case Study Deutsche Bahn Success Story AXA Success Story ArcBest Customer Thalia Logo Logo United Airlines blue Volvo Customer Shiseido Customer Procter & Gamble Customer Generali Success Story Deutsche Telekom Case Study Deutsche Bahn Success Story AXA Success Story ArcBest Customer
Mobile screen showing Flutter Barcode Scanner SDK in action, scanning product barcodes.

Real-time AR feedback

Deliver real-time AR feedback during barcode scans, enhancing the user experience in your Kotlin Multiplatform apps. Visual cues guide users to faster and more accurate scans.

Barcode scanning on a mobile phone. JavaScript Barcode Scanner SDK scanning a shipping label.

Barcode scanning in challenging conditions

The Kotlin Multiplatform Barcode Scanner SDK is optimized for reliable performance even in challenging environments:

  • Damaged barcodes
  • Low-light environments
  • Tiny or distant barcodes

Customizable UI components

Our Ready-To-Use UI components cover all barcode scanning scenarios and are highly customizable. Learn more

Fast.
Very fast.
Every scan happens in 0.04s or less

Scans all major barcode types Code 39 Code 93 Code 32 Code 25 EAN-5 PDF417 GS1 DataBar Code 39 Code 93 Code 32 Code 25 EAN-5 PDF417 GS1 DataBar EAN-13 MSI Plessey EAN-2 Aztec Code rMQR Code Codabar UPC-A EAN-13 MSI Plessey EAN-2 Aztec Code rMQR Code Codabar UPC-A EAN-8 ISBN GiroCode GS1-128 Data Matrix IATA 2 of 5 EAN-8 ISBN GiroCode GS1-128 Data Matrix IATA 2 of 5 Code 128 Code 11 QR Code UPC-E Micro QR Code MaxiCode Code 128 Code 11 QR Code UPC-E Micro QR Code MaxiCode

Add a fast and reliable Kotlin Multiplatform Barcode Scanner to your app

The Scanbot Kotlin Multiplatform Barcode Scanner SDK brings fast, reliable barcode scanning to cross-platform apps. Built for Kotlin Multiplatform and Compose Multiplatform, it lets you share code across Android and iOS while giving you the flexibility to use shared UI or platform-specific interfaces.

The SDK scans barcodes in 0.04 seconds and supports a wide range of symbologies, including QR Code, PDF417, and UPC. You can also scan barcodes from still images and filter results by barcode type or content, with regex support.

Its Ready-To-Use UI Components make integration quick, delivering both pre-built scanning modes for common use cases and customization options to match your app’s design. Features like user guidance, AR overlays, and audio and haptic feedback make the scanner intuitive for any user, regardless of technical experience.

Prefer full control? The SDK’s Custom UI Components let you build a completely customized scanning experience.

All data is processed and stored entirely on the end user’s device. Nothing is ever transferred to our servers or any cloud service. The SDK operates 100% offline, ensuring uninterrupted workflows.

Technical requirements

The Scanbot Kotlin Multiplatform Barcode Scanner SDK requires Android 8.0 (API Level 26) or higher, iOS 13 or higher, and a device with a rear-facing camera with autofocus.

  • Developer Tools
    • For Android apps: Android SDK (API Level 26+), Platforms and Developer Tools and Java SDK 17+
    • For iOS apps: macOS X with latest Xcode and Command Line Tools
  • Hardware: Rear-facing camera with autofocus
  • Supported Architectures:
    • Android: armeabi-v7a, arm64-v8a, x86, and x86_64
    • iOS: arm64
    • iOS Simulator: arm64
  • Platforms:
    • Android 8.0 (API Level 26) and higher
    • iOS 13 and higher

Integrate this afternoon
with

Features

Discover common Kotlin Multiplatform Barcode Scanning use cases

See how the scan modes of the Scanbot Kotlin Barcode Scanner SDK can improve your workflows.

  • Single Scanning

    Single Scanning mode captures one barcode at a time. This mode is ideal for simple tasks such as re-ordering a product or looking up stock. An optional confirmation sheet lets users verify the scanned value before submitting.

  • Batch Scanning

  • Multi Scanning

  • Find & Pick

  • Scan & Count

Single Barcode Scanning SDK Batch Barcode Scanning Multi Barcode Scanner Find & Pick Barcode Scanner Scan & Count

How to integrate the Scanbot Kotlin Multiplatform Barcode Scanner using RTU UI

To integrate the Scanbot Kotlin Multiplatform Barcode Scanner SDK, add the SDK dependencies to your project, initialize the SDK with your license key, and launch a scanning mode via the Ready-To-Use UI.

 

Adding the RTU UI dependency

 

The RTU UI components are included in the main SDK bundle package kmp-barcode-sdk.

 

Add it as a dependency to your project:

​

implementation("io.scanbot:kmp-barcode-sdk:$scanbotSDK");

 

Launching the RTU UI Barcode Scanner:

 

@Composable
fun BarcodeScannerExample() {
    // Initialize the SDK:
    LaunchedEffect(Unit) {
        ScanbotSDK.initialize(
            SdkConfiguration(
                licenseKey = "" // add your license key here
            )
        )
    }

    Button(onClick = {
        // Create the configuration:
        val config = BarcodeScannerScreenConfiguration().apply {
            // TODO: configure as needed
        }

        // Launch the barcode scanner:
        ScanbotSDK.barcode.startScanner(
            configuration = config, onResult = { result ->
                result.onSuccess { scanResult ->
                    // Barcode Scanner result callback:
                    // Get the first scanned barcode from the result object...
                    val barcodeItem = scanResult.items.firstOrNull()
                    // ... and process the result as needed, for example, print to console:
                    println("Scanned: ${barcodeItem?.barcode?.text} (${barcodeItem?.barcode?.format})")
                }.onFailure { error ->
                    // Optional failure handling to understand why scanner result is not provided
                    when (error) {
                        is InvalidLicenseError -> {
                            // Indicates that the Scanbot SDK license is invalid
                        }

                        else -> {
                            // Handle other errors
                        }
                    }
                }
            })
    }) {
        Text("Start Barcode Scanner")
    }
}

Frequently Asked Questions

How can I try the Scanbot Kotlin Barcode Scanner SDK?

You can test the SDK immediately without a license, with scanning sessions limited to 60 seconds. For full testing, request a free 7-day trial license – no strings attached. Licensing is a flat annual fee with unlimited scans and full support included.

Does the Scanbot Kotlin Barcode Scanner SDK work offline?

Yes, the SDK works 100% offline and contains no networking code. All data is processed and stored on the end user's device and never transferred to Scanbot servers or any cloud service.

What is the best way to add barcode scanning to a Kotlin Multiplatform app?

The best approach to adding barcode scanning to a KMP app depends on whether you want maximum control over the implementation or the fastest path to a production-ready scanner.

If you use platform-native frameworks such as Google ML Kit on Android and Apple Vision on iOS, you need to implement and maintain the platform-specific integrations yourself. In a Kotlin Multiplatform project, this typically means separate Android and iOS implementations, connected through expect/actual declarations or an abstraction layer. You will also need to build the camera and scanning UI.

If you prefer a shared implementation, the Scanbot Kotlin Multiplatform Barcode Scanner SDK provides a unified Kotlin API for Android and iOS. It also includes Ready-To-Use UI components, so you can add a complete barcode-scanning workflow with less platform-specific code.

Can I use Google ML Kit for barcode scanning in Kotlin Multiplatform?

Yes. Google ML Kit can be used in a Kotlin Multiplatform app, but it is not available as a single shared KMP barcode-scanning library.

You need to integrate the native ML Kit SDK separately on each platform: typically with CameraX on Android and the iOS ML Kit package through CocoaPods or Swift Package Manager. Then, expose the functionality to shared Kotlin code through expect/actual implementations or your own platform abstraction. You are also responsible for implementing the camera preview, scan feedback, permissions, lifecycle handling, and result UI.

If you want to avoid maintaining two native integrations and a custom scanner interface, the Scanbot Kotlin Multiplatform Barcode Scanner SDK offers one shared Kotlin API and ready-made scanner UI for both Android and iOS.