Despite only recently moving into beta phase, Kotlin Multiplatform Mobile (KMM) already has a handful of successful apps on the market.
Large companies like Netflix, Baidu, Autodesk, and also small ones or startups invest in technology to resolve their specific problems.
Companies discover both benefits and hurdles of the multiplatform world, but in doing so they also improve the system as a whole. I will try to summarize some of the more recognizable apps that use KMM in production.
Careem developed a comprehensive app called “the everything app” with the aim of enhancing mobility and convenience in the wider Middle East region. This app streamlines various aspects of daily life, including transportation, food and grocery delivery, payment management, and more.
Since its establishment in 2012, Careem has provided income opportunities for more than 2.5 million Captains (drivers), simplified the lives of over 50 million customers. Careem operates in over 70 cities spanning 10 countries, from Morocco to Pakistan.
Careem collaborated with Kotlinlang to revamp the engine and infrastructure supporting their Captain app on Android. Following this, they made the decision to develop an iOS version of the Captain app. Leveraging their ongoing Android rewrite, Careem opted to use Kotlin Multiplatform to build a cross-platform app, allowing for code sharing and streamlining development across both Android and iOS platforms.
The project demonstrated its success and confirmed the stability of using KMM (Kotlin Multiplatform) in mobile app development.
Source: App Store
Xapo is a financial institution and Virtual Asset Service Provider that holds licenses in both banking and asset services. They provide a worldwide mobile banking and asset management service that allows customers to effortlessly conduct transactions using both traditional fiat currencies and Bitcoin.
The bank’s mobile app comprises features that empower users worldwide to securely and globally send, spend, save, and receive money and Bitcoin.
The company’s tech stack includes:
- Kotlin Multiplatform
- own UI Component Library (mostly SwiftUI)
- Unit tests, snapshot tests, integration tests, UITests
- Swift Package Manager
- Reactive Programming
Source: App Store
PlanGrid is a construction management application that allows users to create, view, edit, and distribute various types of documents needed on construction sites. According to Autodesk, PlanGrid is used on over 1.8 million construction projects in more than 100 countries around the world.Source: Google Play
Their main goal was to establish a single source of truth in a shared codebase. KMM facilitated the creation of a single module that was later used by their clients for Android, iOS, and Windows.
KMM was a good fit for a couple of reasons. Kotlin was already known among a large portion of the developers working for Autodesk. Using language native to Android meant that the code might have been used even if code sharing wouldn’t work for other platforms. It also removed the need of linking other languages through JNI.
Memrise is a language learning app that uses memes, videos, and pictures as tools to ease the education process. Entertaining content is combined with mnemotechnical methods to make learning languages more effective. Users also have the ability to add their own content, which extends the possibilities even further.Source: Memrise
The application has been on the market for some time, but developers discovered a need to fix inconsistencies between platforms. After small experiments with Rust, the developers changed their approach and chose KMM as the solution. Today, according to a case study published on the Kotlin webpage, they keep logic, network communication, and persistence layers in a shared codebase.
KMM was the best choice because it allowed for sharing logic that couldn’t be moved to the backend side without degradation of the offline experience. Compared to other multiplatform solutions like React and Flutter, KMM provided a way to share only a specific part of the application, leaving the rest intact.
Cash App is a fintech mobile app allowing users to spend, receive, and invest money. The platform, which was developed by Block, Inc. has been available on the market since 2013 for both Android and iOS. In 2018, they teamed up with Touchlab to push multiplatform development forward.Source: Cash App
Today, the application uses their 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.
Unfortunately, as stated in the KMM case study, 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.
Netflix, the biggest video streaming service company, also currently uses KMM. Their app called Prodicle aims to support the physical production of TV shows and movies. To deal with a variety of production team needs, the application handles multiple configurations through an internal management tool called Hendrix.Source: Netflix Technology Blog
Hendrix’s logic couldn’t have been moved to the backend side because of common poor connectivity issues among users. That is why all calculations have to be done on the device. In order to meet these requirements and to avoid duplication, Kotlin Multiplatform was chosen.
VMware has a lot of apps in their portfolio. Some of them are part of Workspace ONE, a digital platform that facilitates managing and delivering applications across multiple devices securely. This wide range of products led to the search for a multiplatform solution, one of which was KMM. A separate part of the development team creates KMM libraries later used by application developers.
KMM was chosen because of strong support by Jetbrains and Google. That resulted in well-designed and maintained IDEs like AppCode, IntelliJ, and Android Studio. A tight connection with the language itself makes it a robust solution and provides the ability to utilize libraries with various technologies as dependencies.
Build your first app in Kotlin Multiplatform
The companies like Netflix, Baidu, Autodesk, and as well as smaller businesses recognize the benefits coming from building apps in Kotlin Multiplatform and invest in this technology to resolve their specific problems.
KMM gives the freedom to code once and have it work identically on different mobile platforms, iOS and Android. You can also easily reuse common business logic across platforms, making development more efficient and cheaper. So if you have an app idea - don't be afraid to try and build it in Kotlin Multiplatform.