Another MacDive vote. The user interface alone is enough to recommend it. As others have mentioned SubSurface while having the UI/UX equivalent of stepping on legos with bare feet, is technically far superior and will have a lot more tech and advanced features. I just can't stand the UI despite it being better in those regards. If you get into tech diving, you will notice the MacDive technical limits more and more. I still don't care though. The other thing about MacDive that is both a pro and a con is that it's maintained by a single developer. They are, currently, highly responsive to feedback/bugs etc. That being said they could stop development tomorrow and that its. Subsurface being open source is worked on by a very dedicated team of volunteers updating and maintaining it, so the removal of any single developer isn't catastrophic.
My workflow (for boat dives) is that I take my iPhone out with MacDive's position recorder running (phone in airplane mode), and complete my day of diving. Take notes in a different app on my iPhone in-between dives. End of the dive day, stop the GPS recording, and import from the dive computer to my iPhone. Still on iPhone, tag the locations (from the GPS trail) for the dives, then cloud sync. Once home I can then edit the dive more on my desktop or iPad connected to an external monitor a lot easier from the notes, then cloud sync back to iPhone. Yes you have to buy two licenses but I personally think it's worth it, also like supporting developers doing good work.
For technical stuff I'll upload to Shearwater cloud and/or Subsurface, just to store the data and have it available for reference later. But I don't do any of my log info there, more of a data viewing service.
Edit: I have found that desktop bluetooth is just a pain in general on Windows, Mac, and Linux. I regardless of what service I'm using I always use mobile.
Also one pro tip, make sure you keep the shearwater app on your phone. When you travel and your phone updates it's time zone to whatever the local time is, open the Shearwater app and pair it your dive computer. Pairing your phone updates the dive computer's clock to whatever your phone is. So instead of digging through the menus its just a simple pairing. Then repeat it when you get home. You need the dive computer clock and phone time to align for the GPS matching to work. The auto update is a setting on the shearwater app, I think it's on by default but i'd check the very first time.