Via .NET, which has been cross platform since 2016 or so (before that Mono was the preferred framework).
For the UI bit, I'd recommend Avalonia UI (which is what Ryujinx uses as well). It's cross platform, has been out forever (2013 - from their FAQ page) and even runs on embedded devices.
Rider (by JetBrains) has excellent Avalonia support via a plugin and is much better for other .NET stuff over Visual Studio for Mac.