The best tutorial is the one that is not a tutorial.
Introduce the concepts to the player in a way that does not feel like he is doing an actual tutorial. Lots of players prefer to skip explanations, thinking they are smart enough to understand your game. They might be, but there are always details they will not catch and later feel frustrated. With a free game (with IAP or other free to paid model) that means they will throw it away.