Meet the 8Bitdo Pro 2 Bluetooth Controller: a highly customizable controller that supports Android, macOS, Steam, and even Raspberry Pi. It has a 4-way mode switch and 3 profiles. It runs on battery for 20 hours and has a USB-C port.
This controller has a convenient software for PC and mobile devices for button mapping, adjusting sensitivity, and assigning macros. Vibration intensity is also adjustable. You can find out more about it here.