I’m currently a software engineer on the PubNub SDK team, working on modernizing our JVM SDKs and introducing KMP into our codebase, with a focus on improving both internal and external developer experience. Previously I spent 8 years on the Android team at Google, advocating for and building developer tools and APIs for Android developers.
Wojtek Kaliciński
Level up your SDKs with KMP – no rewrite required!
There are several compelling reasons to explore adding Kotlin Multiplatform (KMP) to your existing SDKs or libraries. The main one - to reduce development time and cut maintenance costs by having a single codebase for shared logic.
But what if you already have a suite of tried and tested native SDKs, and want to simply add KMP capabilities to broaden your audience, without impacting existing customers? Or perhaps you’re adding functionality on top of your SDKs and want to build it once instead of duplicating it in 2, 3, or 4 programming languages?
I’ll share our experiences at PubNub with bringing three of our realtime messaging SDKs - TypeScript, Swift and JVM, under a unified KMP API. I’ll also show how this foundation then enabled us to build and ship a new Chat SDK on top, built with KMP from the ground up and targeting all 3 platforms.
The talk will cover the initial requirements phase, the architectural decisions, and the tradeoffs that we had to make to finally land on KMP as the chosen solution.
We'll then delve into practical code examples and solutions (as well as quite a few WTF moments!) that allowed us to build the Chat SDK without affecting our existing users, and even improved the quality and consistency of our native SDKs.