VoiceCal
Voicecal is an iOS calculator where voice and keypad are one hybrid input, not two modes: dictate part of an equation, tap a key to fix something in the middle, and keep dictating without restarting the mic. I designed it in Figma, wrote the product spec, and directed Claude Code to build it with the Figma file as the source of truth.
Existing voice calculators usually make you choose between speaking the whole equation, or type it. A mishearing means starting again, and speech recognition mishears numbers all the time, so a calculator you can't correct mid-sentence loses trust fast.
I built Voicecal for three reasons. I was frustrated by voice calculators that punish every mishearing. I wanted something I could use when my hands are busy, talking through most of a sum and tapping a key for the rest. And I wanted to prove I could take my own design all the way to a working native app.
iOS
Figma
Claude Code
SwitftUI

Research
I reviewed five iOS calculators with voice input, using their App Store listings, and found the same pattern: voice is an add-on to a manual calculator, not part of one continuous input flow. The apps are Simple Voice Calculator, Voice Calculator, Voice Calculator AI, The Talking Calculator, VoiceCalc. Most rely heavily on one mode of operation which is the flaw I am trying to correct.
Two takeaways shaped the project. The best apps show what was heard so users can verify it before trusting it. And none of the listings describe dictating and typing into one equation at the same time, which became my gap.
Designing for imperfect input
Speech recognition will always be wrong sometimes, so the interface is built to make mistakes easy to see and fix. Voice and keypad to write , typing, backspace, tapping a token or moving the cursor never turn the mic off.
Every number and operator is its own token. Tap one to replace it by typing or speaking, tap between two to move the cursor, long-press to delete. Words the recognizer may still revise show in amber and turn white after a 0.8 second pause. That colour change is the feedback replacing live caption.
Holding a button ties up the thumb you need for the keypad. The mic stays on until tapped again, and the keypad never disables. It stops after 10 seconds without activity (configurable) and always after 3 minutes. A ring drains around the mic key for the last 3 seconds, and any word or tap resets it.


Working with Claude Code
This was a designer directing an AI engineer, with the Figma design file as the source of truth. The split was clear.
I designed the interface in Figma: keypad, display, default and mic-active states, the button component set, and the orb. I defined the product specification and application behaviour. I specified major product decision such as visual states of input tokens, replacing live caption with the glowing orb, three-decimal rounding and which spoken words trigger which actions
I reviewed each build, made prototype recordings to guide Claude Code , and renamed Figma layers so design and code shared same vocabulary. I tested the app on mobile, had couple of issues initially picking of my African Accent which was later fixed by utilitzing Apple's servers for optimization.
Claude Code wrote all the Swift, the tests and the Metal shader, read the Figma file directly (layout, variables, component variants, layer geometry, prototype transitions) instead of working from screenshots. It ran builds and tests in the iOS Simulator, captured a screenshot for each step, and managed git, pull requests and merges.
the Outcome
Voicecal works end to end on my iPhone: dictate, tap to correct mid-sentence, keep dictating, and hear the answer in a voice I choose. Speech recognition is right about 80% of the time. The misses are exactly the cases the token interface was built for, which is why correction is a core feature and not an edge case.
There is no Testflight app yet, it needs a paid Apple Developer Program membership, a release version of Xcode and an App Store Connect record. The icon, privacy manifest, export-compliance flag, upload script and a step-by-step guide are ready.
Choosing tokens over a string is what made mixed voice and typing possible at all. I continue to explore the amazing world of design and engineering, exploring my strengths in design and leveraging on Claude for engineering to build new exciting ideas and products.
See More Projects

