
QR apps usually die as camera demos. QR Scanner Pro is built as something you can rebrand and ship: scan and generate across the payloads people actually need, keep history locally, and export without jumping through three other apps.
Beyond the viewfinder
Real-time scanning with camera and gallery. Generation for URLs, contacts, Wi‑Fi, crypto addresses, and free text. Customization with styling, templates, and a designer flow. History, favorites, and detail screens backed by Hive.
That’s table stakes. The product depth is in the ops screens.
Batch and export
Events, inventory stickers, classroom materials, and shop menus need more than one QR at a time.
- Batch generation from structured input
- Batch scanning into history
- CSV import for bulk create
- CSV and PDF export for handoff
ExportService and CSVImportService are boring on purpose. Boring is what agencies and indie publishers pay for when they white-label a utility.
App lock is not optional chrome
Scan history can hold Wi‑Fi passwords, payment addresses, door codes, private URLs. Treating that like a photo gallery is a product bug.
AppLockService supports:
- PIN stored hashed in Hive
- Biometrics via
local_authwhen available - Failed-attempt tracking and temporary lockout
- Unlock gating around the sensitive surface
It’s not a full MDM story. It’s the minimum respect for “someone handed me their phone.”
Starter economics
AdMob and Google Play Billing hooks, remote config, analytics, and settings are already wired into launch flow — so the hard part of publishing a utility (monetization plumbing) isn’t a blank page.
Targets include Android and iOS; the repo is structured for broader Flutter targets where the plugins allow.
What I’d still harden
Store listing honesty about which platforms are production-QA’d. Biometric UX differs enough across OEMs that lock flows need device-matrix testing. Batch PDF layout will always need edge-case polish for long payloads.
Bet: utilities win on workflow completeness, not on a prettier reticule.
If you’re shipping a “simple” tool: ship the batch screen and the lock screen, or you’re shipping a demo.
More writing
Other notes from the archive.

Building Lexora: A Privacy-First Writing Keyboard That Works Offline
Lexora is an Android keyboard that helps people improve spelling, grammar, clarity, and tone wherever they write. Here is how I built its on-device writing engine, custom keyboard, and fast Android integration without sending text to a server.
Oct 2026 · 7 min read

Building iDraw: A Flutter Drawing App With Lessons, a Studio, and an AI Coach
iDraw is a Flutter app I’m building to help people learn to draw — guided lessons, a freehand studio, progress tracking, and an AI coach powered by Google Gemini. Here’s the product brief and the tech behind the strokes.
Sep 2026 · 5 min read

Building a scripting language for hardware panels
Rushabh's lab instruments speak in fixed-width serial strings, and every new panel meant another hardcoded Android screen. So I built a language instead: a lexer, a typed statement tree, an expression evaluator, and buttons you place on a photograph of the machine.
Aug 2026 · 7 min read
Discussion
Questions or notes. Comments live on GitHub Discussions.