Skip to content
Jideeh1Public

About

A Japanese word a day on your Android home and lock screen. Kana readings, example sentences, Anki-style reviews and a full offline dictionary.

Topics

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

KanjiLock icon

KanjiLock

one japanese word a day, right on your home screen

Android 8.0+ Kotlin Offline License


KanjiLock in 20 seconds


Today, Study, Dictionary and Progress screens

what it is

you get a kanji or word every day with the reading in kana, the meaning and an example sentence. keep it, toss it or reroll it. the ones you keep turn into a deck you study with spaced repetition

made it cuz i kept forgeting to study and i look at my phone like 200 times a day anyway


daily word · on your home screen every day

study · anki style reviews, practice mode with 4 games, focus mode

decks · anki, kotoba and ankidroid in, .apkg out

progress · streaks, a flame calendar you can tap for any day, stats, achievements

widgets · word card, kanji tile, streak, cards due

themes · 26 of them, 18 dark and 8 light

dictionary · its own tab, 218k words, fully offline, draw a kanji to search

scan text · take a photo of japanese, tap any word on it for its meaning

home screen widget

X rejects, gray rerolls, check keeps

no accounts, no ads, no tracking. sync is optional and goes to your own google drive


get it

grab the apk from releases, or build it yourself:

git clone https://github.com/Jideeh1/KanjiLock.git

open the folder in android studio, let it sync, hit run. needs android 8.0 or newer

the apk from releases checks github when it opens and asks before updating, u can turn that off in settings


more

google drive sync

google wants every app that touches drive to be registered first. you only do this once

  1. make a project at console.cloud.google.com and turn on the Google Drive API
  2. set up the OAuth consent screen (External) with the drive.file scope
  3. create an Android OAuth client with package com.jideeh.kanjilock and the SHA-1 of your signing key
  4. in the app go to Settings, Google Drive, Link

the app can only see the one file it makes, KanjiLock/kanjilock-data.json. it pulls when you open the app and pushes when you leave. two phones that both changed stuff get merged so nothing is lost

accepted list format

saved as csv so it imports straight into kotoba and other quiz apps

Questions,Answers,Comment,Instructions,Render as
花火,はなび,fireworks,Type the reading!,Image

theres also an anki export (tab seperated) and a real .apkg deck, both go into a deck called KanjiLock

project layout

kept on purpose to a few files so new features go into whats already there

app/src/main/java/com/jideeh/kanjilock/
  Data.kt      words, storage, srs, romaji, dictionary, imports, backup
  Engine.kt    daily word, study queue, alarms, widgets, reminders, ankidroid, drive
  Ui.kt        activity, theme, shared components, icons
  Screens.kt   today, study, words, settings
tools/build_dict.py   builds the dictionary database

./gradlew testDebugUnitTest runs the tests

releasing an update

the app looks at the latest github release and grabs the first .apk attached to it

  1. bump versionName and versionCode in app/build.gradle.kts
  2. build the githubRelease variant, signed with the same key every time or android wont install it over the old one
  3. make a release with a tag like v1.1.0 and attach the apk

for the play store build playRelease instead, it has no updater since play dosent allow that

updating the dictionary

do this before each release, the edrdg licence wants the data kept up to date

  1. get the latest jmdict-examples-eng and kanjidic2-en json from jmdict-simplified
  2. run python3 tools/build_dict.py in the folder with the json files
  3. gzip -9 dict.db and replace app/src/main/assets/dict.db.gz
  4. bump VERSION in the Dictionary object in Data.kt

credits

sourcelicense
wordsJMdict by the EDRDGCC BY-SA 4.0
kanjiKANJIDIC2 by the EDRDGCC BY-SA 4.0
sentencesTatoebaCC BY 2.0 FR
json datajmdict-simplifiedCC BY-SA 4.0
fontInterOFL 1.1

the dictionary was condensed into a small sqlite db for the app, it stays under CC BY-SA


MIT license · privacy policy · third party notices

not affiliated with Anki, AnkiDroid, Kotoba, Google or Samsung

About

A Japanese word a day on your Android home and lock screen. Kana readings, example sentences, Anki-style reviews and a full offline dictionary.

Topics

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages