Kotlin Multiplatform Mobile is a relatively new technology from Jetbrains to share code between multiple platforms, such as iOS and Android.
Unlike other technologies such as Flutter, React Native or Xamarin, where developers often need to make an all-in decision to share both UI and business logics between platforms, KMM emphasizes on sharing, non-UI business logic code only.
One of the most popular use case of KMM in this early phase of the technology is to share business logics between Android and iOS apps.
If you are an Android developer, getting start with KMM is easy to start sharing business code. But if you are an iOS developer, the learning curve is a bit more steep
iOS developers will need to start learning about:
- Environment setup for Android developement
- IDEs to develope apps for Android such as Android Studio
- Kotlin programming language
- Android build tool such as Gradle
- Android development frameworks
- Android UI frameworks
- etc …
Luckily, there are a lot of (free) resources avialable for iOS developers to get started with Kotlin Multiplatform Mobile and support our learning journey
The following list is some useful resources I found when looking for KMM information. If you know any additional resources, please let me know, I’ll add them to the list.
You can also find some practical use cases from some companies who are using KMM in production currently.
There is a list of sample projects for you to consult and learn from as well.
Touchlab is a software agency specialised into KMM technology. Their blog has some excellent articles about KMM and advanded usecases. They are also providing one of the best KMM template projects, KaMPKit which provides some best practices to organise a KMM project.
John is the author of many practical KMM sample projects on his GitHub. He writes in his blog regularly about his experimentations with KMM and constantly updates to keep up with changes from KMM projects.
A similar github repository collecting useful KMM libraries is Kotlin-Multiplatform-Libraries
IceRock provides many KMM-optimized libraries to use in KMM apps on their GitHub
These libraries are excellent tools for sharing code between iOS and Android apps in KMM projects.
IceRock also provides a website where they crawl the Maven repository for potential KMM libraries.
Aleksander is using KMM in his projects at his company. On his blog, he is providing a lot of practical tutorials about not only Android development in general, but also about KMM, for example: Modularizing a Kotlin Multiplatform Mobile Project
If you are new to KMM, I’d recommend to see his talk about: Introducing KMM in an existing project
KMM is a relative new technology and its ecosystem is still young. With many new contributions from awesome KMM enthusiasts, this ecosystem is growing very fast currently.
I am a big fan of KMM and have just started my KMM journey as well (as an iOS developer). If you want to follow along my learning journey, please follow me on twitter to get the latest infomration.
If you find this article useful, feel free to share it with your friends.
I wrote a blog post showing a list of awesome resources I found while learning Kotlin Multiplatform Mobile, featuring @TouchlabHQ , @joreilly ...— An Tran (@antranapp) January 25, 2022
Please do let me know if you know other useful resources, I'll add them to the list https://t.co/aRkZcw5L5z