Although it is possible to write everything, right up to the view model (but not the view) in something cross platform and performant, keeping the GUI/view using only those languages/frameworks which result in native feel (both in terms of look and performance).
Sure, writing the GUI properly for each platform still requires more work, but far far less if all but the front end is cross platform.
However, it very rarely seems to be done, even with modern additions and improvements in C++.
I like that approach, but there’s no abundance of such cross-platform stacks either. And then you have to convert parts of the model to fit the views, and sometimes you want to use non-view technologies only available on a certain platform (Keychain, …). While it makes sense and the results are very good, it’s still a very non-trivial work, especially compared to a simple native app.
Sure, writing the GUI properly for each platform still requires more work, but far far less if all but the front end is cross platform.
However, it very rarely seems to be done, even with modern additions and improvements in C++.