When businesses decide to expand their digital presence, they inevitably encounter a host of challenges when it comes to developing mobile apps for both Android and iOS, even though these platforms share similar features. This issue becomes even more complex when they aim to extend their reach to desktop and web applications. Enter Kotlin Multiplatform, a solution crafted to tackle precisely this dilemma.
Furthermore, technology teams must grapple with a crucial decision: whether to opt for native app development or embrace a cross-platform approach. While there are various technology options like React Native and Flutter available for building applications that work seamlessly across different platforms, devices, and operating systems, Kotlin Multiplatform (KMP) stands out for its exceptional ability to cater to both native and cross-platform development, even if the app is already in the hands of users.
So, what exactly is Kotlin Multiplatform? This guide serves as your gateway to understanding the essence of KMP, shedding light on its merits and demerits. It offers an extensive exploration of Kotlin Multiplatform, providing valuable insights for developers and stakeholders alike. We’ll also touch on the types of applications where KMP shines. Whether you’re part of a startup or an established enterprise, if you’re looking to streamline the process of delivering digital products across platforms like Android, iOS, and web apps, this guide is tailor-made for you.
What is Kotlin Multiplatform?
Kotlin Multiplatform is like a handy toolkit for software developers. It’s like the Swiss Army knife of app development because it lets developers write code that works on different platforms. So, picture this: you write a piece of code once, and it magically works on Android, iOS, and more. This nifty toolkit makes cross-platform app development a breeze. It’s like having a recipe book that you can use for various meals, reducing the need to start from scratch every time and making your code super reusable.
Imagine you’re an Android or iOS developer. With KMP in your toolbox, you can say goodbye to writing the same code over and over. You write it once, and it works on both platforms. Plus, you only need to test it once, saving you a ton of time and effort.
Kotlin Multiplatform Mobile (KMM) is like the superstar subset of KMP. It’s your secret sauce for coding on iOS and Android from a single codebase. But wait, there’s more! You can even use Kotlin Multiplatform for desktop and web applications. It’s like having a versatile chef’s knife that works for different types of cutting.
JetBrains, the brains behind Kotlin, is the genius who cooked up Kotlin Multiplatform. They introduced it in 2017 as part of Kotlin 1.2. It’s still in the beta stage, but it’s gaining popularity.
Imagine you’re at a party, and 28% of the guests already know about Kotlin Multiplatform. That’s what JetBrains found in a survey in the latter half of 2021.
While some folks call Kotlin Multiplatform a framework, it’s more like a magical toolbox that lets developers share code across platforms. It combines the best of both worlds – like making a dish that’s great for both meat lovers and vegetarians. So, when you’re building a mobile app for both iOS and Android, you can share the common code and only cook up platform-specific code when you need to.
Is Kotlin Multiplatform stable?
At first, Kotlin Multiplatform Mobile embarked on an experimental journey, with the Kotlin team delving into various memory management techniques, libraries, and project configurations. Their goal was to enhance the development process, making it as efficient as possible. The experimental phase has now concluded, and what emerged is a robust and polished solution for cross-platform app development.
In this journey, early adopters of KMM, including big names like Philips, Netflix, Baidu, and VMWare, were instrumental in shaping JetBrains’ vision. Their invaluable feedback played a vital role in finding the sweet spot, allowing code reuse while still embracing platform-specific features. JetBrains recently celebrated a significant milestone by announcing that Kotlin Multiplatform Mobile has moved into the Beta stage, steadily advancing toward stability.
The promotion of Kotlin Multiplatform Mobile to Beta isn’t just a mere formality. It’s a testament to the advanced stage of development and a guarantee of its reliability for seamless integration into your projects. What’s more, JetBrains is actively dedicated to minimizing any migration challenges you might encounter, demonstrating its commitment to ensuring a smooth transition for developers like you.
What platforms does Kotlin Multiplatform support?
Kotlin Multiplatform serves as a valuable tool for developers, making it easier to share code among different mobile platforms. It empowers developers to build mobile apps that can seamlessly run on both Android and iOS. With KMP, you can create a shared codebase that includes a wide range of essential features, such as handling network operations, storing data, validating data, collecting analytics, performing computations, and managing various aspects of your application.
When it comes to desktop development, Compose Multiplatform offers a similar advantage. It enables the sharing of user interface (UI) elements across various desktop platforms, including Windows, macOS, and Linux. This means that you can design your app’s UI once and have it work seamlessly on different desktop environments.
Furthermore, Compose Multiplatform allows you to develop multiplatform libraries. These libraries contain both shared code and platform-specific implementations designed for JVM, web, and native platforms. Once you publish these multiplatform libraries, other cross-platform projects can use them as dependencies. This makes it easier to build and maintain consistent and efficient code across a wide range of platforms.
What kind of apps is Kotlin Multiplatform most suitable for?
Even though Kotlin Multiplatform is still in its beta stage, it has already managed to captivate the attention of industry giants like Netflix, PlanGrid, CashApp, Memrise, and VMware, not to mention a slew of other renowned companies and applications that have adopted KMP.
While this technology is relatively new, its community of developers brims with optimism about the potential it holds for cross-platform development in the years ahead. Regardless of whether your application falls within the realms of eCommerce, fintech, education, media, health, or any other vertical or industry, Kotlin Multiplatform can become a valuable addition to your technological toolkit. Drawing inspiration from existing KMP and KMM applications.
Top Apps Built with Kotlin Multiplatform
Although Kotlin Multiplatform Mobile (KMM) is still in its beta phase, it’s already made its mark with a few impressive apps thriving in the market.
From industry giants like Netflix, Baidu, and Autodesk to nimble startups, both big and small players are investing in technology to tackle their unique challenges.
As companies venture into the multiplatform landscape, they encounter not only the benefits but also the challenges it brings. However, these experiences contribute to the overall enhancement of the system. Let’s take a look at some noteworthy apps that are currently leveraging KMM in their production.
1. Netflix
Netflix, the largest company in the realm of video streaming services, presently employs KMM as well. Under the banner of Prodicle, their application seeks to provide essential support for the physical production of television series and cinematic content. To cater to the diverse requirements of production teams, this application effectively manages numerous configurations with the assistance of an in-house tool known as Hendrix.
Due to prevalent connectivity issues experienced by users, Hendrix’s logic couldn’t be shifted to the backend. Consequently, all computations must be performed on the device. To fulfill these criteria and eliminate redundancy, Kotlin Multiplatform was selected as the solution.
2. PlanGrid
PlanGrid, an application for construction management, empowers users to generate, examine, modify, and disseminate a diverse array of essential documents for construction sites. As per Autodesk’s data, PlanGrid finds application in over 1.8 million construction endeavors spanning 100 countries globally.
Their primary objective revolved around the establishment of a unified point of reference within a collaborative codebase. KMM enabled the development of a singular module that their clients later implemented across Android, iOS, and Windows platforms.
KMM proved to be a suitable choice for several reasons. A significant proportion of Autodesk’s developers were already familiar with Kotlin. By leveraging a language native to Android, there was potential for code utilization, even if cross-platform code sharing didn’t prove effective for other platforms. Furthermore, it eliminated the necessity of interfacing with other languages through JNI.
3. Careem
Careem set out on a mission to make life in the wider Middle East region easier and more convenient. They created an all-encompassing app fondly known as “the everything app”. This nifty app simplifies various aspects of daily life, from getting around to ordering food and groceries, managing payments, and much more.
Ever since its inception in 2012, Careem has been a source of livelihood for more than 2.5 million Captains (their dedicated drivers), and they’ve made the lives of over 50 million customers a whole lot simpler. Careem’s presence now spans across more than 70 cities in 10 countries, stretching from Morocco to Pakistan.
In a brilliant collaboration with Kotlinlang, Careem decided to give their Captain app for Android a major facelift. After this successful endeavor, they decided to extend their services to iOS users as well. To make things even more efficient, Careem embraced the power of Kotlin Multiplatform to create a cross-platform app, ensuring that they could share code and make development a breeze on both Android and iOS.
4. XAPO BANK
Xapo, operating as a financial institution and Virtual Asset Service Provider, boasts licenses in both banking and asset services. Through their global mobile banking and asset management service, customers can seamlessly engage in transactions using both conventional fiat currencies and Bitcoin.
The mobile app offered by this bank is equipped with an array of features designed to empower users across the globe, enabling them to securely and conveniently send, spend, save, and receive money and Bitcoin on a worldwide scale.
The company’s technology stack encompasses:
- Utilization of Kotlin Multiplatform
- Swift language integration
- A proprietary UI Component Library, primarily built with SwiftU
- Comprehensive testing practices, including unit tests, snapshot tests, integration tests, and UITests
- Incorporation of the Swift Package Manager
- Reactive Programming
5. Cash App
Cash App, a fintech mobile application, empowers individuals to easily manage, receive, and grow their finances. It was crafted by Block, Inc. and has been accessible on both Android and iOS devices since 2013. Their strategic collaboration with Touchlab in 2018 was aimed at advancing multiplatform development.
Today, the application uses its own open-source storage solution called SQLDelight. The library is able to generate type-safe Kotlin APIs from SQL statements, which greatly reduces writing time and room for inconsistency.
According to the Square Inc. blog, the development team previously shared logic, using a JavaScript Engine embedded into platform apps. This had some benefits, like the ability to update the presentation layer independent of a new app release.
Unfortunately, this solution slowed down both code writing and reviewing. Kotlin seems to work well up to the point where other parts of the application are planned to be shared.
Build your first app in Kotlin Multiplatform with Xcelore
Companies such as Netflix, Baidu, Autodesk, and even smaller enterprises are acknowledging the advantages of adopting Kotlin Multiplatform for app development. They are actively investing in this technology to address their unique challenges.
Kotlin Multiplatform Mobile (KMM) offers the flexibility of writing code once and ensuring it functions seamlessly across various mobile platforms, including iOS and Android. Furthermore, it facilitates the effortless reuse of shared business logic across platforms, resulting in a more cost-effective and efficient development process. So, if you’re harboring an app concept, don’t hesitate to explore the possibilities of creating it with KMP. Contact us now!


