I work on FightNome, so this post is about our own app.
FightNome is a pad-work trainer for boxing, Muay Thai, kickboxing and MMA. A recorded voice calls strikes on the beat of the music and you throw them. The whole idea only works if your eyes stay on the bag or the pads, so the phone is meant to sit in a pocket or a waistband for the entire round. That puts the app in an odd spot as a design problem. Most of the time the main screen has no audience at all.
I've written before about timing the voice files and about the combo editor. This one is about everything around the round itself.
Before the bell: show the whole plan
If you can't glance at the phone mid-round, you need to know what's coming before you start. So the workout screen lays out the full plan before you press play: every
section, every round, every rest, in order. A workout is sections (striking or conditioning) made of rounds, and the conditioning parts are rope, shadow work and bodyweight between the striking rounds.
That screen gets the attention the in-round screen doesn't. People read it once with gloves still off, and after that they listen.
During the round: the screen still exists
There is an active-session screen. It shows the round counter, time left, the called combination as strike tiles and a timeline of the tempo. It's there for the moment when someone does pull the phone out, between rounds or to check how long is left. I don't treat it as the main interface, though. If a session only feels right while you're watching the tiles light up, the audio side has failed.
Controls you can reach without the screen
The controls that matter during a round have to work with the phone out of sight:
- play and pause from the headphone remote,
- a lock-screen card, so a quick look doesn't mean unlocking,
- workout alarms, where the phone rings at the set time with a short recorded coach line and one tap starts that workout.
The alarm uses AlarmKit on iOS 26. Its permission text says the alarm appears on screen even if a Focus is active, which is the reason we picked it over a regular notification for this.
The voice carries the information
Because the screen is out of the loop, everything you need mid-round has to be in the audio. Every strike is a recorded word, and the words are chosen per strike in the editor, so a gym that says "two" and a gym that says "cross" can both get what they're used to. The session ends with a spoken line too ("Breathe. You've earned this."), so you know you're done without checking.
The stats come after, when you're back to looking at the phone: streak, rank, volume over time, personal records and how many calls you answered in that session. History syncs privately through iCloud. There's no account and no server of ours in between.
What I'm still unsure about
The hardest part is deciding what to say out loud and what to leave on screen. Time left in a round is a good example. Saying it often gets annoying fast, and never saying it makes people pull the phone out, which defeats the point. If you've built anything that's used eyes-free, like a running app, a cooking timer or something for cyclists, I'd like to know how you decided what the voice says and what it leaves out.
If you want to try it
FightNome is on the App Store (iOS 26 and up) and Google Play. It's a paid subscription, and only the yearly plan has a 3-day trial. More at https://fightnome.app.
I used AI assistance to draft this post and edited it myself.



