Skip to content

Repository files navigation

Kana Dojo

Android License: GPL v3

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.

Current Scope

  • 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

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.

Repositories

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.

Build And Test

Use the checked-in Gradle wrapper:

./gradlew checkCiSdkVersions :app:testDebugUnitTest :app:assembleDebug

The 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

Install On A Device

Enable USB debugging on an Android device, connect it, then run:

adb devices
adb install -r app/build/outputs/apk/debug/app-debug.apk

You can also let Gradle install the debug build:

./gradlew :app:installDebug

To 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.png

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

Clean Build Outputs

./gradlew clean

License

Kana Dojo is free software released under the GNU General Public License version 3.0. See LICENSE.

Source Control

Canonical repository:

https://github.com/Tinnci/kana-dojo

About

Kana-first Android Compose app for learning hiragana and katakana with Material 3, writing practice, review queues, and English/Simplified Chinese resources.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages