You Asked for Rounded Corners, Compose Multiplatform Desktop Drew a Spike

You Asked for Rounded Corners, Compose Multiplatform Desktop Drew a Spike

Stroke(join = Round) was drawn as Miter on Compose Multiplatform’s desktop, iOS and web targets while Android stayed fine. The root cause is a setter that never runs. I rendered both versions and diffed them pixel by pixel: 1,619 pixels apart.

2026-11-12 · 6 min · 1213 words · Trevor Wang
Jake's Approach: Run Compose on the Server, Push Only HTML

Jake's Approach: Run Compose on the Server, Push Only HTML

Jake Wharton runs Compose on the server with Molecule, renders HTML with kotlinx.html, pushes it over SSE, and merges it with Idiomorph. I rebuilt it and found that whether your text input survives comes down to three defaults.

2026-11-12 · 7 min · 1378 words · Trevor Wang
Same Compose Code, but Tencent Pays for 150,000 More Lines of Native

Same Compose Code, but Tencent Pays for 150,000 More Lines of Native

Compose code on both sides, but Tencent picked native rendering over Skia: six platforms, four renderers, 155,000 lines of platform glue.

2026-10-30 · 3 min · 1342 words · Trevor Wang
Compose 1.13 Shipped. The Interesting Part Is in 1.12

Compose 1.13 Shipped. The Interesting Part Is in 1.12

1.13 has one new feature and a pile of fixes. The heavy part shipped two months earlier, when hot reload got an MCP server.

2026-10-24 · 5 min · 920 words · Trevor Wang
AI Can Write Swift and Kotlin Now. So What's the Point of Cross-Platform?

AI Can Write Swift and Kotlin Now. So What's the Point of Cross-Platform?

On September 10, Shopify’s head of mobile published a post.

2026-10-23 · 7 min · 1398 words · Trevor Wang
Kotlin 2.5 Changes Its Publishing Format, and the Compiler Gets Stricter

Kotlin 2.5 Changes Its Publishing Format, and the Compiler Gets Stricter

On October 21, Kotlin 2.5.0-Beta2 shipped. Most people open the notes, read the four promoted and two experimental language features, decide it is unremarkable, and close the tab.

2026-10-22 · 9 min · 1727 words · Trevor Wang
Amper Got Promoted: It Is Now the Kotlin Toolchain

Amper Got Promoted: It Is Now the Kotlin Toolchain

On October 6, JetBrains’ Amper blog published its final post, titled Amper Is Now the Kotlin Toolchain. The name carries a line underneath, Moving to the Kotlin Blog, and it means what it says: that blog stops updating as of that day and merges into the Kotlin blog.

2026-10-07 · 9 min · 1777 words · Trevor Wang
JetBrains Pulled Swift Support Out of the KMP Plugin: Not One Link in the Toolchain Moved

JetBrains Pulled Swift Support Out of the KMP Plugin: Not One Link in the Toolchain Moved

On October 5 JetBrains published a short announcement with a blunt title: IDE support for the Swift language is ending in the KMP plugin. The effective versions are specific: IntelliJ IDEA 2026.3 and Android Studio Rabbit 2 | 2026.2.2.

2026-10-06 · 6 min · 1120 words · Trevor Wang
Kotlin Multiplatform Compiling "Whenever It Feels Like It" -- Officially Acknowledged

Kotlin Multiplatform Compiling "Whenever It Feels Like It" -- Officially Acknowledged

If you write Kotlin Multiplatform you have probably hit this: the line is red in the IDE, underlined with a cannot find symbol, you hesitate for ages and do not dare commit, then you build and it is green, and it even runs correctly.

2026-10-03 · 8 min · 1556 words · Trevor Wang
A2UI Hands-On: the Agent Draws the UI, Jetpack Compose Renders It

A2UI Hands-On: the Agent Draws the UI, Jetpack Compose Renders It

Same JSON, same app, same run.

2026-09-30 · 8 min · 1546 words · Trevor Wang
Row-Level localState Cannot Carry Nested Edits: Reworking Offline Sync with KMP + SQLDelight + Supabase

Row-Level localState Cannot Carry Nested Edits: Reworking Offline Sync with KMP + SQLDelight + Supabase

A user edits a checklist on the subway: adds two levels, renames one of them, deletes the one they do not want. The whole thing happens offline and only uploads once they are back above ground.

2026-09-28 · 6 min · 1254 words · Trevor Wang
Building My Own PikPak Client with KMP: Not a Single expect/actual

Building My Own PikPak Client with KMP: Not a Single expect/actual

A couple of days ago a post about a niche piece of software crossed my feed — a project called Piko, posted by its own developer: an open-source third-party PikPak client, Android and Windows, sharing both UI and business code across the two.

2026-09-27 · 10 min · 2024 words · Trevor Wang