

KMM focuses on a logic first approach, our application’s business layer is cleanly separated from the UI layer. We can write as much common code as needed, and anywhere in the entire application, we can just write native code. Kotlin doesn’t lock us only to the framework supported features. This is where KMM is different from Flutter and React Native. This means that if our selected framework (Flutter or ReactNative) doesn’t have a particular capability, or it doesn’t support new features introduced recently by Android or iOS, we get blocked. Whatever these frameworks (Flutter/ReactNative) support, we get tied to these restrictions.

When we work with Flutter or React Native we lock our-self in their ecosystem. But in case we want to write platform-specific code in the business logic layer, KMM also provides us that flexibility. We have to write platform-specific code to implement only the UI. With KMM we can have a single codebase for the business logic for both iOS and Android apps. Android and iOS versions of any App have a lot of common functionality, but they can differ in terms of UI as the UI components provided by Android and iOS have their own look-n-feel.

It uses the multiplatform capability of Kotlin. Kotlin Multiplatform Mobile is an SDK provided by JetBrains for cross-platform mobile development.
