[Android] Flaming Durtles - Android app with offline support

Ooh, good point. I can put in a filter to remove all whitespace before using the token, to work around that.

But that’s not the problem here, since fustian_garb got the initial sync to work. That means the token was accepted at first, but later rejected when he had done some reviews. Unless the token was replaced in between, that indicates the token is allowed to read, but not to write.

1 Like

Ah, yes. I used my read token first, then changed it to my general post token, so I experienced the same thing as they did except for actually doing reviews.

Loving the app so far. It’s the best one we’ve ever had.

One request, however; the ability to undo the last answer in anki mode. I guess this might be a bit of a neusance, since it would require buffering the posting of reviews even when there is a connection, but it would be a nice feature.

Liking the bars, but maybe something should be done about the completed ones

1 Like

Yep, definitely a nuisance since finished subjects are removed from the session immediately when the last question for that subject has been answered correctly, and the synchronization/unlocking/leveling up is then done in the background where the quiz screen doesn’t have access to it anymore. It would even be tricky in offline mode. (Undoing incorrect answers is easy, since then the question stays in the queue. Only undoing correct answers is tricky.)

I’ll add an undo button for incorrect answers similar to the undo button in the normal quiz screen. As for undoing correct answers, I’ll let that simmer in my head for a little while to see if I can cook up a reasonably clean approach for that. If I restrict the undo to just one step at most (so no going back five questions or anything like that), it shouldn’t be too hard.

1 Like

Like @Kumirei said, it’s the best app I’ve used so far, thanks a lot!

For info, I’m using it on a Samsung Galaxy S8 on Android 9.0

Some suggested tweaks, in order of importance according to me:

  • in reviews and lessons, MEANING and READING need to be more distinct (like in the WK android app for example)
  • being able to use a personnal keyboard OR having auto-correction with the imposed keyboard in the app (being impatient, I type fast and make a lot of errors while writing in english)
  • some minor UX tweaks explained below with screenshots

Meaning and reading in your app VS the WK android app

The thing with the bars is bizarre and boggled my mind for a bit… Essentially, what you see in that screenshot can only happen if you have subjects that have an SRS stage of 5 or higher, but don’t have a passedAt date set. And the way the service works, that should be impossible. So I’m really curious what your assignment records look like :slight_smile: Maybe it’s related to resets, but I did a reset myself recently and haven’t seen this on my own account.

You’re an experienced user of the API, right? Any chance you could look through the assignment records for a low level on your account and see if you have any assignments like that? I.e. an assignment with an srsStage >= 5 and either passedAt is null or passed is false. Feel free to shoot me an email at rmc@dds.nl if you prefer.

Either way I want to squash that one :slight_smile:, and you’re probably better off disabling the subject progress chart in your settings for now…

Proposition for a more readable level progression bar (I’m no designer obviously…)

The “don’t know” button isn’t really a problem in my opinion but I can see how it can be bothersome for longer kanji vocabulary and/or smaller resolution devices…

And this green is killing my eyes !

Lots of great feedback, please keep it coming :+1:

A couple of comments:

  • The green that is killing your eyes: I am colourblind, and green is my worst colour, so I readily admit my choice of green could be horrible. I wouldn’t know myself, though. I will gladly rescue your eyes, if you could give me a suggestion for different colours :wink:
  • The auto-complete/suggest on the keyboard: right now I deliberately disable that to make sure your keyboard isn’t giving you inappropriate hints from your dictionary or past reviews. I’ll see about changing that, but it’ll be an option that will be off by default. The default out-of-the-box experience should be as ‘pure’ as possible, as the mighty こういち intended it to be :slight_smile: Other than that, I just use whatever keyboard Android wants me to use, so you should get whichever keyboard you have set up in your settings.
  • The unfortunate layout for the level progression chart is kind of the fault of the chart library I use. It’s rather stubborn and doesn’t allow a lot of customization. Fixing it will most likely be quite a lot of work. It’s on my list, but not with a very high priority.

All of your other points are on the todo-list. I already have a bunch of small layout/quality of life improvements ready to go, so I’ll do what I can tonight and probably publish an update tomorrow.

1 Like

Like I said, I’m no designer at all AND I don’t know what “good” colours would be for colour blind people. Nonetheless, by default, Google Sheets uses those 4 colours for “good and bad” (I guess you can extract them from the screenshot if needed :slight_smile:)


Great thanks! Like mentioned, if I could change ONE THING, it would be making the “meaning” and the “reading” more DIFFERENTIABLE. The rest is mostly cosmetics.

Keep up the excellent work!

Figured. Thanks for considering it. I understand if it’s not something you want to mess with. Might be better as a 2.0.0 feature in the far future.

Will look into the bars when I get home from work

Great app, thank you!
I am on vacation mode and it seems like the app is struggling with that, one background task is always running and counting up reviews.

Works great as my mobile WK so far. Just a couple of things.

  1. you are right, the UI definitely could use some work
  2. an option to toggle lightning mode would be nice. I like adding on to my own notes/reviewing other definitions. Which leads to the next thing…
  3. Notes are viewable during reviews even if target wasn’t completed. aka I accidentally cheated because my own notes contain my own mnemonics, etc. during reviews and I didn’t know I could view them that way.

Otherwise the app is pretty good.


I love the app so far! Being able to study kanji offline could really help with my schedule. I do have long commute times with unreliable connectivity, so your app is going to help me tremendously!

I did encounter a problem though:

I have done some around 200 reviews using your app, which all worked fine. I used anki mode for most of it. Now, according to the app, I have three reviews left. When I do them, they come back when the app synchronizes. The WaniKani Dashboard shows no reviews for me though.
I’m using a Huawei P smart 2019, running Android Pie.

I’m going to try to get some assignment information from the API to see if anything is off about these items…

1 Like

I had to make some guesses about how the API behaves in vacation mode, since I haven’t used it myself yet… Seems like I guessed wrong :slight_smile:. I’ll have to do some testing to see what’s going wrong here.

In the mean time, just imagine it’s all deliberate and my way of telling you “you said you were on vacation, right?” :wink:

1 Like

I’m going to look into some workflow options that will (among others) address your feedback, not sure how long that will take though.

Once you have completed a target, by the way, you can still ‘go back’ to it from the menu. There’s an option to visit the most recently finished item, if it exists. When you do, you get a full-screen info dump and you can go and edit your notes and synonyms from there. Doesn’t work for partially completed targets (meaning done but reading not done or vice versa), but it’s something.

And yes, your notes and synonyms are integrated in the subject info dump: your meaning notes and meaning synonyms are shown with the meaning-related information, and your reading notes are shown with the reading-related information. The only thing is that those two chunks of information are currently clumped together in a single view, and you’re not the only one who’d like to see that split up :slight_smile:

1 Like

The app has a “self-correcting” mechanism to recover if anything gets out of sync. If the web dashboard says you have no reviews, but the app says you do, even after you finish the reviews, then that suggests the summary and the assignments don’t agree. It’d be interesting to see what your summary (WaniKani API Reference ) says and what your assignments for those three subjects say. I suspect they contradict each other. If they agree, then those reviews shouldn’t keep coming back.

When I’m testing for myself I have a nice debugger attached, but the app right now has lousy diagnostics without a debugger. That’s another thing I need to improve.

There is a brute-force last-resort option to completely reset the app’s database (last entry in the settings menu). I don’t recommend using that except when really necessary, but it’s there just in case. But I would much rather find out what’s going wrong of course. If I’m right then WK is not handling its summary endpoint correctly, and if I’m wrong I have a strange bug to hunt down and fix.

A couple of questions:

  • Have you ever done a reset?
  • Which level are those three reviews for?

Alright, so it seems that they must have started using passed_at sometime around then I turned level 15, in April or May of 2017. You can’t assume that there will exist a passed_at date for all passed assignments. If you are merely checking that the assignment has been passed, then passed seems to be reliable.


@viet Can you confirm that passed_at was introduced for assignments around May 2017?

1 Like


I was already relying on passed over passed_at everywhere else, but this one is a holdout for various annoying reasons. I’ll flip it around.

1 Like

Yeah, it was a late introduction. We didn’t track the timestamp before that time. And we didn’t have the information to backfill (review records did not exist then). This is why the boolean passed exists.