An open API service indexing awesome lists of open source software.

https://github.com/ismai117/KScan

Compose Multiplatform Barcode Scanning
https://github.com/ismai117/KScan

Last synced: 3 months ago
JSON representation

Compose Multiplatform Barcode Scanning

Awesome Lists containing this project

README

        

[![official project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Build Multiplatform project](https://github.com/KevinnZou/compose-multiplatform-library-template/actions/workflows/build.yml/badge.svg)](https://github.com/KevinnZou/compose-multiplatform-library-template/actions/workflows/build.yml)
[![Publish Wiki](https://github.com/KevinnZou/compose-multiplatform-library-template/actions/workflows/wiki.yml/badge.svg)](https://github.com/KevinnZou/compose-multiplatform-library-template/actions/workflows/wiki.yml)
[![Latest release](https://img.shields.io/github/v/release/ismai117/KScan?color=brightgreen&label=latest%20release)](https://github.com/ismai117/KScan/releases/latest)
[![Latest build](https://img.shields.io/github/v/release/ismai117/KScan?color=orange&include_prereleases&label=latest%20build)](https://github.com/ismai117/KScan/releases)



KScan


Compose Multiplatform Barcode Scanning Library


Platform Android
Platform iOS





android scanner
ios scanner



KScan is a Compose Multiplatform library that makes it easy to scan barcodes in your apps


To integrate KScan into your project

Add the dependency in your common module's commonMain source set


```Kotlin
implementation("io.github.ismai117:KScan:0.1.0-alpha05")
```


Android - MLKit
- Uses Google’s MLKit library for barcode scanning on Android

iOS - AVFoundation
- Utilizes Apple’s AVFoundation framework for camera setup and barcode scanning on iOS



Important: iOS requires you to add the "Privacy - Camera Usage Description" key to your Info.plist file inside xcode, you need to provide a reason for why you want to access the camera.

Basic Usage

To use KScan, simply add the ScannerView in your app like this:

```Kotlin
if (showScanner) {
ScannerView(
codeTypes = listOf(
BarcodeFormats.FORMAT_QR_CODE,
BarcodeFormats.FORMAT_EAN_13,
)
) { result ->
when (result) {
is BarcodeResult.OnSuccess -> {
println("Barcode: ${result.barcode.data}, format: ${result.barcode.format}")
}
is BarcodeResult.OnFailed -> {
println("error: ${result.exception.message}")
}
BarcodeResult.OnCanceled -> {
println("scan canceled")
}
}
}
}
```

To dismiss the scanner, you need to manage your own state, set it to false in the right places inside the ScannerView block after you handle the results

```Kotlin
if (showScanner) {
ScannerView(
codeTypes = listOf(
BarcodeFormats.FORMAT_QR_CODE,
BarcodeFormats.FORMAT_EAN_13,
)
) { result ->
when (result) {
is BarcodeResult.OnSuccess -> {
println("Barcode: ${result.barcode.data}, format: ${result.barcode.format}")
showScanner = false
}
is BarcodeResult.OnFailed -> {
println("Error: ${result.exception.message}")
showScanner = false
}
BarcodeResult.OnCanceled -> {
showScanner = false
}
}
}
}
```