But I don't agree cross-platform can't feel "right". Flutter's approach it can't. React Native's it can. Qt vs WxWidgets all over again.
If I had to duplicate my codebase for each platform and learn each IDE/language just to continue my app, it would never exist.
I solely created and maintain the iOS app, the Android app, and the web app for my company and for my side projects thanks to React Native.
I can extend any native api or view, I can learn middle out for each platform.
I can abstract and swap out any file or conditionally style based on platform.
I developed the web app first using React Native Web. It took me a month to get the iOS and Android app released to the store.
No Ionic or web wrapper crap needed... The one thing is getting the React stack and tooling just right.
So it's Expo or devote quite a bit of time in the beginning to your stack.