- Role
- Product, native Android development, design, website and release preparation.
- Platform
- Android 7.0+
- Timeline
- 2026
- Status
- Internal testing

Brand illustration, not an app screenshot. MintScan is in internal Android testing; its public website and guides are available.
Overview
A native Android QR and barcode scanner built with Kotlin and XML Views. Camera and photo decoding run on-device, supported codes can be created and shared, and a local library keeps saved results. Currently in internal Android testing.
Problem
Scanning needs a short path from camera to useful action, without unstable layout changes. MintScan keeps the camera controls inside a stable preview and separates basic scanning from advanced batch, organisation and export tools.
What I built
- Free camera and photo QR/barcode scanning, including choosing between multiple codes in an image
- All mode by default, with optional QR-only or supported linear barcode mode; torch, focus and zoom
- Nine QR creation templates and Code 128, EAN-13, EAN-8 and UPC-A barcode creation
- Standard PNG sharing, optional local history, favourites and search in Free
- Pro batch scanning up to 500 unique content/format combinations, collections, notes, tags and CSV export
- Pro predefined QR colours, optional logo, higher resolution, PDF/SVG exports and password-encrypted backup/restore; SVG is unavailable with a logo
- One-time lifetime Pro through Google Play and RevenueCat; no MintScan account or cloud library sync
Engineering
01
A stable native scanner
CameraX and the bundled ML Kit model decode on-device. XML layouts keep a proportional camera viewport and fixed control positions while result processing runs off the main thread.
02
Formats stay distinct
Multi-code images and Pro batch sessions distinguish raw content together with the format, so the same value in QR and Code 128 remains two results. Batch state is in memory rather than a process-death journal.
03
Clear data boundaries
The library stays local and is not separately encrypted; Pro backups are password-encrypted. Mandatory PostHog usage profiles and Crashlytics diagnostics are disclosed, with raw code contents and selected images excluded from app analytics.
Architecture & technology
- Kotlin
- Android XML Views
- CameraX
- ML Kit
- ZXing
- SQLite
- Coroutines
- StateFlow
- RevenueCat
- PostHog
- Firebase Crashlytics