Duolingo is great at gamification and terrible for actually teaching you the language. You memorize a ton of random words without really learning how to put everything together.
I found Babbel to feel much more like an app designed by language instructors.