React Native vs Kotlin Multiplatform. What will Multiplatform Development’s future look like?
React Native has become a popular choice for the development of apps for Android and iOS over the past few years. Undoubtedly, the most tempting characteristic of this technology is the cross-platform code sharing promise. Although a very popular choice, React Native is not and has its limitations as a Holy Grail. There are businesses that have already decided to radically change their mobile technology stack and switch to platform-native development for their existing apps.
However, there is a new solution available that aims to enable scalable, multiplatform projects to be implemented and promises to eliminate problems with React Native. Not only iOS and Android, but also backend, web frontend, and desktop platforms can be targeted at the same time by Kotlin Multiplatform, allowing you to compile the shared codebase into platform-specific executable code without any bridges.
In order to find out which use cases are better suited for each of them, this article will compare and contrast the capabilities of the well-adopted and already mature React Native technology with the new experimental Kotlin language function called Kotlin Multiplatform.
Since Kotlin began to be officially supported by Google as a language for Android app growth, it has been constantly growing. Due to its cleanness and pace of growth, Kotlin is becoming very popular among developers. In the Stack Overflow Developer Survey in 2018, it was also selected as the second most loved programming language. While currently the most common among Android developers is this new language itself, it can also be used on the backend and frontend sides. In addition, on iOS, MacOS, Linux, Windows, WebAssembly, and even embedded systems such as STM32, it can be compiled and executed natively.
What's the future going to look like?
In the mobile region, React Native is losing its supremacy, which is possibly caused by the latest release of Flutter – another Google multiplatform UI system. The future of both is still uncertain, but the buzz for Flutter seems to have already begun.
Then is there a place for Kotlin Multiplatform?
So it seems. It turns out that the incorporation into mobile apps along with Flutter might be a fantastic technology. That’s because Flutter enables the UI layer to be easily isolated from the business logic, and Kotlin Multiplatform offers an incredibly good way for multiple platforms to share business logic code.
A Google experimental project is also under progress – Hummingbird. It aims to allow the reuse not only on mobile platforms but also on the web frontend of Flutter UI code. And that’s the web frontend where the ability to be used is also open for Kotlin Multiplatform. About Google I/O 2019, the Flutter for Web beta is rumoured to be released.
Will we be able to create multiplatform applications at the same time for mobile and web platforms? It seems like such an option is going to be open. It will include the use of two languages – Kotlin and Dart – to build apps with Kotlin Multiplatform and Flutter. Both languages, however, are friendly from the developer’s viewpoint.
There is also a Google experimental project in progress – Hummingbird. It aims to allow reuse not only on mobile platforms but also on Flutter UI code’s web frontend. And that’s the web frontend for Kotlin Multiplatform where the ability to be used is also accessible. The Flutter for Web beta is rumoured to be written around Google I/O 2019.
Is this Respond Native’s end? Probably not. It will still be a great option for iOS and Android applications as a mature technology – particularly for rapid MVP creation and rapid prototyping. It seems, however, that it is going to be an exciting year and just around the corner is a new multiplatform development standard. Stay tuned and let’s see what it brings this year!