Hey all, is the long-term plan of Jetbrains to have Kotlin Multiplatform be mainly on business logic? It says so explicitly on the KMP website.
The reason I am asking is that I've been working with Kotlin for 7 years now and I love this language a lot. However, lately a friend of mine, without any programming experience starting learning to program using Udemy in 2020 in C#. For his company he made an app that works on iOS and Android. Not looking at architectural issues and what not, I was blown away by the fact that he was able to do that so easily, with 1 codebase.
I've been heavily interested in Kotlin Multiplatform, and have attended the KotlinConf workshop in 2019, which was awesome, but it was rough around the edges. I've seen a lot of improvements all around, but I am struggling to see if there is currently a point where having 1 Kotlin codebase for Android + iOS app is feasible.
For now:
• Android = Compose obviously, so that's easy
• Web = Compose for Web (not Canvas, but DOM)
• Desktop = Compose for Desktop, which is awesome by the way
• IOS = ... ViewModels in Kotlin and SwiftUI in Swift?
Compose Multiplatform is pretty experimental, to say the least, so I would never use that in production. So that means SwiftUI?
For me this is a large barrier of entry for me and also as a technology choice for a team. You'd always require Swift knowledge and that is not always readily available, especially in this market. Looking at the likes of Flutter and Maui I see that they clearly target this 1-codebase approach. I understand they have other drawbacks. But currently they have solutions that work already for a while including tooling. The fact that an inexperienced developer can get an iOS + Android app working, for internal use only, in Maui made me question actually the state of Kotlin in this regard.
Compose and Coroutines and all the awesome language features make Kotlin my favorite choice, but I am struggling whether I would choose it as a technology choice for creating an Android + iOS app. What are your experiences in this regard and/or am I missing something completely?
The testimonials of CashApp/Netflix/Philips (which made me smile as old Philips employee) are great of course. But those are big experienced teams with loads of knowledge and they (CashApp / Netflix at least) aren't companies I'd suspect have a lot of difficulty hiring excellent Swift engineers.