A language learning app for Changana (Tsonga), a Bantu language spoken by around 10 million people across Mozambique and South Africa. The app covers the full CEFR range from A1 to C2, with structured units, vocabulary, grammar, pronunciation audio, a dictionary, and progress tracking. Runs on iOS, Android, and web from a single Flutter codebase.
Changana has very limited learning resources in digital form. There is no widely available app for it, and the few written materials that exist are not structured for modern self-paced learning. For Portuguese speakers with ties to Mozambique this is a genuine gap - the language is spoken in the family but rarely taught.
The curriculum is authored as structured JSON (vocabulary, exercises, grammar explanations, audio references) and bundled with the app. The Flutter frontend interprets it at runtime, so updating content does not require a code change. Progress is persisted locally with SQLite, audio is streamed via just_audio with audio_session handling for background and interruption behavior, and state is managed through Riverpod providers. The architecture separates screens, state, models, widgets, and data cleanly.
The web build is served at changana.net and the full source is public.