Hotel Codina was a good option for a hotel in the city. It is not located in the thick of things but on the other side of the beach, which keeps it much quieter. You can either walk to the main area or take a bus ride.
The rooms were of a decent side and well appointed, including the bathrooms.
There is a small cafe and bar on the ground floor and 1-2 small cafes on the street behind the hotel. But the best restaurants are in the main part of town.
To get a good view of the city, the access to the top of the mountain by the funicular is very close to the hotel.