btw which is easier?
Detecting obstacles is easier than sensing a line.
Using the data to avoid the obstacle or to follow the line is about the same level of difficulty. In one case, you run the motors until a value (distance to obstacle) increases. In the other, you run the motors until the value decreases (distance from line).
I guess I need
A good list.
Could you recommend me some of these parts?
Start with the chassis. Get motors to fit. Get a shield to work with those motors.
The sensors depend on what you want the bot to do (avoid or seek).
Should I go for some of them instead?
In my opinion, part of the fun is choosing the components and assembling them. A premade bot or kit takes some of that away.