The best way to learn a foreign language is through immersion.
Immersion means that you completely stop using your native language even if you are still a beginner in the target language. You learn the language in an authentic way instead of learning by translating from your native language.
Overwhelming the students with grammar, vocabulary and books not only takes all the fun out of learning a language, but may even ignite in the students a repulsion for the language. Now, interacting live with friends from other countries is a whole other story, and a strong motivation to improve their language speaking ability.