"Production ready" comes up a lot. It's presented like a binary, but it's not a binary situation. People are putting it into production. I would say all I do is work with companies putting it into production. As Paul mentions, though, you will like spend some time sorting out config issues, etc.
we are using it in production. The code it produces is very production ready! The build system is a big challenge, though. If you can wrangle it and get the build system to work for you, the code it produces saves us a lot of time. I’d recommend having a Gradle master on your team before making the plunge, though!
And having some cross platform senior+ engineers helps, too. Learning the limitations of the iOS side can help write Kotlin code that is also good iOS code.
(or at least, not bad iOS code)
10 months ago
I’d recommend having a Gradle master
Thanks to KMM I kind of became one 😁
Learning the limitations of the iOS side can help write Kotlin code that is also good iOS code.
And there are many things you'll just find out after some time. I've set up a guideline on what works and what not.
• Many things are big questions like. How can I transform from a flow to a publisher?
• What strategy do we have to marry the reactive code that android devs write with the imperative code the iOS devs write?
• Which layers do we move to shared and which don't we?
• How do we expose our shared lib to iOS and Android?
And then there are many many smaller things to know. For example:
• in Swift every object has a "description" which is equivalent to kotlins toString. We've put a description in data classes many times and that leads to a
being exposed to iOS which is confusing.
• Inline classes export as their backing property
We found a solution to every problem so far and the journey was well worth it. Especially my teams got really close together in the process. Before our project with the internal code name "MobileShared" came into live, android and iOS were basically separate islands.
Now we all meet regularly together and more work as one unified team.