Wednesday, August 5, 2009

Review of iAnki for iPhone: Not very elegant or convenient, but gets the job done

As I mentioned before, I've been looking for a spaced-repetition system to use on my iPhone that I can (1) sync with a desktop app and (2) use when there's no internet connection (because I spend time on a subway line every weekday from which I can't get online).

So far, it looks like Anki's solution for an unbroken iPhone, iAnki, is the best option available, although it's far from ideal. The software is testy, something of a challenge to get working, and syncing with Anki on the desktop can be a headache, but its core study functions by and large work fine and, in the end, you do get two-way syncs with Anki's desktop application.

Let's get into the nitty-gritty, after the jump.

Installation. With iAnki, you're quite likely to get off on the wrong foot because installation is a pain. As if needing to deal with some quirky work-around to a true iPhone app isn't enough (iAnki is not an iPhone app—more on that below), the instructions on the iAnki page are less than clear. I've got a few nerd credentials, and it took me some time to get things working, so I feel for the even less nerdily inclined. Nevertheless, after somehow bumbling through the instructions, I eventually managed to get everything up and running, so hopefully you will be able to as well.

Syncing. But I couldn't jump into using iAnki without first having a syncing headache; the syncs were just stalling out and clearly nothing was happening. I put this question up in iAnki's forum, but before I could get a reply I simply deleted everything and started from scratch. I must've done something different, because the second time around I got the sync to work.

In terms of syncing, Anki and iAnki work together in a bit of a strange way. First of all, iAnki is not an iPhone app at all, but rather a bookmarked web page that you use Safari to run. To sync with Anki (and to set up iAnki on your iPhone in the first place), you need to download a plug-in called iAnki Server. iAnki Server runs over your local network to sync Anki and iAnki. iAnki unfortunately does not make use of AnkiOnline, so both your computer and your iPhone need to be connected to the same local network to use iAnki Server.

If you're having trouble keeping Anki, iAnki, iAnki Server, and AnkiOnline straight, you're not alone. Here's an image of how the set-up works for me that'll hopefully clear things up a bit:

So my laptop syncs to AnkiOnline and then to the iPhone via iAnki Server on the local network hosted over our Time Capsule. There's no way to sync directly between the computer and the iPhone, as far as I can tell (I suppose there might be a way to set up your laptop as a server, and if you can explain how to do that, I'd love to hear from you in the comments).

At the same time—and somewhat inexplicably—iAnki can't sync up directly with AnkiOnline. As I mentioned above, iAnki is just a bookmarked page in Safari, so I don't see why it can't sync with AnkiOnline instead of needing to deal with the hassle of using iAnki Server on a local network. (As an aside, AnkiOnline works reasonably well on an iPhone—especially in full-screen mode (it's in the left-hand column of AnkiOnline)—but as I need to be able to study when I can't be online, it's not a solution that will work for me.)

Since iAnki doesn't sync online, it means that if I study on my iPhone on the way to work and then use AnkiOnline during the day, I'll be reviewing the exact same things, since one won't know that I've already done it on the other. However, I can live with that; I just do all my reps during the day on my iPhone rather than making any use of Anki or AnkiOnline.

Basically you've got to remember to sync iAnki with iAnki Server regularly. You can lessen this burden by syncing lots of cards so that, even if you forget to sync for a few days, you'll still have plenty to work with. However, as happened to me a few days ago, you'll probably eventually forget to sync for enough consecutive days that you run out of due cards and end up playing Labyrinth 3D instead of being productive.

And today I discovered another fun headache. When I got home, it wouldn't sync and iAnki Server was giving me some kind of unintelligible gobbledygook error message. I eventually discovered that because my Time Capsule had assigned my laptop a new IP address (ending with a .6 instead of the .7 it had before), this was causing big problems. I first fixed it on iAnki Server's end, and that got rid of the weird error message, but I needed to create a new bookmark on the iPhone following iAnki's installation instructions before I could sync.

One additional annoying aspect of the sync process is that, when syncing multiple decks, you need to click "OK" on the iPhone after each deck or else it won't begin syncing the next deck. This means that you've got to babysit the iPhone during the sync process if you want to make sure that it gets through all your decks. I can handle clicking OK once at the end after all decks are synced, but needing to repeatedly click OK is just a nuisance.

All this leaves me looking forward to seeing what the next sync headache will be.

So, bottom line on syncing, let's cross our fingers for automatic AnkiOnline or even direct Anki syncing. The latter probably requires an actual iPhone app, but the former should be much easier to accomplish.

Studying. And last, but definitely not least, is the core studying function. It is, unsurprisingly, iAnki's strong point and is stripped down but is much like Anki's. You're shown the question and a button to reveal the answer. Once you reveal the answer, you have buttons from 1 to 4, paralleling Anki's buttons, with 1 meaning you didn't get it, 2 meaning you got it but it was tough, 3 meaning you got it, and 4 meaning you got it easily. Press your button of choice, and it will move onto the next card and tell you when the card you just scored will be shown again.

I do have two complaints about the studying features, however. The first is that there is no undo button. On occasion I'll accidentally hit the wrong button and want to go back and press the right one. There's just no way to do this. To take the extreme example, if you accidentally hit 4 on a word you've gotten correct a bunch of times but have just recently forgotten, you might not see that card again for months. A simple undo button in the top left corner of the screen would be ideal.

The second is the lack of any way to flag cards. For example, if a card is just plain wrong, or is confusingly similar to another card, a way to flag it and then fix it in Anki would be a great help. This could correspond to Anki's "mark" feature, and could be implemented with the addition of a button in the top right corner of the study interface.

* * * *

So what's the final call on iAnki? I'm going to keep using it. It may have its quirks and difficulties, but it's doing what I need it to do. It syncs with the desktop app and I can use it when offline. The most important part—the study functions—are solid, and the other issues are manageable.

And, on top of that, I'm not sure that I have much choice, as I don't think there's anything else that does what I'm looking for, so if you know of any other options, please drop a line in the comments.

Links: Anki, AnkiOnline, iAnki

This post was updated twice on August 6, 2009. The first time was to delete a complaint that the font sizes are too big in iAnki. As it turns out, the font size on iAnki is completely under the user's control (via Anki). Victor, the author of iAnki, pointed this out to me in a comment below, and sure enough it turns out the issue I was complaining about was my own fault. In Anki, I went to Settings > Fonts and Colors... and lo and behold I could change the font size (in fact, I'm indeed the one who set Japanese so large in the first place). It took me a few tries to get that to sync over to iAnki, but sure enough it did and it looks much better than before. I may need to tinker with the sizes a bit until I figure out what works best, but the bottom line is that I can do just that. The second time was to note that the author of iAnki is Victor, not Damien Elmes, the author of Anki.

This post was updated again on October 10, 2009, to note the need to click OK on the iPhone after each deck when syncing and the need for undo and flagging features when studying and to clean up the previous changes.


  1. I'm the author of iAnki. Thanks for the review. It is pretty fair really. As you say it's not very elegant, but gets the job done and there's not much choice really without jailbreaking.

    iAnki is something that came out of need to do Anki reviews offline without jailbreaking, and without writing a full native iPhone version of Anki.

    It is in very many ways a 'hack' because of all the limitations of iPhone web-apps for storage, offline persistence, and cross domain communication. At the time of writing iAnki those ideas were still young amongst web apps.

    In terms of fonts, as of the past few versions iAnki uses the font settings specified in Anki, so if some fonts are too small or too big it should be possible to change them.

  2. Damien, thanks for the info on the fonts! I've updated the post above to clarify the issue.

    And thanks for all your work on Anki. I look forward to watching Anki develop, especially (as you might guess) the Mac and iPhone versions!

  3. This is not Damien by the way, it's Victor. iAnki is a user (me) contributed plugin :).

  4. Argh, I'm on a roll with this one, huh?

    If you're applying for the job of (volunteer) fact checker, you're hired.

  5. Have you tried iSRS?

    I have been eyeballing this as a more straightforward alternative to iAnki... Curious to know what you think!

  6. @Harvey: I just downloaded iSRS to play around with it, but I doubt I'll make the jump as it doesn't even sync with Mnemosyne, much less Anki.

  7. As you say, it is rather beta-ish, but functional. The version numbering is still in the 0.x range, so I can forgive it ;)

    I very much agree with your gripe on the need to press OK over and over during synching.

    However, I'm confused by your diagram and the talk of iAnki server needing to be hosted on the time capsule. I'm using a desktop PC, and the iAnki plugin serves right off my desktop.

  8. @michael: A friend of mine on a PC couldn't get his to sync on his PC alone, so I'm guessing that if you can do it than it's just a matter of flicking the right switches. That said, the author of iAnki read this post and didn't comment on that diagram, so I presumed that I got it right. Are you running a server from your PC? That might explain it...