Your friend is right. Using 는 makes it much more natural.
- 나는 고양이를 좋아해요. 그런데 강아지를 싫어해요.
This sounds direct and textbook like.
In English, it is like "I like cats. But I don't care for dogs", with not much subtlety or flow in it.
- 나는 고양이(를/는) 좋아해요. 그런데 강아지는 싫어해요.
This is the natural way to say it, using 는 to set one apart from the other.
It is like "I like cats. But as for dogs, I don't care for them".
The difference comes from the sense the 은/는 particle imparts.
In addition to its function as a topic marker, 은/는 can replace 을/를, the object marker as it does here.
When it does this, it sets apart, or contrast the object from other real or imagined choices - it narrows the scope.
Plus, the sentence becomes smoother because it has a feel of starting a new topic naturally.
You should practice with lots of examples to catch the exact sense of it.
- 난 수학을 잘하는데 물리를 잘 못해: I'm good at math but not so at physics.
- 난 수학은 잘하는데 물리는 잘 못해 - more natural.
- 나는 뭐든 잘 먹지만 양파를 싫어해: I eat most everything, but hate onions.
- 나는 뭐든 잘 먹지만 양파는 싫어해 - more natural. Onions are contrasted with the rest.
Lastly, 은/는 also attaches (not replaces) to other particles (에, 에서, 으로, 부터, etc) to play the same role.
It is practically all over the language, so it's very important to know its sense and usage thoroughly.
- 이번 여행에 대구에 가지만 부산에 안 가: (unnatural) I stop by Daegu but not Busan on this trip.
- 이번 여행에 대구에는 가지만 부산에는 안 가: more natural.