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
Awesome KMM Links
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.
Official Kotlin Multiplatform Mobile website
The first stop on your KMM journey should be the official Kotlin Multiplatform Mobile page. It has an excellent Getting Started tutorial for us to … get started.
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’s blog
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 O’Reilly blog
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.
KMM Awesome
Like many other awesome list, KMM Awesome collects a list of many awesome KMM-enabled libraries that you can use in your KMM apps.
A similar github repository collecting useful KMM libraries is Kotlin-Multiplatform-Libraries
IceRock Github
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 Jaworski’s blog
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
Marco Gomiero’s blog
Marco has been sharing many articles about Android and KMM on his blog. For me personally, this post showing a fix for Java runtime installation problem has saved me some frustrating hours.
If you are new to KMM, I’d recommend to see his talk about: Introducing KMM in an existing project
Conclusion
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