Hi Bodhan. I have released a commercial App in which we shared ViewModels between
Android and
iOS. Technically, the use of KMM was successful 🎉 (happy to answer any questions about this) but from a human perspective, there are things I would do differently next time.
In particular; iOS developers did
not like being told they had to write logic in Kotlin rather than Swift, and that almost certainly contributed to one of them leaving the company. Consider all your developers' individual appetites to up-skill or adopt KMM. My learned advice would be let such tech adoptions be a team decision, make your best case for KMM be open to the possibility that's it's not the right tool to use.
If going ahead; identify mini 'quality gate' PoC's that can be built to prove to the team that the KMM tech stack will support your intended use cases, then (this is most important)
let the team implement those PoC's to
feel the feasibility for themselves.
At the end of the day if you're coercing a team to adopt something they don't want to; you will become the go-to guy for all problems, and ultimately the target of 'blame' if things don't go as expected. You don't want to be in that position, trust me.
This may not the case in your scenario; since it sounds like your team already have comfort with Kotlin.