Offline Taiwanese Hokkien and Mandarin dictionary project built around the Ministry of Education dataset.
- iOS and macOS app and Apple platform notes
- Android app and Android notes
- Privacy Policy, Data License, and MIT License
This repository contains the active native implementations and shared tooling for Taigi Dict:
- Native Swift / SwiftUI app in ios-native/ for current iOS and macOS development
- Native Kotlin / Jetpack Compose app in android-native/ for current Android development
The current native apps focus on offline lookup, downloadable audio archives, bookmarks, localized UI, and reference material for Tailo and Hanji usage.
- Android: native rewrite is maintained from android-native/
- iOS and macOS: maintained from ios-native/ with TaigiDictNative.xcworkspace
The product is organized around three primary tabs:
Dictionary: search Taiwanese headwords, Tailo romanization, and Mandarin definitions; reopen recent searches; drill into a dedicated detail pageBookmarks: save entries and reopen them laterSettings: manage offline resources, appearance, language, reference material, and app information
- App display name:
台語辭典 - Android application ID:
org.taigidict.app - iOS and macOS bundle identifier:
org.taigidict.app - Current native Apple app version:
1.3.6(build9) - Official project domain: taigidict.org
- Production asset host: app.taigidict.org/assets
- Search Taiwanese headwords, Tailo romanization, and Mandarin definitions with weighted ranking and recent search history
- Open dedicated entry detail pages with linked definitions and native share support
- Save entries to bookmarks and reopen them from a separate tab
- Download ministry word audio and example audio for offline playback
- Offer Traditional Chinese, Simplified Chinese, and English UI
- Adjust theme and reading text size
- Read built-in Tailo and Hanji reference pages plus about and license screens
Canonical ministry references:
Production offline resource endpoints used by the apps:
Important distribution note:
- The upstream raw data is under
CC BY-ND 3.0 TW - Native Android app bundles the generated dictionary package under android-native/Generated/Dictionary/ and does not parse
kautian.odsat runtime - Native Apple app bundles the generated dictionary package under ios-native/Generated/Dictionary/ and does not parse
kautian.odsat runtime
Native Android implementation:
- Kotlin and Jetpack Compose with Material 3
- AndroidX ViewModel, Kotlin coroutines, and Flow / StateFlow
Preferences DataStorefor app settings, bookmarks, and search history, with legacy preference migration- custom SQLite import / repository as the default dictionary backend, with a Room-backed repository also present in the project
android-openccfor OpenCC-based Chinese conversion
Native Apple implementation:
- SwiftUI
- local Swift package split into
TaigiDictCoreandTaigiDictUI GRDB.swiftfor SQLite accessSwiftyOpenCCfor Chinese conversionZIPFoundationfor offline archive handling
- android-native/: native Kotlin / Jetpack Compose Android app
- android-native/Generated/Dictionary/: generated dictionary package bundled by the native Android app
- ios-native/: native Swift / SwiftUI iOS and macOS app, local Swift package, and tests
- ios-native/Generated/Dictionary/: generated dictionary package bundled by the native Apple app
- data/source/kautian.ods: shared raw source file used by the conversion pipeline
- tool/build_dictionary_asset.py: shared dictionary conversion script used by the current native pipelines
- ios-native/NativeApp/: native iOS and macOS app entry points, localized bundle metadata, and asset catalog
- ios-native/Sources/TaigiDictCore/: shared dictionary, audio, bookmark, and conversion logic
- ios-native/Sources/TaigiDictUI/: SwiftUI screens for dictionary, bookmarks, settings, and info
Native iOS app:
- Open ios-native/TaigiDictNative.xcworkspace in Xcode
- Select the
TaigiDictNativescheme - Build and run on an iOS 17 simulator or device
Native iOS command-line build:
xcodebuild \
-workspace ios-native/TaigiDictNative.xcworkspace \
-scheme TaigiDictNative \
-destination 'platform=iOS Simulator,name=iPhone 17' \
buildFor more Apple platform details, see ios-native/README.md.
Native macOS app:
- Open ios-native/TaigiDictNative.xcworkspace in Xcode
- Select the
TaigiDictNativeMacscheme - Build and run on macOS 14 or later
Native macOS command-line build:
xcodebuild \
-workspace ios-native/TaigiDictNative.xcworkspace \
-scheme TaigiDictNativeMac \
-destination 'platform=macOS' \
buildNative Android app:
cd android-native
./gradlew app:assembleDebugFor more native Android details, see android-native/README.md.
Native Apple package and shared logic:
swift test --package-path ios-nativeNative iOS app build verification:
xcodebuild \
-workspace ios-native/TaigiDictNative.xcworkspace \
-scheme TaigiDictNative \
-destination 'platform=iOS Simulator,name=iPhone 17' \
buildNative macOS app build verification:
xcodebuild \
-workspace ios-native/TaigiDictNative.xcworkspace \
-scheme TaigiDictNativeMac \
-destination 'platform=macOS' \
buildNative Android app:
cd android-native
./gradlew testDebugUnitTest
./gradlew app:assembleDebugAndroidTestOptional Android Room-backed verification:
cd android-native
./gradlew verifyRoomDebug- Active Apple platform product work happens in ios-native/
- Active Android product work happens in android-native/
- Shared dictionary source data remains in data/source/
- Generated dictionary assets should be rebuilt through tool/build_dictionary_asset.py instead of manual edits
cd android-native
./gradlew :app:assembleReleaseGenerated artifact:
android-native/app/build/outputs/apk/release/app-release.apk
- Bilingual English / Traditional Chinese: PRIVACY_POLICY.md
- Ministry of Education Taiwanese Hokkien Dictionary: source dictionary data reference
- Tauhu-oo 20.05: font used for Taiwanese Hanzi and specific CJK Extension glyph coverage
- jf open-huninn: font used in the app icon artwork
- android-opencc: OpenCC conversion in the native Android app
- GRDB.swift: SQLite access in the native Apple app
- ZIPFoundation: offline archive handling in the native Apple app
- SwiftyOpenCC: Chinese conversion in the native Apple app
- App code: MIT. See LICENSE.
- Dictionary data:
CC BY-ND 3.0 TW. See DATA_LICENSE.md. - Dictionary audio:
CC BY-ND 3.0 TW. See DATA_LICENSE.md. - Ministry copyright note
