Swift-only iOS app for Khmer dictionary lookup and offline usage.
- Swift 6
- SwiftUI
- GRDB + SQLite
- CryptoKit-based verification for signed dictionary updates
- XcodeGen (
project.yml) for project generation
- Xcode 17+
- iOS 26 SDK
- Open:
/Users/username/Documents/hobby/dictionary/khmerdictionary-ios/KhmerDictionary.xcodeproj - Select scheme:
KhmerDictionary - Run on an iPhone simulator or device
cd /Users/username/Documents/hobby/dictionary/khmerdictionary-ios
xcodebuild -scheme KhmerDictionary -project KhmerDictionary.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 17' testcd /Users/username/Documents/hobby/dictionary/khmerdictionary-ios
xcodegen generateUse the native Swift tool in /Users/sopen/Documents/hobby/dictionary/khmerdictionary-ios/tools/dictionary-builder to:
- import extra lexicon sources (Kaikki JSONL / TSV),
- dedupe and attach source/license attribution,
- generate signed manifests compatible with the app update verifier.
See:
/Users/sopen/Documents/hobby/dictionary/khmerdictionary-ios/tools/dictionary-builder/README.md/Users/sopen/Documents/hobby/dictionary/khmerdictionary-ios/tools/dictionary-builder/examples/build-config.example.json
{
"schemaVersion": 1,
"release": {
"versionCode": 2,
"versionName": "2.0.0",
"publishedAt": "2026-02-07T12:00:00.000Z"
},
"database": {
"url": "https://cdn.example.com/khmerdict/dict-v2.db",
"sha256": "64-char-lowercase-hex",
"sizeBytes": 18399321,
"signatureHex": "128-char-lowercase-hex"
}
}Signing payload format:
schemaVersion\nversionCode\nversionName\npublishedAt\nurl\nsha256\nsizeBytes
- Source code in this repository is licensed under MIT:
/Users/sopen/Documents/hobby/dictionary/khmerdictionary-ios/LICENSE - Bundled dictionary data and font files may have separate third-party terms:
/Users/sopen/Documents/hobby/dictionary/khmerdictionary-ios/THIRD_PARTY_NOTICES.md



