I'm quite pleased with the STM32 MCU's and only do full bare metal on these. Tried the ST tools at first but found them to be crap and the HAL in my opinion is awful.
I don't even use the cube stuff to setup my projects. I just use the datasheet and reference manual to lookup what is needed to make it work.
There are a few pitfalls, where the enabling of the peripheral clocks is one of them. Another one is the pins used for JTAG that need the JTAG interface to be disabled when you want to use these pins yourself for other peripherals or just plain GPIO.
Some of my earlier work is in my github repository, like this one:
https://github.com/pecostm32/STM32F303_Sine_Square_GeneratorMy new method of working with them is to not even use CMSIS, but search for the header files ST packs with their ST tools and dismantle them to separate files per peripheral. Is a bit of work, but makes life simpler in the long run. I can do this because I'm retired and it is just hobby.
At the moment I'm working on a project with the STM32F411 and for each peripheral I start to use I create a new header file and when needed also a code file.
No idea what it will do on the MAC, but as long as the arm compilers are available on it you will be fine without any of the ST tools. I myself use netbeans 8.2, just because I'm used to it and it works fine for me. Yes I'm a dinosaur.
For loading my programs to FLASH I use a cheap ST-Link clone in combination with openocd. One can find plenty of those cheap St-Links on Aliexpress.
At first you might find the documentation a bit crappy, but with some experience you will get things working in no time.
There are some differences in peripherals between the different series of STM32's but there are a lot of similarities too. Differences are mainly in the clock and the GPIO setup, for what I have seen of it.