Best way/program to make a video like this?

I want to make videos like this. Smooth transitions and a few animations. What's the best way to do this?