One of the best apps that I have encountered to learn languages in general is Duolingo (https://www.duolingo.com). You can use it online or on any smartphone. The exercises are fun, very much like a game as you are progressing through various levels, earning experience points after you have passed each exercises.
There are various kind of exercises:
– Writing after listening a phrase being read
– Translation in both ways English to French and French to English
– Reading a sentence in a microphone (which you can avoid, if you’re too embarrassed to speak to the phone in a foreign language during commute).
No more than 3 mistakes can be done, otherwise you’ll have to do the exercise again.
You are also able to skip levels by taking the required test if you feel that the first few levels are too easy for you.
I find it a good complement if you have a few minutes to spare during the day.