Tiếng Việt Learning Tools
a Vietnamese learning app that takes dialect seriously
What it involved
- Mobile (iOS)
- A native SwiftUI app for iPhone.
- Speech Recognition
- Pronunciation is graded with Apple's on-device speech recognition.
- Unit Testing
- The game logic lives in a view model so XCTest can cover it.
- Dialect Audio
- The alphabet is recorded three times, North, Central (Huế) and South, by a different native speaker each.
About
A Vietnamese learning app for iOS. Most apps flatten the language into one accent; this one records the alphabet three times — North, Central (Huế) and South — with a different native speaker for each, because those regions genuinely do not sound alike and a learner who only ever hears Hanoi is unprepared for Saigon. Speaking practice grades pronunciation through Apple's on-device speech recognition, alongside a matching-pair game, phrase and sentence practice, and a bundled Vietnamese–English dictionary. Built in SwiftUI, with the game logic pulled into a view model so it could carry real XCTest coverage.
- Swift
- SwiftUI
- Speech Framework
- XCTest
- iOS
How it's tested 6 checks
the alphabet is recorded in three regional dialects
North, Central (Huế) and South, each voiced by a different native speaker, with a dialect selector wired through the app so a learner can choose the accent they actually need.
pronunciation is graded by Apple's speech recognition
Speaking practice captures the learner saying a word and checks it against on-device speech recognition — feedback on production, not just recognition.
a matching-pair game drills vocabulary
Game logic lives in its own view model, which is what makes it unit-testable rather than tangled into the view.
practice covers words, phrases and full sentences
a Vietnamese–English dictionary ships with the app
Bundled offline, so lookups work without a network round trip.
the game logic is unit-tested in XCTest
Pulling the matching-game state into its own view model is what made it testable at all, and it has real XCTest coverage — selection toggling, ordering, and match resolution — rather than the scaffolding Xcode gives you for free.