Sebastian and Márton discuss building KMP libraries with Jay Shortway, the author of RevenueCat’s Kotlin Multiplatform SDK for in-app purchases.
0:00 Intro
0:44 What’s RevenueCat
4:00 In-app purchases are hard
7:22 The multiplatform SDK – https://www.revenuecat.com/docs/getting-started/installation/kotlin-multiplatform
12:44 The demand for KMP
16:30 Hiring and team structure
18:42 SDKs for any framework – https://www.revenuecat.com/blog/engineering/how-our-hybrids-work/
21:27 Building on native SDKs
23:45 Improving iOS linking – https://github.com/ttypic/swift-klib-plugin
24:54 The SDK is on GitHub
26:05 Benefits of building on native
28:18 Designing a common API
33:21 Add-on modules for SDKs
37:30 Instant in the standard library – https://github.com/Kotlin/kotlinx-datetime/issues/382
38:04 Returning results from the API
39:53 API design decisions
44:57 Codegen opportunities
45:48 The best things about KMP
47:07 KMP improvements wishlist
48:28 The KMP journey
49:45 Wrap-up
RevenueCat KMP SDK – https://www.revenuecat.com/docs/getting-started/installation/kotlin-multiplatform
How we built the RevenueCat SDK for Kotlin Multiplatform – https://www.revenuecat.com/blog/engineering/how-we-built-the-revenuecat-sdk-for-kotlin-multiplatform/
Hybrid SDK Architecture at RevenueCat – https://www.revenuecat.com/blog/engineering/how-our-hybrids-work/
ttypic/swift-klib-plugin on GitHub
RevenueCat/purchases-kmp on GitHub – https://github.com/RevenueCat/purchases-kmp
Consider moving `Instant` and `Clock` to the standard library · Kotlin/kotlinx-datetime – https://github.com/Kotlin/kotlinx-datetime/issues/382
RevenueCat openings – https://job-boards.greenhouse.io/revenuecat
Hosts:
Sebastian Aigner
Website – https://sebi.io/
Bluesky – https://bsky.app/profile/sebi.io
Márton Braun
Website – https://zsmb.co
Bluesky – https://bsky.app/profile/zsmb.co
Guest:
Joop Korteweg – https://x.com/JayShortway