Vibe coding an iPhone app
tl;dr: I created a tiny iOS app to solve the "what the heck is this 150 rupee UPI payment I made to (who the heck is) Ramesh V?!" problem, but it didn't solve it.
Problem: The bank statement shows UPI payments but it isn't clear what the payment was for. The UPI app shows a "transaction note" field but that's at a transaction, i.e., per transaction. I can't search for one, can't categorise (unless the note itself is category, and even then it could be multiple categories/tags) and can't de-duplicate (merchants have more than one QR).
So, I thought I'd just make an iOS app that I could talk to. It'd listen for the amount, then the purpose and open the camera to scan the merchant's QR and open BHIM with the bhim:// scheme.
That worked quite nicely with Claude and Gemini helping me build the app. My local GPT-OSS 20B just wouldn't check the latest Apple Developer documentation in spite of my entreaties to use the web search tool.
Anyway, the thing worked beautifully.
I open the app and
- it starts listening,
- once it hears a number (and silence), it fills the amount text box with it,
- gives me a tiny haptic feedback and switches to the purpose/person textbox and starts listening,
- fills in whatever I say (with silence marking the end), and
- enables the scan QR button,
- at this point, it waits; this lets me make any corrections manually or using speech,
- once satisfied, I tap the scan QR button and it opens camera and looks for a UPI QR,
- after a successful scan, it adds the
amandtnfields with the amount and purpose/person text and creates a deep-link to BHIM, - tapping that opens the BHIM app directly on to the pay screen because BHIM supports face ID.
- I just have to tap the pay button and it starts the payflow using face ID and needs no other taps.
Perfect. Just one hitch though. NPCI's guidelines ask to block intent calls for static QRs! I remembered this too late and none of the merchant QR payments worked.
I could probably modify the app to create a QR instead, send it to the watch to display it there and use BHIM to scan it but that's just overkill, what with a watch app just for this, manually opening BHIM and all.
Also, I don't like that Apple expects poor developers to cough up $99 a year to build apps even to scratch a very personal itch! Otherwise, it needs a rebuild and deploy to the phone and watch every 7 days. ** rolls eyes **
And the worst bit, while the purpose/person text is in the app at a transaction level, it's not in the exported data. So, I'd have to rely on the fragile amount value and date (there's no time in the statement) to identify payments. ** eyes attempt to roll away from sockets **
So, I gave up. It was fun nevertheless to vibe code an iPhone app.
Published .
Last edited 7 hours, 23 minutes ago.