Before I begin, let me add a disclaimer that I am part of a team working on a language learning app called SpeakTribe. We have it for Android currently, and will be launching an iOS version soon.
There is no dearth of language learning tools out there today (apps or otherwise). But different methods have worked for different people. And much of it because different people will have different motivations for learning a language (something that you allude to in your post as well).
The prime idea that led to SpeakTribe was helping people converse in the language we learn. Talk to their friends, peers or strangers in the new language they choose to learn. And SpeakTribe users have loved it.
We actually took a different route compared to the vocabulary-heavy approach. We felt that you do not need to master a big vocabulary very early in your learning process to be able to converse fluently. So while we go through vocabulary, we also pay a lot of attention to elements that will help you frame sentences — prepositions, conjunctions, etc. But the part about the app that the users have absolutely loved is the conversation feature, allowing users to communicate with the app and practise their listening and speaking skills. This, they say, have helped them feel more confident while conversing in the language.
If you’d like to try it, we’d love to hear what you think.