Programing
Google’s Official Endorsement of Kotlin Multiplatform (KMP): A New Era for Cross-Platform Logic
Published:
•
Duration: 4:15
0:00
0:00
Transcript
Host: Hey everyone, welcome back to Allur, your go-to space for everything PHP, Laravel, Go, and of course, the ever-evolving world of mobile development. I’m your host, Alex Chan.
Host: To help me unpack all of this, I’m thrilled to welcome Marcus Thorne to the show. Marcus is a Senior Mobile Architect who’s spent the last decade navigating the trenches of both native and cross-platform development. He’s been an early adopter of KMP and has actually been consulting with teams moving their production apps over to this new "Google-recommended" stack. Marcus, thanks so much for joining us on Allur!
Guest: Thanks, Alex! It’s great to be here. It’s a pretty wild time to be a mobile developer, isn't it? That I/O announcement really felt like a "growing up" moment for the entire ecosystem.
Host: It really did! I mean, I remember the days when mentioning KMP in a serious stakeholder meeting would get you some very skeptical looks. But now that Google is "dogfooding" it—using it for Google Docs and Drive—it feels like the safety net is finally there. What was your first reaction when you saw the I/O 2024 keynote?
Guest: Oh, honestly? A huge sigh of relief. Like you said, we’ve been playing with KMP in the "experimental" sandbox for a while. But when Google stands up and says, "This is our recommended architecture for sharing business logic," the conversation with clients changes instantly. It’s no longer, "Is this safe?" and more "How fast can we move?"
Host: Right! The "logic-first" approach. I think that’s where a lot of frameworks struggled in the past. They tried to make iOS look like Android or vice versa, and you end up in that "uncanny valley" where the app just feels... off. Can you explain why sharing the "brain" but keeping the "face" native is such a big deal for performance?
Guest: Yeah, that’s exactly it. When you use something like React Native, there’s often a bridge—a sort of middleman talking between the JavaScript and the native side. That can cause overhead. But with KMP, Kotlin/Native compiles directly to a native binary. On iOS, your Kotlin code becomes a framework that Swift talks to just like any other library. There’s zero-overhead at runtime.
Host: Interesting! So it’s not just a "black box" where you hope for the best. You still have that surgical control over platform-specific features. Now, I want to talk about the Jetpack libraries. This felt like the biggest "mic drop" of the announcement. Room Database on iOS? I mean, if you told me that three years ago, I wouldn't have believed you.
Guest: (Laughs) Right? It’s massive. Room has been the gold standard for Android persistence forever. Now, being able to define your DAOs and entities once in a `commonMain` module and have it just work on iOS? It’s a game-changer.
Host: And it’s not just Room, right? DataStore, ViewModel, even Paging... they’re all moving to KMP. Does this mean the barrier for an Android dev to start "writing" an iOS app is basically disappearing?
Guest: It’s definitely lowering. If you know the Jetpack suite, you now know about 70 to 80 percent of the architecture for an iOS app. You still need to learn SwiftUI for the view layer, but the state management—the `ViewModels`—can now live in the shared Kotlin module.
Host: Oh, that’s huge. Not having to context-switch between Xcode and Android Studio every five minutes is a dream. So, Marcus, for the developers listening who are sitting on a massive, legacy native codebase—maybe they have a separate Android and iOS team—where do they even start with KMP? Do they have to rewrite everything?
Guest: Definitely not. That’s the beauty of it. It’s not "all or nothing." I usually recommend a "Readiness Assessment" first. If you’re already using Clean Architecture—where your business logic is separated from your UI—you’re halfway there.
Host: It sounds like we’re finally moving away from that redundant labor. No more "I fixed this bug on Android, did you fix it on iOS?"
Guest: Exactly! One source of truth for the "why" of the app, and native excellence for the "how" of the app. It’s the end of the era of duplicated bugs, honestly.
Host: I love that. "The end of the era of duplicated bugs." That should be the slogan for KMP!
Guest: You can find me on LinkedIn or over at my blog, ThorneCode.io. I’m always happy to talk architecture!
Host: Awesome. Thanks again, Marcus. And thank you all for tuning into Allur. If you enjoyed this episode, make sure to subscribe and leave us a review. It helps us keep bringing you these deep dives into the tech that’s shaping our world. I’m Alex Chan, and we’ll catch you in the next one!
Tags
software engineering
mobile development
kotlin multiplatform
ios
android
kotlin