RFID Retail
A luxury jewellery retail group in East Africa (confidential client) needed its showroom staff to identify pieces without hunting through stock records. We built an Android tablet app that reads RFID-tagged jewellery through handheld readers and puts each piece's specification and certificate details on screen.
The Challenge.
In the client's showrooms, every piece had to be matched by hand against stock records, certificates and price lists while the customer waited. That slowed consultations down at exactly the moment a sale was being made, and invited mismatches.
High-value jewellery leaves no room for error. A wrong certificate or price shown to a customer is a trust problem, not a typo. The client wanted the physical piece and its digital record linked, so staff no longer had to cross-reference.
The app also had to cope with real hardware: Bluetooth RFID readers that pick up several tags at once, and large, high-resolution product images that had to load quickly over showroom networks.
Our Approach.
We wrote a native Kotlin bridge between Flutter and the RFID reader's Android SDK, covering Bluetooth connection, reader configuration and battery monitoring, so the tablet app controls the hardware directly.
Scans run through a sequential pipeline with multi-layer de-duplication. When several tags are read at once, each piece is looked up once, in order.
Images load in stages: specification and certificate data appear first, then high-resolution images follow, with a seven-day disk cache for repeat views. Over-the-air code updates let us ship fixes to every tablet without waiting for a store release.
The Solution.
On the showroom floor, a salesperson scans a piece with a handheld reader and the tablet brings up its full record.
The product view is built for consultations: specifications such as carat weight, cut, colour and clarity, certificate details and product imagery, laid out so the salesperson can talk the customer through each piece.
Staff can add scanned pieces to a sales cart, adjust quantities and choose a payment method during the conversation, preparing the purchase at the tablet rather than sending the customer to a counter.
Phase 1, RFID sales assistance, is live in the client's stores. The checkout interface is built; connecting it to the client's checkout API is the next step, so full transactions are not yet processed in-app.
The Results.
RFID sales assistance is in use in 20+ of the client's showrooms, running on Android tablets paired with handheld Bluetooth RFID readers.
A Kotlin bridge connects Flutter to the reader SDK over Bluetooth, including reader configuration and battery status, without a separate native app.
Sequential processing and multi-layer de-duplication stop simultaneous tag reads from triggering duplicate requests or race conditions in the app.
Specifications appear first and high-resolution images load after, with a seven-day cache so repeat views open without re-downloading.