Do I have to write @impl true before each function?

It is good practice.
Even better, to use the name of the behaviour module that you are implementing, instead of just true. This is necessary when a module implement more than one behaviour.

It will definitely improve the readability and maintainability of your code.

Read more about @impl and behaviours in: