Train app is CP.pt and Bus app is ALSA.
ALSA Is good in that you buy the tickets and download them immediately to your Apple wallet. CP.PT - you get the tickets by email and have to download them to your files and fish around for them later.
Porto and Lisbon have multiple train and bus stations.
In going from Porto to Lisbon, I chose the departure as the main station in Companha, although Sao Bento was closer to our hotel. But good news. We can board any train in Sao Bento for free and go to Companha to catch our train there - according to employee working the ticket window.
Going from Vigo Spain to Porto, you can also sing up with the Portuguese companies to get to Porto. However, only two trains a day - morning and night with nothing mid-day. So we had to go to the bus station. It turns out Urzaiz is the station for Alsa. No reserved seats, so get there early and get in line. It also turned out that at least one of the bus trips won to Casa de Musica in Porto which was closer to our hotel. Just as we found one of the alternative train stations (Santa Appolonia) had a direct metro line to our hotel area there. So it helps to know how far your hotel is from a metro line and station, and choose appropriate stations.
For a day trip - say Porto to Guimares - you take the CP.PT train from Sao Bento or Companha. However, it's a local train with a dozen stops, so you can't buy the tickets via the app and have to stand in line.
Taxis are really cheap, we paid 6-8 eu for a group to go a few miles. That area near Casa de Music has a nice mall, is away from many of the tourists, and there is wonderful upscale food mall Bom ... something. Much like Lisbon's Time Out Market. That whole area near Sao Bento to the Bridget and river is just insane and I would never stay around there. So the taxis, ride shares, and metro's make for more affordable and nicer stays.