Most apps train you to recognise words. Fluency is something else: it is the ability to keep going when you do not know the next one.
Recognition and production are different skills, and they are trained by different things. A flashcard asks “do you know this word?”. A conversation asks “can you finish this sentence without stopping?”.
The bottleneck is rarely vocabulary. It is the tolerance for being wrong in the middle of a sentence — and no drill trains that, because drills let you stop before you commit.
The single highest-value trick: record yourself and transcribe it. Reading your own broken sentences is far more effective than reading someone else’s model answer.
It answers in English. Instruct it to stay in the target language, and to slow down rather than simplify. Slower is useful; simpler is not.
You run out of things to say. Prepare five questions before you start. The silence is a preparation problem, not a language problem.
You get polite nothing-feedback. “Great job!” is worthless. Ask explicitly for three numbered errors. If it says there are none, ask again with “be strict”.
A private chat with no account required. Useful here for one specific reason: your practice transcripts are the most personal text you will ever write in a foreign language. They are not stored.
Excellent for corrections, and the most forgiving if you are just starting. Conversations are kept on their side.
Better than most at following the “correct only what blocks understanding” instruction literally. Also keeps conversations.
This is not a ranked list and none of these links are paid. The point is that the routine above works with any of them — the difference is only what happens to what you write.