Skip to content

kalinjul/EasyQRScan

Repository files navigation

EasyQRScan: Compose Multiplatform QR-Code Scanner

CI Status Maven Central Snapshot Kotlin Version Compose Version

QR-Code (or other 2D/3D-Codes, see below) Scanner for Compose Multiplatform (Android/iOS). Currently, the implementation is rather rudimentary.

Supported Compose version:

Compose version EasyQRScan Version
1.6.x 0.1.0+
1.7 0.2 - 0.3
1.8 0.4.0
1.9 0.5.0 - 0.6.x

Dependency

Add the dependency to your commonMain sourceSet (KMP) / Android dependencies (android only):

implementation("io.github.kalinjul.easyqrscan:scanner:0.6.0")

Or, for your libs.versions.toml:

[versions]
easyqrscan = "0.6.0"
[libraries]
easyqrscan = { module = "io.github.kalinjul.easyqrscan:scanner", version.ref = "easyqrscan" }

Setup Camera Permissions

Include this at root level in your AndroidManifest.xml:

<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-permission android:name="android.permission.CAMERA"/>

Add this key to the Info.plist in your xcode project: NSCameraUsageDescription and provide a description as value

Usage

The scanner is included by calling a single composable function Scanner() or ScannerWithPermissions:

// basic permission handling included:
ScannerWithPermissions(
    onScanned = { println(it); true }, // return true to disable the scanner, false to continue scanning
    types = listOf(CodeType.QR),
    cameraPosition = CameraPosition.BACK,
    enableTorch = false // toggle this to enable/disable the flashlight
)

// or, if you handle permissions yourself:
Scanner(onScanned = { println(it); true }, types = listOf(CodeType.QR))

Check out the sample app included in the repository.

Code Types

Code types supported are: Codabar, Code39, Code93, Code128, EAN8, EAN13, ITF, UPCE, Aztec, DataMatrix, PDF417, QR

Packages

No packages published

Contributors 2

  •  
  •