← Back to the workbench

Learning tools

NiHao Classroom

A Mandarin learning world for young children, with sounds, pictures, and room to explore.

SwiftEducationOn-device AI

NiHao Classroom gives young children a place to explore Mandarin. I’m building it around listening, pictures, and short activities they can leave and return to. A child may be learning to read at the same time; the app has to meet them there.

The prototype is for children around six and seven. Its world map opens into 24 lessons with vocabulary, recorded sentences, and drawings that follow the rise and fall of a tone. Every lesson is open. Progress is saved along the way, and review brings familiar words back for more practice.

The app uses SwiftUI for Mac, iPad, and Apple TV. Parents on supported Mac and iPad builds can add practice sentences from the lesson’s words, using templates, an on-device model, or a cloud model. Apple TV uses the authored lessons, which also work without generation on the other platforms.

Cloud AI, speech access, and analytics each have a separate consent choice, off by default. Cloud generation also needs a parent’s saved API key. Speech and analytics are not built yet.

How it works / Explore the workflow

Listening, trying, and coming back

Lessons, pictures, and recordings come with the app. Progress stays on the device, and review brings earlier words back. Parents can request extra generated sentences. Templates are available if generation fails, and the child can use the lessons without a network connection.

Follow the middle column from the child's tap through a lesson's activities to the progress store; review takes due words from it and writes answers back. Solid orange boxes are checks. The parent area below sits outside the child's path, and failed model replies fall back to templates. Open full size ↗

Learnings

A child should be able to leave a lesson without losing the work or getting stuck on the way back. Dinner, boredom, and a more interesting sound in the next room are ordinary parts of using the app. Saving only completed lessons treats all of them as failures to finish.

That changes the shape of progress. A lesson needs to remember what happened along the way. The next visit needs somewhere to begin, and the map should leave room for curiosity. In NiHao, tying completion to dismissing a celebration could leave the next lesson locked. Saving partial work and opening the map removed a dependency that had little to do with learning Mandarin.

Sound needs similar attention to the child’s experience. A line showing a tone rise and fall has to follow the recording the child hears, including at a slower speed. Tests can check that timing and that progress survives an interruption. They cannot tell me whether a six-year-old knows where to tap or wants to return. That part still needs observation with children.

Explore the other projects →