Open Source / Flutter Plugin

rfid_kit: Zebra RFID for Flutter

I open-sourced the hardware layer of a production warehouse app as a Flutter plugin on pub.dev: Zebra RFID readers, RFID label printers and barcode scanners behind one clean Dart API.

  • RFID inventory and Geiger-counter locate across several tags at once
  • Close-range confirm mode that tells the right bin from its neighbour
  • One shared reader session with a recovery cooldown after a failed connect
FlutterDartKotlinPlatform ChannelsZebra RFID API3+3
Admin dashboard — rfid_kit: Zebra RFID for Flutter, Open Source / Flutter Plugin built with Flutter and Dart by Ayan ParvaizApp preview — rfid_kit: Zebra RFID for Flutter, Open Source / Flutter Plugin built with Flutter and Dart by Ayan ParvaizWeb dashboard — rfid_kit: Zebra RFID for Flutter, Open Source / Flutter Plugin built with Flutter and Dart by Ayan Parvaiz
Open Source · 2026

Project Overview

Every Flutter team shipping on Zebra handhelds rebuilds the same native bridge, then spends weeks learning the SDK's failure modes in the field. rfid_kit packages the device layer I built and hardened for a production warehouse app: vendor-neutral RfidReader and LabelPrinter interfaces, Kotlin bridges to the Zebra RFID API3 and Link-OS SDKs, and the behaviour that took real field failures to get right. It ships with a demo app, unit tests and full setup documentation.

Requirements & Features

  • RFID inventory and Geiger-counter locate across several tags at once
  • Close-range confirm mode that tells the right bin from its neighbour
  • One shared reader session with a recovery cooldown after a failed connect
  • Zebra printers over Wi-Fi, Bluetooth and BLE, with automatic pairing
  • RFID encode + print, raw ZPL and printer calibration
  • Hardware scan trigger (DataWedge) streamed straight into Flutter
  • Native crash guard that keeps the app alive when the Zebra SDK throws
  • Built-in simulator reader and printer for ordinary phones, emulators and tests

Challenges I Solved

  • Readers that stopped answering after open/close churn: one shared session, plus a 30 s cooldown after a failed connect
  • A locate meter that read 100% beside the wrong pallet: in-reader EPC filtering, lower transmit power and a median-smoothed dBm window measured in the field
  • Zebra SDK threads crashing the whole app: an opt-in crash guard that records the trace and lets the vendor thread die alone
  • Proprietary SDKs in an open-source package: the plugin compiles against the app's own copy and stops the build with clear setup steps when it is missing
  • Flutter's move to built-in Kotlin: one Gradle script that builds on both Flutter 3.35 (AGP 8) and Flutter 3.44 (AGP 9)

What I Delivered

A published Flutter plugin (Dart API + Kotlin bridges), a demo app, unit tests and setup documentation, released under the MIT license.

Results

  • Published on pub.dev with 160/160 pub points
  • Behaviour field-tested on Zebra TC22R handhelds and ZT411 printers in a production warehouse
  • Builds on Flutter 3.35 and 3.44, including minified release builds
  • 25 unit tests covering the reader session, device selection and printer errors

Technology Stack

FlutterDartKotlinPlatform ChannelsZebra RFID API3Link-OS SDKDataWedgeGradle
Client
Open source (MIT)
Completed
2026
Platform
iOS & Android
Duration
Extracted from a 4-month production build

Want something like rfid_kit: Zebra RFID for Flutter?

I scope in 48 hours and ship in weeks — not quarters. Tell me what you're building.

More case studies