Kotlin Multiplatform Newsletter #33
We explore the launch of Compose Multiplatform 1.12.0, featuring new AI assistant integrations, upgraded web resource management, and refined desktop window controls. We also break down consuming SKIE Flows directly in SwiftUI, configuring KMP CI/CD pipelines with Xcode Cloud, and implementing physical page-curl animations in Compose. Plus, a look at Jetpack Compose 1.12's MeshGradientPainter, architectural enforcement via Aalekh, screen-capture protection with ComposeShield, and a remote Senior Mobile Engineer position at Fanatics.
The Log
The only Kotlin Multiplatform and Compose Multiplatform news you actually need to know.
Compose Multiplatform 1.12.0 is out! This version brings new tooling for AI assistants, improvements to web resource management, and finer control over desktop window states.
The Main Thread
Community's most insightful threads, curated from social media platforms and websites.
I've been trying to use Kotlin/Native for desktop/CLI stuff, and honestly it feels like you get a native binary and then you're on your own. Basic things like logging, resource loading, decent file operations, and process execution are either missing or surprisingly painful.
Expect Actual
Technical deep dives, or solving the "how-the-hell-do-I-test-this" problems.
Stop treating Kotlin like a black box! 🧠
To build truly performant multiplatform apps, writing code that just "works" isn't enough. We need to understand what the compiler is actually doing under the hood.
That’s why I highly recommend Practical Kotlin Deep Dive by skydoves. This isn't a basic syntax guide, it breaks down Kotlin internals, bytecode, and coroutines. It’s been a total game-changer for me when writing and optimizing shared code.
If you want to level up your Kotlin and KMP skills to a senior standard, you need this on your desk.
SKIE already makes the interop between Kotlin and Swift smooth, but SwiftUI adds a layer of complexity. We've included a series of extensions in SKIE to enable easy KMP usage from SwiftUI.
One interesting issue I ran into early was making sure the KMP library could be built successfully using Xcode Cloud as part of my continuous integration process. I’m a fan of using Xcode Cloud since it’s relatively simple to setup and you get 25 hours of free compute as part of Apple’s developer membership.
From a focused music theory exercise to a production-ready Kotlin Multiplatform application built with Compose Multiplatform
LazyColumn
Compose Multiplatform tips, tricks, and code snippets.
We’ve always had APIs for linear and radial gradients in Jetpack Compose. But if you wanted a more complicated color blending API, there was nothing like that. Enter MeshGradientPainter introduced in Jetpack Compose 1.12.
I recently went down a rabbit hole trying to understand why a production Compose screen felt heavier than it should. What started as a simple profiling session turned into something bigger. The Layout Inspector and the Memory Profiler were telling me two completely different stories about what was happening. This is what I found, what I fixed, and what I wish I’d known earlier.
I build a diary app. The visual identity leans hard on a paper metaphor: cream pages, an ink-colored dark mode, handwriting in the margins. The interaction that sells the metaphor is the page turn. When you swipe to yesterday, the page should peel up under your finger like a real sheet of paper. A crossfade would remind you that you’re looking at a database.
The Dependency Graph
Curated libraries, tools and plugins that won't break your Gradle build.
- Compose gradient generator
Easily visualize and create compose gradients and copy the code into your projects. Now with mesh gradients available. - PageCurl for Compose Multiplatform
Page curl (page turn) effect for Compose Multiplatform: Android and iOS from one Kotlin codebase. - Mockzilla
A compile safe solution for running and configuring a local Http server for your mobile apps. - Aalekh
Aalekh is a Gradle plugin that extracts, visualizes, and enforces architectural rules across any Gradle multi-module project - Kotlin Multiplatform, Android, JVM, or any Gradle project. - ComposeShield
A lightweight, zero-overhead screen-capture protection library for Kotlin Multiplatform (Android & iOS) - MapLibre for Compose Multiplatform
MapLibre Compose is a Compose Multiplatform wrapper around the MapLibre SDKs for rendering interactive maps. You can use it to add maps to your Compose UIs across Android, iOS, Desktop, and Web.
Target: Production
Showcase of real-world apps proving KMP is ready for prime time.
Carrd • Simple, free, fully responsive one-page sites for pretty much anything.
Whether it's a personal profile, a landing page for your KMP project, or something a bit more elaborate, Carrd has you covered. Simple, responsive, and yup — totally free!
Careers
Kotlin Multiplatform job postings and opportunities.
hackajob • Meet Archer, your AI job matching agent
5x more interviews. Zero guesswork. Archer works 24/7 to match you with roles that fit your stack and seniority. You review the matches, not the job boards.
We embrace principles of data-driven development, operational excellence, and continuous process optimization to deliver a stable, scalable platform. Central to our strategy is Kotlin Multiplatform, which empowers us to deliver high-quality features quickly and consistently across multiple ecosystems.
🚀 Get Featured!
Got something interesting to share with the Kotlin Multiplatform community? Submit your link for a chance to get featured in the next issue of commonMain.dev.
🤝 Support the Build
commonMain.dev is made possible by our partners. If you have a tool or service that helps KMP developers ship to production faster, we’d love to help you reach our community. Collaborate with us.
✍ Code Review
This newsletter is curated and written by a real human being. I’m always looking for ways to optimize the build. Was there something you liked or disliked in particular? Or did you find a bug in this issue? Simply reply to this email - I read every comment from the community and take your feedback into account for the next release.
Until next time,
Stay platform-independent!
Bogdan • Founder of commonMain.dev


