[iOS] WK Reader - a WaniKani enabled text reading app

I develop iOS apps as a hobby (and hopefully one day for work) and decided to make a furigana powered text-reading app that works with WaniKani. I know some people’s opinion on furigana, but I feel that it’s a motivator to read long blocks of text without feeling discouraged by all the things you don’t know. 

The basic idea is that you paste Japanese text from your clipboard into it, and it will add furigana to the text on all words except your WankiKani vocab words. That way you don’t end up cheating on words you already should know. :slight_smile:

Right now I have a (barely) working model as I’m experimenting with different methods of displaying the text but here’s what it looks like so far:

Here is where you paste your API key, and also paste text. The library feature hasn’t been implemented yet but will be used for offline storage of text files.

This is what the reader view itself looks like. The button bar at the top is ugly right now but will be improved eventually. 

A long press on a word opens options like a standard iOS text view. 

And currently I have it so it opens the iOS dictionary:

From a technical standpoint, I’m not using Mecab to generate Furigana, instead i’m using iOS’s built in CFStringTokenizer, which does essentially the same thing. It seems to work with decent accuracy, although I’ve found some mistakes with the readings, but not more than I’ve seen on applications that use Mecab. I think it’s pretty acceptable.

As far as displaying the text, UIKit does NOT have any convenience functions for Furigana, however the low-level CoreText API does. It’s extremely low level though and very difficult to work with. The one thing that is nice is that it supports vertical text. The issues with it are that it’s extremely slow (you can forget trying to read a book with it), and doesn’t have built in text selection. Implementing any kind of text selection is going to be an absolute nightmare. 

I’m going to try an alternative textview project that I found on Github, which is based on UITextview, and therefore supports text selection right out of the box. It’s also much, much faster as it doesn’t do any custom drawing. The only real drawback I’ve found is that it doesn’t do vertical text but I think that’s a good enough compromise. 

Features I plan on implementing:
-Ability to save text for offline storage
-Ability to tap on a word and get a definition, or in the case of a WaniKani word, the reading (I will purposely make this difficult so people won’t be tempted to use it constantly like Rikaichan) 
I’m not sure what else but I’m posting this here because I would like some input. I usually develop apps in isolation and rarely get outside opinions/ideas. 

So does it look decent? Or should I just close XCode and go back to watching anime? 

Nice idea, looking forward to seeing this develop, could be very useful for when I’m reading on the go and don’t have my laptop!

I ended up going with a library I found called FuriganaTextView. It’s much easier to work with and with slight customization seems to do most of what I want except for vertical text. But now it’s easy to select text and get the kanji’s reading.

I also thought it might be fun to let the user choose different fonts and font sizes. 

Also the ability to turn furigana off completely if you want

You can also save pasted text to your device along with font settings and reading progress so you can finish reading something
at a later time without having to re-paste it.

I’ll be looking for beta testers soon. So if anyone’s interested let me know!

Sure, I’d like to give this a shot!

Heyyyy! This looks pretty cool.

Awesome! I’ve been wanting something like this. Can’t wait for it!

Is this open-source? :slight_smile:

Still working on this. I realized that in it’s current implementation it’s only really good for shorts snippets of text, but chokes on larger pieces of text since generating the furigana is computationally expensive. I’m trying to do it more in an e-book style format so that it can render the first few pages and then do the rest in the background while you read. It’s a bit tricky though. 

Looks very interesting.

What I liked about the initial look (at top of screen) was the fact we could put in horizontal mode. Everything else looked amazing, but that really excited me. So as you develop it, please find a way to keep the horizontal aspect as an option, if possible.


Thank you for creating such a powerful learning tool. When it is up and running this will help many of us trapped in intermediate land level up our reading skills without cheating too much. 頑張って下さいね!

Looks pretty cool, have you made any more progress on it?

This looks awesome, if you need any more beta testers for future versions let me know!

Very interested in this.  Let’s keep pushing this thread.

I’m up for beta testing too. I have both and ipad and an iphone.

Yeah, looks great! Your work will definitely be appreciated!

This looks perfect for what I need. Feel free to hit me up for beta testing!

i’d def be interested in beta testing!

plus one on the beta testing. Thanks for your work!

Keeping this alive  :)

Would love to use it. Please also make feature to import and save some text files in app.
Oh, half a year since last post. Seems dead.