Should I use MBED of ARM or native platform of microcontroller suppliers?
It depends.  


Do you want easy portability between ARM microcontrollers of different product families or even manufacturers? Do you wish to develop IoT applications and want simple internet connectivity? Would you like a vast selection of portable, easy to use libraries?
Use mbed.
Do you despise having to reinvent the wheel, but don't want the overhead of mbed? Do you dislike developing code with a web app? Is the ability to switch to a different manufacturer superfluous to you, but portability within the same product family is still required?
Use the native libraries from ST (HAL or SPL).  
Do you want full control over every little detail of the hardware and software? Do you want to optimize your code to fit in the cheapest microcontroller, execute super fast, or use as little power as possible? Do you hate having to deal with over-abstracted, slow and inflexible libraries and would rather do it yourself?
Program bare metal: include just CMSIS and register definitions, study the datasheet with care, and write your own code.