[Android] Flaming Durtles - Android app with offline support

:warning: This is a third-party script/app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

Flaming Durtles is now live on the Google Play Store! Grab it here: https://play.google.com/store/apps/details?id=com.the_tinkering.wk

What is it?

  • A native Android app that uses the V2 API. No web view, you have to create a V2 API key on the WK site and put it into the app to get it to work.
  • Fully searchable and browseable subject database.
  • Full support for lessons and reviews, including using and modifying your own notes and synonyms.
  • Offline support with automatic sync whenever the device comes online (only needs to be online once a month to check subscription status, although frequent syncing is recommended).
  • Efficient operation with a minimum of waiting, digging into menus, swiping, … Just tap a button and get on with the lessons and reviews with no fuss. Uses “lightning” mode as well, so with each correct answer you move on directly to the next question without further interaction.
  • Fully uses the data from the API, so any new subjects or changes to existing subjects are picked up automatically without needing an app update.
  • Notifications when new reviews pop up.
  • Doesn’t require a Japanese-capable keyboard to be installed.
  • Supports Android 4.1 (Jelly Bean) and up.
  • Light and dark theme

In addition, I have brought over some features from popular UserScripts. A native Android app can’t use UserScripts, but I did implement a number of features inspired by them. And I am of course open to suggestions for more, depending on how much demand there is for it and how much work it would be.

These features include:

  • 24h timeline on the dashboard
  • Reorder, including the option to give priority to ‘overdue’ items
  • Meaning and reading back-to-back
  • Reading before meaning / meaning before reading
  • “Ignore”, “Undo” and “Skip” buttons
  • Anki mode
  • Self-study quiz with a handful of filters, including leech training
  • Pitch info

All of these are optional and can be enabled/disabled in settings.

What is it not?

  • It doesn’t look particularly pretty.

Basically, I’m absolutely no good at what passes for ‘modern UI design’, and this is my first crack at writing an Android app (I’m more of a backend Java type of developer). The UI is meant to be simple, fast, and compact, putting all necessary information together efficiently and not giving a flying rodent’s posterior for how pretty it looks. That’s how I like it, and if you’re looking for a more modern, fancy-looking design, this app may not be for you. I’m open to suggestions for UI improvements, but I take a no-compromise attitude toward it being simple, fast and compact.

How complete is it?

All of the features listed above are present and fully working as far as I have been able to test. The worst of the problems have been worked out a while ago, and I have been using the app for my own lessons and reviews for a couple of months now, so you can expect to properly use it right from the start for your everyday offerings to the almighty Crabigator.

You may run into some unexpected problems, and there are many possible additions and improvements I could make in the future. But there are no blind spots anymore, and no “under construction” signs or missing menu options. I consider this a proper, feature-complete release build.

Frequently asked questions

Q: Some kanji characters look different from the web site.
A: Different fonts may show characters in different ways, but what’s most likely happening is that your device is showing Chinese variants of characters instead of Japanese ones. As far as possible, all UI elements are properly tagged with the Japanese locale, but this may not work on all devices. One workaround is to configure Japanese as a second language on your device. It doesn’t have to be the default language, just one of the extra ones. That will tell Android you want to see the Japanese variants.

Q: My keyboard doesn’t work properly or acts weird.
A: For the quiz questions, it’s important that the keyboard doesn’t ‘spoil’ the quiz. So I set a few options to prevent your keyboard from giving away the answer via ‘helpful’ suggestions. But that doesn’t work too well with some keyboards. Have a look at the keyboard input settings in the app. You can tune exactly what options are used by the quiz question input, and if you play around with these settings you can get any keyboard to work with this app.

Q: Can the app show a kana keyboard for reading questions and a QWERTY keyboard for meaning questions?
A: No, unfortunately not. For security reasons, Android does not allow an app to choose a different keyboard. Only the user can do that. You can switch manually for every question, but I can not do the switching for you. I would love it if Android would provide a safe way to give some hints about this to the input method system, but until it does there is not much I can do about this.

There is one possibility that may work for you, but it doesn’t work on all devices. If you use a keyboard that can handle both ASCII and Kana input (such as gboard), you may be able to get an automatic layout switch with these settings:

  • Enable ‘force ASCII keyboard’ for meanings, disable for readings.
  • Enable ‘visible password’ for meanings, disable for readings.

Then, on your first reading question in a session, switch to your Kana layout. If you’re lucky, the keyboard layout will now automatically switch for the rest of the session. This doesn’t actually switch keyboards, but it may trick the keyboard into switching layouts for you.

Q: Where are the Ignore, Undo and Skip buttons?
A: They are not enabled by default. If you want to use them, you’ll need to enable them under Advanced settings → Other. They’re called Special Buttons, there are three of them, and you can configure each to behave however you like.

Interested?

Grab it here: https://play.google.com/store/apps/details?id=com.the_tinkering.wk

If you have the sideloaded version installed, you’ll have to remove it to be able to install the store version.


179 Likes

Hi there. First of all many thanks. Really interested in this. Unfortunately I am getting an “app not installed error” on Huawei P20 Pro after downloading it with Chrome. Chrome and the file manager have permission to install apks. I can install other apks just fine. So not sure what the problem is.

1 Like

That’s strange. There are many reasons why that error might pop up, but if you can install other APKs most of those just go away… I can install the APK on all of my test devices (1 emulated, 4 physical, Android versions 4.4, 5.0, 6, 8.1 and 9).

If I compare the P20 to my emulator, the biggest difference I can find is that I don’t have the Google Play Store running in my emulator. The only thing I can think of right now is that Google Play Protect might be getting in the way. Do you have that turned on?

Do you get any more information with the error message? Any chance you can post a screenshot?

1 Like

Jumping right in. Here’s to hoping there’s no account-ruining bugs!

2 Likes

Soooo… it looks like Google Play Protect can get in the way. And I didn’t realize that because I have that disabled or not present at all on all of my devices… Frustratingly, if Google Play Protect blocks an installation it deliberately doesn’t produce a helpful error message.

I have added a thing to the instructions on the download page. Hopefully that will help.

1 Like

I was able to install your app despite Google Play Project enabled. It (Google Play Project) gave me a warning but the notification had a “Continue anyways” kind of button. Dunno if it helps but I’m running Android 8 on S7 Edge.

I am very confident that that can not happen :slight_smile:

It’s a legitimate thing to be concerned for, of course. But I’ve done quite a lot of testing, both against the real API and my test rig, and I am convinced that the worst thing that can happen is that you do a lesson/review that is rejected by the API and the time you spent doing the lesson or review is wasted.

And, of course, the WK API servers do a lot of checking themselves. It is built to protect itself and your account :wink:

5 Likes

Installation was not a problem. Will test it and report what I can. But so far, after 5 lessons, I really like it!

Yep, that’s how it’s supposed to work. But on my Lenovo tab 4, for example, running Android 8.1, the installation is rejected quietly without feedback if I have Protect enabled. If I have it disabled, all is good.

So apparently Protect is a bit temperamental.

1 Like

It was Google Play Protect indeed. Disable, install the app, enable again and that’s it. Many thanks again. I will test the app and report back.


Lessons done with the app weren’t synced with wanikani…
Going to bed, will test more tomorrow

1 Like

Looking at the screenshot, the problem is that your API key is not set up to allow the posting of lessons/reviews. You have to create an API key that has permission to send data to the API, not just read it.

47

5 Likes

you had me at anki mode

10 Likes

That did the trick, thank you

Nice, good to hear. I’ll also look at the little layout problem where you have over 1000 enlightened items. It looks fine on my devices, but I guess I’ll split that breakdown view up into two lines for narrow screens.

Wow. Thank you so much fore developing this! Happy to test it out~~. Working great so far on my pixel. My feedback so far is that sometimes the “don’t know” button cuts off the kanji, maybe it can be moved to under the answer block?

Also… pardon me but… what’s “anki mode”?

Thanks again! Looking forward to continued testing =)

1 Like

I’ll look for a solution for the “don’t know” button. Under the answer block it might get lost or cause other problems, but I can try a few things. Could you post a screenshot of when this goes wrong?

Anki mode means that you don’t type in the answer. You see the question, think of the answer, tap a button to reveal the answer, and then tap a button to say if you got it right. It’s how the Anki SRS tool does things. It’s super fast, but also dangerous: it’s far too tempting to say “correct” when you should be saying “incorrect”. I don’t like it, but some people swear by it.

1 Like

I’m having the same issue with 1000+ enlightened items on a Galaxy Note 8. Similarly in the settings I can read the full text for a lot of the options:
-Enable notifications for new re…
-show on’yomi readings in kata…
-require on’yomi answers in Ka…

I mean obviously I can guess what they are but just to let you know.

However there’s a major flaw with reviews in that when I get the meaning right, up pops up all the info including the reading…

Having successfully synced everything correctly and done some reviews it’s also now giving a warning message ‘WaniKani is not accepting your API key’.

Thanks for the feedback.

I’ll dig a little more in the settings screen. I should be able to convince Android to split long titles over two lines, I think. I could also shorten the text, but I’m afraid that would make the settings too hard to understand.

I don’t really understand this one. You should only get the big info dump if you get the answer wrong. If you get the meaning or reading right, you should move right along to the next question and never see the info dump. Are you sure you got the meaning right?

This is almost certainly a permissions problem. The problem is that your API key is not set up to allow the posting of lessons/reviews. You have to create an API key that has permission to send data to the API, not just read it.

47

Or it could be as in my case that a newline snuck into there somehow without being visible.