Engine comparison

TRAKWIND Scan vs Google ML Kit

ML Kit is Google’s on-device machine-learning kit, and its barcode module reads 13 formats. TRAKWIND Scan is the barcode engine we wrote ourselves, and it reads those same 13 plus 13 more — the DataBar sticker on a tray of mince, the bullseye on a UPS label, the Micro QR on a circuit board.

13
formats ML Kit reads
26
formats TRAKWIND Scan reads
0
bytes either one sends off the phone

A comparison of what the two engines read and how each is built. Where we claim a measured difference, the measurement is published with the handsets, versions and conditions it was taken under — and where we have not measured something, we do not assert it.

What each one is

Google ML Kit

A general-purpose on-device machine-learning kit from Google, in which barcode scanning is one module among many rather than the point of the library. It is free, and it runs on the device rather than in a datacentre.

It ships two ways. The bundled variant compiles the model into your app and adds a few megabytes to it. The unbundled variant keeps the app small by fetching the model through Google Play Services on first use, which means it needs Play Services present and a network connection the first time it runs.

TRAKWIND Scan

A barcode and QR decoding engine and nothing else. No borrowed decoder and no third-party scanning SDK underneath it — we wrote it and we maintain it, which is the whole reason the format list looks different.

It runs entirely on the phone with no Play Services dependency and no model to download, and the core is portable: the same decoder is what we offer as an SDK for Android, for iOS and, through WebAssembly, for the browser.

The actual difference

Format coverage, one by one

This is where the two engines part company, and it is the only part of the comparison that is not a matter of degree. A decoder either has the format or it does not. ML Kit reads 13; TRAKWIND Scan reads those 13 and 13 more.

The 13 only TRAKWIND Scan reads

ML Kit has no decoder for any of these. Not a setting, not a worse result — the format is not in the library.

  • The little sticker on loose apples and on a tray of mince. Carries GS1 data such as weight, batch and expiry.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • Small retail packs, where a full-height DataBar has nowhere to fit.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • Coupons, and variable-weight meat and fish, with the extra GS1 fields printed into the code itself.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • A QR too small to be a QR: a pad on a circuit board, the flank of a component.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • Long, narrow labels — a cable tag, a thin strip down the side of a module.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • The bullseye-and-honeycomb block on a UPS parcel label.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • Small labels in pharma and healthcare: a vial, a blister strip, a sample tube.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • DotCode Opt-in

    Printed at high speed on cigarette packs, pharma cartons and beverage packaging. The format behind tobacco track & trace.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • Shelf-edge labels and warehouse bin labels.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • The 4-state bars along the bottom of US mail.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • UK mail and parcel labels.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • Dutch mail.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it
  • Australian mail and parcels.

    ML Kit
    No decoder for it
    TRAKWIND Scan
    Reads it

MSI Plessey, MicroPDF417, DotCode and the 4-state postal codes are off until you switch them on under Settings → Scanning engine. They are the ones most easily misread from a label that was never meant to carry them, so they are opt-in on purpose.

The 13 both engines read

Switching engines costs you none of these. TRAKWIND Scan reads every format ML Kit reads.

What each format is, and where you meet it

Side by side

How they are built, and what that costs you

Less visible than the format list and often what decides it, particularly for a fleet of devices that has to work the same way on every handset.

How they are built, and what that costs you
What you are choosing betweenML KitTRAKWIND Scan
Barcode formats read13 26
Runs on the deviceYes — nothing is sent to a server Yes — nothing is sent to a server
Google Play Services neededFor the unbundled model, yes; the bundled variant avoids it by adding to app size No, in either case
Works on a device with no network, from first launchBundled variant yes; unbundled fetches its model on first use Yes — there is no model to fetch
GS1 fields broken out of the scanReturns the raw value; application identifiers are yours to parse Weight, batch, expiry and the rest split out in the app’s GS1 panel
Getting a new format addedGoogle’s roadmap, on Google’s schedule Our own code — tell us which format and where it is printed
AndroidYes Yes
iOSYes Yes — the same core, packaged for iPhone and iPad
In a web pageNo web build Through WebAssembly, on the visitor’s own device
When something does not scanPublic issue tracker and community forums Send us the label and talk to the people who wrote the decoder
PriceFree Free in the keyboard app, on every edition

Everything stated about ML Kit here comes from Google’s published documentation for the barcode-scanning API, not from our own testing.

In the app

What switching actually involves

If you are using the keyboard app, this is not a migration. It is a setting, and it is reversible with the same tap.

  1. 1

    Update the app

    TRAKWIND Scan is in the current version on Google Play. There is no separate download and no licence to buy.

  2. 2

    Settings → Scanning engine

    The engine is a setting. Open Settings → Scanning engine and choose TRAKWIND Scan.

  3. 3

    Switch on the formats you need

    DotCode, MSI Plessey, MicroPDF417 and the 4-state postal codes are off until you enable them, on the same screen.

  4. 4

    For a fleet, set it centrally

    The engine and the format list can be set and locked through MDM managed configuration using the keys scanEngine and trakwindReadFormats, or pushed from our cloud configuration for fleets without MDM.

Nothing downstream changes

TRAKWIND Scan replaces the decoder and only the decoder. Every scan still flows into the features you already use, unchanged:

  • Keyboard input — the value is typed into whatever field you are in
  • Scan history
  • Lookup
  • The GS1 parser and its data panel

The short version

Which one you want

ML Kit is enough if

  • Every code you scan is an EAN, UPC, Code 128, Code 39, QR, Data Matrix, PDF417 or Aztec
  • Nothing you scan is going badly enough to be worth changing a setting over

You want TRAKWIND Scan if

  • You have met a label your phone simply will not read — DataBar on chilled food, a carrier’s MaxiCode, a Micro QR on a board
  • You scan pharmacy, grocery, tobacco or postal items, where the awkward formats live
  • You need GS1 fields — batch, expiry, weight — split out rather than handed to you as one string
  • The devices cannot rely on Google Play Services, or have to work from first launch with no network
  • You need the same decoder in a web page or inside your own app

And if you are not sure, the cost of finding out is one tap in settings, and one tap back again if you were wrong.

Using it in your own software rather than our keyboard

TRAKWIND Scan is also the engine we offer as an SDK — in your own Android app, on iOS, or through WebAssembly inside a web page, where ML Kit has no build at all. Tell us which formats you have to read and where you have to read them.

Talk to us about the SDK

Questions

Frequently asked questions

Which barcode formats does Google ML Kit support?

Thirteen: EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, Code 93, Codabar, ITF, QR Code, Data Matrix, PDF417 and Aztec. It has no decoder for GS1 DataBar, Micro QR, rMQR, MaxiCode, MicroPDF417, DotCode, MSI Plessey or the 4-state postal codes.

Can ML Kit read GS1 DataBar?

No. GS1 DataBar is not among the formats ML Kit decodes, so a phone using it cannot read the DataBar stickers on chilled food, loose produce or pharmacy packs however good the camera is. TRAKWIND Scan reads DataBar Omnidirectional, Truncated, Stacked, Stacked Omnidirectional, Limited and Expanded.

Can ML Kit read DotCode?

No. DotCode — printed at high speed on cigarette packs, pharma cartons and beverage packaging, and the format behind tobacco track and trace — is not in ML Kit’s format list. TRAKWIND Scan reads it; it is off by default and switched on under Settings → Scanning engine.

Is TRAKWIND Scan faster than ML Kit?

We publish measurements rather than adjectives, and only for tests we have actually run, with the handsets, versions and conditions written down beside them. What we will say without qualification is that TRAKWIND Scan reads 13 formats ML Kit has no decoder for, which is a difference in kind rather than in speed.

Does TRAKWIND Scan need Google Play Services?

No. The engine runs entirely on the phone with no model to download and no Play Services dependency, so it works on a device from first launch with no network and on handsets where Play Services is absent or restricted. ML Kit’s unbundled model fetches itself through Play Services on first use; its bundled variant avoids that by adding the model to your app.

Do I lose any formats by choosing TRAKWIND Scan?

No. TRAKWIND Scan reads all 13 of the formats ML Kit reads, and 13 more besides. In the keyboard app the scan still flows into keyboard input, history, lookup and the GS1 parser exactly as before, and changing the engine back is the same single tap in settings.

Is TRAKWIND Scan free, like ML Kit?

In the keyboard app, yes — no licence, no extra purchase, no separate download, on every edition including Free. Using the engine as an SDK inside your own software is a commercial conversation; tell us what you are building.

Can ML Kit scan barcodes in a web page?

No. ML Kit builds for Android and iOS, and has no web build, so it cannot run inside a browser page. TRAKWIND Scan compiles to WebAssembly as well as to Android and iOS, so the same decoder reads a label in a web page on the visitor’s own device — no app to install and no round trip to a server.

Try it on the label that has been beating you

If the code you cannot scan is one of the thirteen ML Kit has no decoder for, no amount of better lighting or a steadier hand will fix it. Switch the engine and point the phone at it.