“For the industry at large, I think cross-platform is inevitable.

When mobile adoption was growing rapidly you didn’t have to worry about engineering efficiency. With that plateauing, the industry is focusing more on efficiency. We care about it here and it’s a priority for leadership.

React Native, Flutter and KMP are the only multiplatform choices.

React Native feels like they focus on sharing UI rather than sharing under-the-hood.

I’d use Flutter as an individual and run until I faced a limitation with it, which depending on the app I was working on, I may or may not encounter. Flutter becomes a harder choice for established products and when working with other people. For instance, getting the iOS team onboard would be a tough sell. Flutter’s weakness is KMP’s greatest strength: integration with platform native code. In an established app, you have lots of existing native code to integrate with, so that’s a critical ding to Flutter. Also some kinds of app will likely always need those “escape hatches” to go to native solutions (anything using BLE for example), and for those apps, even if they’re new, Flutter might not be the best option.

By contrast, KMP’s solution for integrating small platform-specific pieces of logic seems the smoothest (of the multiplatform options) by far. I totally agree with KMP’s strategy of not caring about UI but sharing everything underneath the hood.

So…process of elimination, all my eggs need to be in the KMP basket in order to have a happy future.”