I always enjoyed learning languages with Duolingo, but I have to admit that their heart system made me despise the app. It just feels like a rip-off mobile game. Instead of keeping me motivated to learn a wonderful language, it is frustrating when I lose a heart in not-perfect lessons and I can't continue lessons without hearts, only repeat old ones. Most courses also lack grammar explanations (except e.g. Spanish), so you'll mostly only learn vocabulary/phrases by heart.