Skip to content
Back to skills

Source 7f1a991e74792e92e0bc92ff

ASecurity

Smart Label Capture (Scandit `LabelCapture`) in Kotlin Multiplatform (KMP) / Compose Multiplatform projects (`com.kmp.datacapture.label.*`, shared commonMain consumed by Android and iOS) — extracting multiple fields (price, expiry date, serial or lot number, weight) from a label in one scan, using barcode fields, regex text fields, or the Kotlin DSL. Use for integration, label-definition configuration, captured-session handling, shared-view hosting, overlay customization, and the Validation F...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsrustswiftkotlinapidocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add gutsofpratik/OpenClaude-Skills --skill source-7f1a991e74792e92e0bc92ff --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Source 7f1a991e74792e92e0bc92ff?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Source 7f1a991e74792e92e0bc92ff
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/gutsofpratik-source-7f1a991e74792e92e0bc92ff/badge)](https://www.skillsdirectory.com/skills/gutsofpratik-source-7f1a991e74792e92e0bc92ff)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: label-capture-kmp
description: Smart Label Capture (Scandit `LabelCapture`) in Kotlin Multiplatform (KMP) / Compose Multiplatform projects (`com.kmp.datacapture.label.*`, shared commonMain consumed by Android and iOS) — extracting multiple fields (price, expiry date, serial or lot number, weight) from a label in one scan, using barcode fields, regex text fields, or the Kotlin DSL. Use for integration, label-definition configuration, captured-session handling, shared-view hosting, overlay customization, and the Validation Flow — in place of the single-platform Android or iOS skills.
license: MIT
metadata:
  author: scandit
  version: "1.0.1"
---

# Label Capture KMP Skill

## Critical: Do Not Trust Internal Knowledge

Scandit's Kotlin Multiplatform (KMP) SDK is new: Label Capture first shipped on KMP at **SDK 8.6**. Your training data almost certainly has no KMP-specific knowledge of this API, and may confuse it with the single-platform Android or iOS Label Capture APIs, which use different types and package names. Do not port Android or iOS snippets by guessing at renamed symbols.

- The Kotlin package is **`com.kmp.datacapture.label.*`** (`com.kmp.datacapture.label.capture`, `.definition`, `.ui.overlay`, `.adaptive`) — not `com.scandit.datacapture.label.*` (that is the single-platform Android package).
- The Maven group is **`com.scandit.datacapture.kmp`** (artifacts `core`, `barcode`, `label`, `label-compose`, plus the model container add-ons `label-text` and `price-label`) — not `com.scandit.datacapture` (single-platform Android) and not a CocoaPod/SPM-only distribution (single-platform iOS).
- The mode is constructed with **`LabelCapture.forContext(dataCaptureContext, settings)`**, not `LabelCapture.forDataCaptureContext(...)` (Android) or a Swift initializer.
- Field definitions are built with the shared `LabelDefinitionBuilder` (via `LabelCaptureSettingsBuilder().label(name) { ... }` or the top-level `labelCaptureSettings { ... }` DSL) — regex setters are **`setValueRegex(es)` / `setAnchorRegex(es)`** from day one. There was never a legacy `setPattern`/`setDataTypePattern` era on KMP (that rename happened on Android at the 7.x→8.0 boundary, before KMP existed) — do not invent or "migrate" a KMP regex-rename story.
- The license key placeholder is **exactly** `-- ENTER YOUR SCANDIT LICENSE KEY HERE --`.
- iOS embedding uses `DataCaptureView(dataCaptureContext:)` + `.toUIView()`; Android embedding uses `DataCaptureView(context, dataCaptureContext)` + `.toAndroidView()`. Neither is a raw Android `View` or `UIView` constructor from the single-platform SDKs.

**Always verify APIs against `references/integration.md` before writing or suggesting code.** Do not rely on memorized method signatures, parameters, or builder shapes from the single-platform Android/iOS Label Capture skills. If you cannot find an API in the provided reference, fetch the relevant documentation page before responding.

## Intent Routing

Based on the user's request, read `references/integration.md` and jump to the relevant section before responding:

- **Integrating Label Capture from scratch in a KMP shared module** (e.g. "add Label Capture to my Kotlin Multiplatform app", "scan a price tag with barcode and expiry date from commonMain", "wire up Label Capture for Android and iOS from one shared module") → read **Prerequisites** and **Minimal Integration**. Interactive: don't write code before you know the label's fields — ask what's on the label first (see the field catalogue in **Label definitions & fields**).
- **Defining label structure** (fields, regex, presets, pre-built whole-label factories) → read **Label definitions & fields**. Prefer a pre-built field/factory over a hand-written regex whenever one matches — the same rule as the single-platform skills.
- **Reading captured results** (`CapturedLabel`, `LabelField`, `onSessionUpdated`, `asDate()`) → read **Handling results**.
- **Customizing overlays** (field/label brushes on the Basic Overlay, floating AR views via the Advanced Overlay, the Validation Flow, or the beta Adaptive Recognition / Receipt Scanning overlay) → read **Overlays**.
- **Building the UI with Compose Multiplatform** (`LabelCaptureView` composable, `rememberLabelCapture`, `LabelOverlayStyle`) instead of the platform-specific `DataCaptureView` hosts → read **Compose Multiplatform**.
- **Lifecycle, teardown, or "camera keeps running in the background"** → read **Lifecycle & Teardown**.
- **Troubleshooting** (crash on launch, black preview, nothing captured, Compose recomposition churn) → read **Pitfalls**.

## API Usage Policy

Only use APIs that are explicitly documented in `references/integration.md` or the linked Scandit KMP references below. Do not invent or guess method signatures, parameters, or builder shapes — and do not assume a single-platform Android/iOS Label Capture API exists unchanged on KMP; the KMP surface is a distinct `expect`/`actual` layer with its own shape (e.g. no `ApplySettingsAsync`, no `RecommendedCameraSettings` property — only `createRecommendedCameraSettings()`). If unsure whether an API exists or how it is called — or if a compile error occurs — fetch the relevant reference page before responding. Do not tell the user to check the docs themselves. After answering, always include the relevant link so the user can explore further.

**Never construct or guess documentation URLs.** When you need a specific class or property's API page:

1. First check whether the page you already fetched contains a direct hyperlink to it.
2. If no direct link was found, fetch the **Full API reference** index below, extract the actual link from it, and follow that.

URL structures can vary and guessing will lead to 404s.

## References

Direct users to the right resource based on their question:

| Topic | Resource |
|---|---|
| Basic integration | [Intro](https://docs.scandit.com/sdks/kmp/label-capture/intro/) · [Get Started](https://docs.scandit.com/sdks/kmp/label-capture/get-started/) |
| Label Definitions (fields, regex, presets) | [Label Definitions](https://docs.scandit.com/sdks/kmp/label-capture/label-definitions/) |
| Overlays (Basic / Advanced / Validation Flow / Adaptive Recognition) | `references/integration.md` · [Advanced Configurations](https://docs.scandit.com/sdks/kmp/label-capture/advanced/) |
| Compose Multiplatform | `references/integration.md` · [Core Concepts](https://docs.scandit.com/sdks/kmp/core-concepts/) |
| Core concepts (context, camera, views) | [Core Concepts](https://docs.scandit.com/sdks/kmp/core-concepts/) |

Files in this skill

  • PROVENANCE.json189 B
  • SKILL.md6.5 KB
  • UPSTREAM-LICENSE.txt11.1 KB
  • references/integration.md40.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.