# KMP vs Flutter vs React Native

DevFeed: [KMP vs Flutter vs React Native](<https://devfeed.tech/articles/kmp-vs-flutter-vs-react-native-23907.md>)

Original publisher: [Read original article](<https://medium.com/icerock/kmp-vs-flutter-vs-react-native-cb7d1958fab3?source=rss----b74ae24564e---4>)

Author: IceRock Development

Published: 2023-04-28T03:14:57Z

Content type: comparison

Language: en

Sources: [IceRock Development - Medium](<https://devfeed.tech/sources/icerock-development-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [React Native](<https://devfeed.tech/topics/react-native.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [interface](<https://devfeed.tech/tags/interface.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [react-native](<https://devfeed.tech/tags/react-native.md>)

## AI overview

This article compares Kotlin Multiplatform Mobile, Flutter, and React Native for cross-platform mobile development. It explains that Kotlin Multiplatform can share business logic between Android and iOS while preserving native UIs, whereas Flutter draws its UI on a canvas and React Native maps native components to JavaScript. The article emphasizes that the best choice depends on the project's specific requirements.

## Source excerpt

There is a wide range of options in cross-platform nowadays, among them Flutter, React Native, and, of course, Kotlin Multiplatform Mobile. Which technology should you choose, and why this one? Let's try to clear out! All technologies have their advantages and disadvantages, resolve particular problems, but never all of them. Thus, your choice will depend on specific tasks. Guys from Jetbrains have made an incredible attempt to optimize development costs and reuse the code. Moreover, such reuse is possible not only within one platform but also between different platforms (Android and iOS). If your development team wants to keep native UI for each platform, then Kotlin Multiplatform Mobile is your perfect option. It is due to the fact that Kotlin Multiplatform doesn't do UI at all. It, instead, does business logic for Android and iOS apps. Because of the special configuration of the project, it is possible to make a project that will be compiled in the Android library with specific code for Android, and in the iOS framework with the corresponding code for iOS. From a technical perspective, there are no more problems with using the same code on iOS and Android at the same time. When you debug your code, you only need to edit it once, and changes will happen on both platforms. However, on the native side of applications, it would be better not to share the following: the whole interface; binding the interface to the shared Viewmodel from the shared code library; platform-specific features: work with camera, NFC, Touch ID, or Bluetooth. And in any case, sharing UI code across platforms is not necessary. This usually requires several iterations to make the user UI and behave more natively. This, in turn, requires additional development cycles. Flutter uses canvas from native SDK of different platforms and draws its UI component on that canvas using Material design specifications. React Native uses native components mapped to js code. React makes it possible to update the