Kana Dojo is a CLI-built Android Compose app for learning hiragana and katakana through short, Duolingo-style drills. It focuses on direct kana-to-sound recall, listening, writing, mistake repair, and staged progression.
The curriculum plan lives in docs/learning-design.md. The UI/UX direction lives in docs/uiux-design.md. Writing technology decisions live in docs/writing-tech.md.
- Hiragana and katakana script switcher.
- Twenty-one lessons per script: base kana, dakuten/handakuten, small
ゃ/ゅ/ょblends, and special small kana or length marks. - Lesson path with unlock gates, stage filters, daily focus, progress summary, and completion feedback.
- Practice modes for weak kana, contrast drills, sound recall, writing reps, speed rounds, both-script review, and mixed review.
- Exercise types: kana to romaji, romaji to kana, sound to kana, pair matching, and trace writing.
- Kana chart with row filters, mastery markers, contrast labels, tap-to-hear speech where available, and symbol notes for special marks.
- Local progress and mistake persistence through SharedPreferences.
- English and Simplified Chinese Android resources with system per-app language support.
Toolchain and dependency versions are centralized in gradle/libs.versions.toml. Update that catalog first when bumping Android SDK, AGP, Kotlin, Compose, or Material versions.
- JDK: 21
- Gradle wrapper: 9.6.1
- Android Gradle Plugin: 9.4.0-alpha03
- Kotlin Compose plugin: 2.4.20-Beta1
- Compile SDK: 37.1
- Target SDK: 37
- Build Tools: 37.0.0
- Compose BOM: 2026.06.01
- Material 3: 1.5.0-alpha23
The project is set up for CLI use only. It does not require Android Studio or an emulator.
Gradle uses Huawei and Aliyun Maven mirrors before official Google/Maven Central fallback repositories for local builds. On GitHub Actions, mirrors are skipped so CI uses official repositories and avoids mirror-specific outages.
Use the checked-in Gradle wrapper:
./gradlew checkCiSdkVersions :app:testDebugUnitTest :app:assembleDebugThe same command runs in GitHub Actions on pushes and pull requests to main.
The debug APK is generated at:
app/build/outputs/apk/debug/app-debug.apk
Enable USB debugging on an Android device, connect it, then run:
adb devices
adb install -r app/build/outputs/apk/debug/app-debug.apkYou can also let Gradle install the debug build:
./gradlew :app:installDebugTo launch and capture a quick visual check from the CLI:
mkdir -p artifacts/screenshots
adb shell am start -n dev.tinnci.kanadojo/.MainActivity
adb exec-out screencap -p > artifacts/screenshots/path.pngIf the screenshot is black or empty, check whether the device is locked or dozing before treating it as an app rendering issue:
adb shell dumpsys power | rg "mWakefulness|Display Power"
adb shell dumpsys window | rg "mCurrentFocus|mFocusedApp|mDreamingLockscreen"./gradlew cleanKana Dojo is free software released under the GNU General Public License version 3.0. See LICENSE.
Canonical repository: