Choosing an approach.
WHAT RENDERS ITS OWN CONTROLS
Flutter.
Identical everywhere, complete control, larger application, not platform-conventional by default.
WHAT USES NATIVE CONTROLS
React Native, and the .NET options.
Platform-conventional by default, with more platform differences to accommodate.
WHAT SHARES LOGIC ONLY
Kotlin Multiplatform, with native interfaces per platform.
Best platform feel, most interface work.
WHAT TO CHOOSE ON
What your team already knows Whether platform conventions matter Application size constraints Ecosystem maturity for what you need Who maintains it afterwards
WHAT NOT TO CHOOSE ON
Benchmarks Novelty
WHAT TO TEST BEFORE COMMITTING
Build a small representative feature, and measure size, startup and scrolling on a modest device.
WHY
Framework claims and actual results on low-end hardware differ.
WHAT TO ACCEPT ABOUT ALL OF THEM
Native knowledge is still required for configuration, debugging, store submission and some features.
WHAT NO FRAMEWORK REMOVES
The need to test on both platforms, physically.