A four-year-old and an adult learning the same language need different interfaces, different pacing and different rewards. The usual answer is to ship several apps, or to pick one audience and lose the rest.
The problem
What I did
Six age modes in one product
The content is shared; the interface, the pacing and the rewards are not. It is more design work up front and it means a family buys once.
Spaced repetition as a real scheduler
Per word, not per lesson. If a word comes easily it takes longer to return; if you miss it, it comes right back. That is the difference between having seen a word and remembering it in six months.
Sentences and conjugation, not vocabulary lists
Three languages in all six directions. Recognising words is not using a language.
Pronunciation checked offline
On the device, so it works on a plane and no audio leaves the phone.
Where it ended up
Three languages plus maths, for ages from small children to adults, in a single app that works with no connection.
Built with: Swift · SwiftUI · Speech · on-device scheduling
Want something like this?
Two lines about the project is enough to start. A person reads it and a person answers.