I'm going to sing the praises of an amazing product that I wish I had discovered much earlier than I actually did: Anki. Anki is a flashcard app available on mobile, desktop, and web - and it's brilliant. (And no, I'm not getting paid to say that!) Best of all, it is both free and open source.
What's really unique about Anki is that it calculates when you need to see a card again before you forget it. Unlike traditional flashcards (or even flashcard apps like Quizlet), where you just go through an entire set over and over again, Anki efficiently shows you only the cards it estimates you need to see before you forget them. You don't waste time looking at flashcards you know really well, and the rest are shown to you based on how familiar you are with them.
How does Anki know when you need to see a card? It uses an algorithm, which you can customize (though I never did and I've been successfully using the default for years).
You can create your own categorized flashcard decks within Anki or download decks that have been created by others. I find a mix of both to be useful. For example, I use Anki for foreign languages, but I have my own running vocabulary deck on top of ones others created based on standard textbooks. I also use Anki for things like U.S. military insignia as well as world geography. It supports audio and images on your flashcards, too.
You can decide how many new cards you want per day, which I've changed from time to time depending on how busy I am. Because I currently have a lot of flashcard decks and not much time, I only look at one new card per deck per day.
I keep Anki synced across my smartphone (the app for Android is called AnkiDroid) and desktop. This is helpful when I come across Arabic vocabulary in a news article, for instance, and I add it to Anki via my desktop but see it when going through my flashcards on my phone later.
As a final note, "AnkiApp" is not the same thing as Anki. They are two totally separate products, and my recommendation only extends to Anki.