[Android] Flaming Durtles - Android app with offline support

Is there also an easy way to be able to add synonyms during reviews or after? Atm I have to switch to browser to do that, and it’s a bit inconvenient.

Whenever you’re looking at a specific subject (in lessons, reviews, self-study or just browsing the subject database), you can tap “My notes…” in the menu. There you can see and modify your own study materials for the subject, i.e. meaning note, reading note, and synonyms. They’ll be synced to WK automatically.

1 Like

Super :+1: just what I needed. Thanks.

In the mean time, Google has approved release 1.5.0. Next is 1.6.0, which will have background sync and some UI implementation improvements which should make the UI snappier and more responsive on older/slower/cheaper devices.

It turns out that the notifications are annoying a couple of people since they apparently don’t stop making noise when Do Not Disturb is turned on… For now I have added an option to set the notification priority from “default” to “low”, which should shut them up completely. For the proper, definitive fix I need to do more experimentation and testing, since so far I am unable to reproduce the problem on my devices. Hopefully I’ll have a solution in place for 1.6.0. One thing I’m testing now is to give the notifications the category “recommendation” instead of “reminder”, maybe that will help with DND.

Version 1.5.0, 2019-08-27:

  • Sort recently burned items by burned date instead of unlock date.
  • Redo level progress bars to be faster and more accurate (for items that drop back down to Apprentice after passing).
  • Also show SRS stage up/downgrade toast for changes within Apprentice or within Guru.
  • Improve looks of the SRS stage up/downgrade toast.
  • Improved SRS stage up/downgrade logic to match server-side logic better.
  • Improved level-up handling (for real this time, I hope…).
  • Add setting for low-priority (silent) notifications.
  • Add optional SRS indicator during reviews.
  • Add subject level to subject info dump.
  • When choosing the next question in a session, increase the chances of choosing an item that has already had at least one question answered. This keeps the number of items to go when wrapping up a session low.

When wrapping up and one has answered both questions for all the items (I use 1x1 mode) and have not yet answered the current item, can you make it so that it just finishes? Right now you have to do the one extra item.


expect me to give u lots of feature requests in the near future. this is like the only thing i missed from iOS. maybe this time i dont get in the dislikings of the app developer by actually behaving myself

anyway: please add jitai support please
and i would also love to just be remined of the correct intonation after being quizzed a word. should be able to be inspired by this script: [Userscript] WaniKani Pitch Info
might want to prefetch them for offline support tho

also about the background tasks. i saw the flushing option and that it deletes made progress? does that mean that you only keep any updates in memory? i have used offline apps before on long mountain hiking tours and without a permanent storage of progress this would probably mean that my phone would go empty or else. so please make syncing independent of the perseverance of background tasks. also why are there so many background tasks even before i enter my api key?

also i might prefer it if you give me some updates about how the syncing is progressing. it took my phone 5 minutes before anything happened at all

1 Like

When I built it I had a very good reason for building it that way, i.e., that is deliberate, but I don’t remember what that reason was… But a lot has happened in the code since then, I’ll see if I can change that.


This one depends on what fonts I can include in the app legally. Android doesn’t do the whole ‘system-wide font installation location’ thing, so if I want to support other fonts I need to include them in the app and they must come with a free license that allows me to do so. This is easier said than done, font licensing is historically a bloody nightmare.

So, I’m putting the question back to you: do you know of a useful set of Japanese fonts that are free to use and free to redistribute as part of an app? If I can get those, this will be (reasonably) easy to do.

It’s on the list, but as you say, I have to be able to do proper offline support, I don’t want to have partial offline support that suddenly leaves out details compared to online. So that’ll take a while.

No, all progress is kept in a database in device storage, including records of all background tasks that need to be executed when the device comes back online. So if the app crashes, is force-stopped, or if your device restarts you lose nothing. The app will just continue where you left off, as if nothing happened. What the flushing option does is just remove all of those records of background tasks from the database. So if you still have un-synced review results, they will then be lost.

I’m not sure what you mean by this? If you are online and there are tasks to do, you see the ‘## background tasks’ in the app bar that should be steadily counting down. And if there is an error while syncing, you should see a big red thing on the dashboard that tells you so. For each individual task in that background queue, there is not a lot I can do to report progress, I think.

1 Like

That’s because it has to do an initial sync that pulls in a complete database of subjects and your complete assignment record. When it starts for the first time, the app knows nothing about any of the WK subjects or your history with them, so right from the start it will schedule a few background tasks to get that going. Those tasks take extra long because it’s a lot of data to process, but it’s necessary for offline support. Once this is done, only incremental updates are pulled in, and that is a lot faster. That’s why on that initial sync I put a “please wait, this will take a while” message, but that’s only once.


When doing lessons, tapping on “Next” or “Previous” retains the current scroll position when going from one lesson to the next. (This can be tested by scrolling to the bottom of a lesson, then pressing Next. I don’t know if the same behavior is true for reviews.)

Expected behavior: Return scroll position to the top of the page.

So far, this is the only main “issue” I’ve encountered.

(Well, except that occasionally it says audio files are downloading, but I’m on wifi and have the space for it, so I’ve been ignoring it. Maybe I should submit a log? Will submitting a lot prompt me to enter in the reason I’m sending the log?)

Hello, thanks for the great app.

It seems that the app is using the simplified chinese character rather than the japanese version of the same kanji. Example below,which should print as 続く

Can someone please confirm the issue?

no i do not, but the easiest way to fix that problem is to just make the user install those fonts manually. for example the anki android app has support for custom ttf fonts, you just need to upload them to the anki cloud.

so bassically just register that your app can open ttf files, same them within the app file storage and make a app intern manager for which installed fonts are to be used

in that case i find that term confusing as a programmer. i wouldnt call them background tasks if they arent actually running in the background. either completely hide this information or give it a more descriptive name.

again this hole thing counts back to that being the wrong term to describe what the app is doing. when i entered mu api key the app was doing something for 10 minutes without ANY visible screen changes (no numbers counting down etc). was just about to say that it might not work for me when it finished.
have something like downloading wanikani content (1234/12000), syncing user content (123/900) that would make it much much more clear what is happening instead of saying 4 background tasks for the whole time

Additional user feedback, if I may:

  • it seems “my meaning notes” section is truncated. Also it does not preserve the return carrier / white spaces are not preserved.

  • can you implement a summary page after a review batch : list of erroneous/correct items, levels, etc.
    I use this list to do a finale review of the items I just failed.

  • in the review phase, the GUI requires the user to constantly move between keyboard and upper screen to click (undo ignore or next).
    Could the ‘-return’ button and the ‘next’ link be used for the same purpose? : entry validation, passage to next item.

Merci et a bientot

I’m working on fixing this, and also making a better behind-the-scenes implementation for this view, but it’s troublesome since Android scrollviews don’t really behave as they should sometimes… So, working on it, but I’m not sure yet how soon I’ll have it fixed.

This must be a font issue, since I just pass the characters from WK straight on to Android for display, without trying to alter anything about the display. On my browser by the way (Chrome on Mac), the kanji as posted in text looks the same as the screenshot. Regardless, without font fiddling I can’t do anything about this since I rely on Android to render the text in a reasonable way. I’m interested to know if others see any rendering problems as well. I honestly wouldn’t be surprised if this differs between device brands…

They are tasks that run in the background when possible. I don’t see why “background task” is a bad name.

Some devices are faster than others, but I’ve never seen the initial setup take more than 2 minutes. What kind of device are you using?

Can you post a screenshot where it goes wrong? It doesn’t truncate or mangle anything for me, but admittedly I’ve not done a lot of testing with user notes. Regardless, I’ll investigate it more.

I’ll have a look, but initially I have kept the summary screen very simple with only a few numbers so it will render quickly. On slow devices that can take a while to display and I don’t want to wait for it. One of those “it’s on the list” things…

Partly. The “next” button can be made to do double duty to submit the answer as well, but the other way around is not possible. Once the answer has been entered, the edit field used for it goes away, as does the soft keyboard. So keyboard navigation is not available by then anymore.

Today’s unexpected encounter: the radical for root came up for review, I mistakenly entered good, and it was accepted. I’ve heard Wanikani has a list of blacklisted answers to avoid this situation. Is the blacklist available for the app to utilize?

Totally understandable. It’s what I consider a “papercut” in terms of programming. Very minor, and not really painful (unless one’s software is full of them). Scrolling back up between lessons is quick and easy.

I don’t know if this is the same thing, but I sure had trouble when the radical for orders came up in the app after I’d first encountered it recently on the site.

Web site:


in this case scheduled tasks might be better then. anyhow you didnt really reply to my wish for generally just being more descriptive there. both background task and scheduled task is something only programmers can completely understand and as the unit ‘background task’ also doesnt really tell you how long you are going to have to wait, while a more detailed description would at least allow the user to estimate it.

xiaomi mi a2 lite. probably rather an unstable internet connection

and 1 other thing that i would like you to implement. if i wrongly answer a word and have sorting on the same word is immediately asked again. i would push it back at least 10 items

even if not, it would theoretically be possible to just check the distance to all other entries and if any other item has the same or closer distance instead block it.

i do not think that just making the code public will create any problems there and any forks that are against it are wanikanis problem. its always the new code that makes the problem.

also i do not think that ugly code is a good reason for why you shouldnt make it open source. generally ugly code is nothing to be ashamed of as long as it is resolved in the future (personally i always try to make it nice to avoid higher maintenance later)

1 Like

Love the app, great work! I’m running out on a Pixel 2 and haven’t had any issues at all that weren’t quickly resolved by reviewing the settings menu.
One thing I do miss from the online version that seems to be missing is the overview of what was answered correctly and incorrectly after a review is complete. I like to review what I answered wrong and add them to an Anki deck, so not having that summary available makes that hard to do.
Keep up the good work!

1 Like

Yes, check how chinese and japanese writings differ there:

1 Like