I started mobile development natively using Java/RxJava switched to Kotlin, then learned Swift and looked into cross-platform development. There are 8 relevant cross-platform options:
1) Flutter
2) React Native
3) Xamarin
4) Delphi
5) Godot
6) Unity
7) Unreal
8) Web application in your browser
Cross platform can be a pain, and sometimes you do have to mix in some native code (using Bluetooth or BLE is a real headache). Now, depending on your application you make the choices. If you only have web developers in your team (about 50% developers can only do web dev!) then you can only do React or a mobile web application.
If you are building a game 2D/3D it would be crazy for you to not chose Unity/Unreal/Godot... Godot is free, so you can't complain about cost.
Now if you have done web dev and a little more programming you can fall for Flutter and love how easy it is to code your UI (which is just a gigantic pain) and how amazing (NOT) it is. It feels like programming in javascript, Dart is fairly easy to learn! However, every release can be incompatible with the previous one, libraries change drastically, and you are stuck with supporting an application to get it to compile... not including the issues from apple and android when they decide to change versions/sdks/apis... and that is only when targetting mobile!! I learned, developed, and deployed with Flutter and then I walked away from it. The Skia engine is great at rendering, but that is as far as I go with it. Best decision ever for my sanity and projects.
Xamarin, you develop 2 UIs one for Android and one for iOS. Many medical applications (several from BD) are built it in, using C#, Bluetooth and BLE are an even bigger pain! Frankly, it sucks and makes you wish for Flutter.... but it does look more native than Flutter.
Finally, Delphi... that is my now TO GO solution. Never in my life would I have expected this, but I can leverage the Skia engine with their FMX library and make slick performant applications for mobile... and Desktop!! I can embed a native browser on the app if needed. It is a bit different building the UI, but I am much more productive with it. It is a real language, with real tools, not a perfect IDE (but good overall), and BLE support works out of the box... cross-platform! I have deployed applications on Android, iOS, MacOS, and WIndows. There are some libraries you want to have, like the TMSSoftware maps that make life a lot easier. When I need to develop an Enterprise tool or a performant mobile app, I go to Delphi first now. If the requirements need native, then I go native and build two applications using the Rx libraries. Kotlin and Swift are close enough that switching between them is not so bad... but yes it will take you about 2.5-3x as long when supporting two different repos and architectures.
My 2 cents here are for a game using a game engine, for an application try Delphi or go native... otherwise you are wasting your time.