http://en.m.wikipedia.org/wiki/Spaced_repetition
I believe Duolingo uses this technique to some extent.
By the way, I've been dabbling with iOS language learning apps. I've been trying to add simple games to help with the repetition that's required to learn a new language. Plus, I recently add a thousand images so people can learn by associating the foreign word with a picture. I think it can be better than associating the word with your native language. I've built apps for several languages (French, German, Italian,Russian,...). Here's my Spanish app: https://itunes.apple.com/us/app/h4-spanish-lite/id388918463?...
I also started building a language site to gather my notes in one place and try out new ideas: http://thespanishsite.com