Lives in android-app, built through ./gradlew assembleDebug. Uses Kotlin (+ Jetpack Compose) for the frontend, and LiteRT for model inference.
Currently supports 3 models, each with a different arch:
ko-en: 2 decoder layers, shared src and tgt vocab (fastest, 20MB quantised)opus-mt-en-tdt: 6 decoder layers, distinct src/tgt vocabs (decent speed, 80MB quantised)opus-mt-tc-big-en-pt: transformer-large, 1024 seq len with distinct src/tgt vocabs (240MB, too slow for a phone)
Lives in ios-app, built through Xcode. Uses SwiftUI for the frontend, TensorFlow Lite for on-device inference, and SentencePiece for tokenization.
Setup:
- Install CocoaPods deps (TensorFlow Lite):
cd ios-app && pod install- Open
ios-app/Opus Translate/Opus Translate.xcworkspacein Xcode.
- Add the SentencePiece Swift package in Xcode:
- Package URL:
https://github.com/jkrukowski/swift-sentencepiece - Product:
SentencepieceTokenizer
- Package URL:
Models are downloaded at runtime into the app’s Documents directory. The iOS UI mirrors the Android screens (model list + translation view).



