SMART LOTTO Dev Log #5 — Two User Reviews That Built Two Features

Learning to Read Reviews
After an app launches, reviews start accumulating. Most are just star ratings. But occasionally someone writes something specific.
Two reviews stood out. Both were feature requests. Both became updates.
First Review: Excluded Numbers
The number generator already had a fixed number feature: numbers you designate will always appear in the generated result. "I always want 7 in my set."
The review said:
"It would be great to also set numbers that should never appear in the result."
Obvious in retrospect — the inverse of a fixed number. An excluded number. I had somehow not built it.
Implementation was straightforward: add an exclusion filter to the generation logic.
var candidates = Array(1...45)
.filter { !excludedNumbers.contains($0) }
.filter { !fixedNumbers.contains($0) }
The more careful part: preventing fixed and excluded numbers from overlapping. If 7 is fixed, it can't also be excluded — and vice versa. Managing that constraint in the UI state required more attention than the algorithm itself.
Second Review: Tail Digits
I had to search for what this meant.
A tail digit (끝수) is the units digit of a number. 3, 13, 23, 33, 43 all share the tail digit 3. Some experienced lottery players use tail digit patterns as an additional filter: "I want exactly two numbers ending in 3, and none ending in 0."
The feature: UI to select 0–9 for each tail digit and specify how many numbers in the generated set should have that digit. Generation filters candidates accordingly.
The logic was not complex. What required more thought was making the UI self-explanatory — this is a concept many users wouldn't be familiar with.
What These Two Reviews Taught
Developers build from their own perspective. They build the features they can see.
Users see the app differently. They find the gap between what exists and what they needed. A fixed-number feature immediately implies an excluded-number feature — but only if you've already decided you want one and noticed the absence.
I didn't know what a tail digit was, so it couldn't have been in my original plan.
Reading app reviews is one of the highest-value activities a solo developer can do. Both of these features came directly from people who used the app and took the time to describe what was missing. That's a research process that no amount of solo planning replaces.
Next: two and a half years of silence, and the bug I found when I came back.