Eight decisions shaped how Testtally feels to use. Each one starts from a learner problem and ends in a specific screen behaviour.
Decision 01Two modes with opposite feedback rules: Practice and Exam
Learners need two different things: to learn from each mistake, and to rehearse test day without help. One interface can’t do both, so I split them.
- Practice grades every answer immediately and explains it in one line, quoting the passage (“The passage says… — this is directly stated”).
- Mock exam reveals nothing until the end. It runs all four sections in order with the real timings (111 questions, about 90 minutes), and the intro screen states the rules before it starts.
- An abandoned exam is resumable from where the learner stopped (“You stopped in the Listening section”), because 90 minutes rarely happen in one sitting on a phone.
Decision 02AI feedback that teaches, not just scores
A bare “3.5/5” tells a learner nothing they can act on. Each Writing and Speaking answer comes back as a layered card: the score, a breakdown by criterion, two or three improvement tips, and an example correction of their own sentence.
For Speaking, the card also shows what the AI heard — a transcript — and the errors it detected. That lets learners judge the feedback themselves instead of trusting a black box.
Decision 03Never show a score the learner can’t trust
During testing, a silent recording — a valid audio file with no sound in it — came back from the AI model with a confident 3/5 and detailed, made-up pronunciation advice. In a learning product that is worse than an error.
I added a guard in two places: the app won’t offer “Submit” for a recording with no audio, and the server refuses to score it as well. When scoring genuinely fails, the copy is explicit that nothing was lost.
“No sound was picked up in your recording. Check your microphone and try again.”
“Your answer was saved, but scoring could not finish right now.”
Decision 04Asking for the microphone at the right moment
iOS shows its permission dialog only once. A reflexive “Don’t allow” on first launch would silently break the entire Speaking section. So the app shows its own short sheet first — “Practise out loud” — explaining why the microphone is needed and that recordings are only used for scoring, with a guilt-free “Not now”.
Declining is never a dead end. At the record button the app checks again and offers the right recovery: “Allow” when the system can still ask, “Open Settings” when only Settings can fix it. The reminder scrolls itself into view, because on long questions it appeared below the fold. Every path ends at a recording or at a clear way to get there; none ends at a broken button.
Decision 05Limits that feel fair, not punishing
The free plan allows 2 questions per section per day. Limits are where products usually feel hostile, so I designed them to be visible early and phrased the same way everywhere:
- The quota is shown on the section tile before the learner starts (“1 / 2 questions today”), with identical wording on the hub and the section screen.
- On an unlimited plan the progress bar is removed, not filled — a permanently full bar reads as “you’ve used it all up”.
- When a limit is hit, the answer is still saved, and the message links straight to the plans. The plans screen states the current plan, renewal terms and how to cancel in plain language.
Decision 06Motivation without noise
Streaks, XP levels, badges, a daily quest and a weekly leaderboard keep learners coming back. I kept them warm rather than loud:
- Rewards appear as a short celebration after an answer, never interrupting one.
- The daily quest is personal. Originally every user got the same challenge, and on some days none at all. Now each learner is assigned their own challenge on their first visit of the day, so the card is never empty.
- The leaderboard shows display names only, never emails.
Decision 07Onboarding that sets a goal, not a form
Three short steps: what the exam looks like (four sections, minutes each), then exam date, target score and current level. “Not decided yet” is a valid answer for the date, every step can be skipped, and everything is editable later from the profile. The home screen then frames the day around that goal: “41 days until your test” and a score card pointing at the target.
Decision 08Trust as a feature
Learners can delete their account from inside the app, with a clear confirmation sheet. Legal links sit next to every purchase. Small things, but they signal that the product respects the person using it.