Scans what you aim at
On a shelf full of barcodes, only the code in the window is read. No wrong picks.
17 formats · GS1 decoding
An SDK that scans barcodes and returns structured data, not raw strings you have to parse. It reads 17 formats, decodes GS1, and runs fully on-device.
Decoded elements
Sveramā prece
Bio burkāni / Carrots
0102012345678903310300075039220349
scanning · on-device
Fully offline · no per-scan fees
What it reads
All seventeen barcode formats, grouped by where you meet them. Turn on the set you expect. Anything outside it is ignored, so the scanner stays fast.
Priced products at any till, in any store.
UPC-A included. It arrives as EAN-13 with a leading zero.
Scale labels, coupons and short-dated stock.
Links, menus and payments, printed or on a screen.
Cartons, pallets, asset tags and lab tubes.
The small square that fits where nothing else does.
Driver’s licenses, boarding passes and rail tickets.
GS1 decoding
A GS1 barcode packs several facts into one string of digits. Barcode SDK splits it into named fields, with no parsing code on your side.
On the label
0102012345678903310300075039220349
The label a store scale prints for weighed goods: item, weight and price in one code.
In your app
Expiry, batch, serial and the rest come out the same way.
Every field is verified, and isValid tells you the whole label passed.
One call prints the label in readable form for logs and support tickets.
Parse strings you already hold: manual entry, imports, legacy scanners.
Why Barcode SDK
On a shelf full of barcodes, only the code in the window is read. No wrong picks.
GS1 payloads arrive as GTIN, batch, expiry and weight. No parsing on your side.
Camera frames never leave the phone. No upload, no scanning backend to secure.
Size, brackets, radius and dim are all yours to set. It looks like your app.
A fixed annual license per app. Scan a million times, the invoice stays the same.
A configuration struct, a view controller and one delegate method. That is all.
How it works
Step 1
A child view controller with your configuration. The camera starts and stops with view appearance.
Step 2
Frames are analyzed on the device, restricted to the visible scan window. Nothing is uploaded.
Step 3
Your delegate receives the format, the payload and, for GS1 carriers, a decoded document.
What a scan gives you
{
"format": "dataMatrix",
"payload": "01040123456789051726063010AB123",
"gs1": {
"gtin": "04012345678905",
"expiry": "2026-06-30",
"batch": "AB123",
"is_valid": true
}
}Privacy & control
No uploads, no scanning backend, and no vendor UI you have to live with.
Frames are read inside your app. No Scantic server, nothing to host or secure.
Size, position, brackets and dim are all yours. Scanning can stay inside the window.
Torch, zoom and pinch-to-zoom built in. Zoom 1 means the same on every device.
Camera frame
stays on the phone
Barcode SDK reads it
inside your app · in the window
A typed record
to your delegate
For developers
A thin native SDK on the system camera and vision stack. Barely a dent in app size.
Nothing else ships with it: no bundled engines, no packages to audit or keep updated.
Starts instantly and reads in real time, frame after frame. Nothing to warm up.
import BarcodeKit
var configuration = BarcodeReaderConfiguration()
configuration.formats = BarcodeFormat.retail // or .all / .oneDimensional
configuration.isGS1DecodingEnabled = true
// The scan window is yours: size, corner radius, brackets, dim.
configuration.viewfinder.widthRatio = 0.72
configuration.viewfinder.aspectRatio = 1.5
configuration.viewfinder.restrictsScanningArea = true
let scanner = BarcodeReaderViewController(withConfiguration: configuration)
scanner.delegate = self
addChild(scanner)
view.addSubview(scanner.view)
scanner.didMove(toParent: self)Pricing
Per app. Budget it once. No metering, no surprise invoices.
Unlimited scans, users and devices, on every build you ship.
No keys, no expiry dates, nothing that blocks a release mid-quarter.
We reply fast.
FAQ
See it read your label
A 20-minute live demo on your own labels, covering the scan window, GS1 decoding and how the data is handled.
Runs offline · no per-scan fees