Skip to content

sopenlaz0/khmerdictionary

Repository files navigation

Khmer Dictionary (Native iOS)

Swift-only iOS app for Khmer dictionary lookup and offline usage.

Stack

  • Swift 6
  • SwiftUI
  • GRDB + SQLite
  • CryptoKit-based verification for signed dictionary updates
  • XcodeGen (project.yml) for project generation

Requirements

  • Xcode 17+
  • iOS 26 SDK

Run In Xcode

  1. Open: /Users/username/Documents/hobby/dictionary/khmerdictionary-ios/KhmerDictionary.xcodeproj
  2. Select scheme: KhmerDictionary
  3. Run on an iPhone simulator or device

Run Tests (CLI)

cd /Users/username/Documents/hobby/dictionary/khmerdictionary-ios
xcodebuild -scheme KhmerDictionary -project KhmerDictionary.xcodeproj -destination 'platform=iOS Simulator,name=iPhone 17' test

Optional: Regenerate Project

cd /Users/username/Documents/hobby/dictionary/khmerdictionary-ios
xcodegen generate

Build Larger Dictionary Releases

Use 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

Dictionary Update Manifest Contract

{
  "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

Simulator screenshot 1 Simulator screenshot 2 Simulator screenshot 3 Simulator screenshot 4

License

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages