Kotlin Syntactic Sugar in Bytecode: Which Ones Are Actually Free

Kotlin Syntactic Sugar in Bytecode: Which Ones Are Actually Free

I compiled a dozen Kotlin sugars and read the javap output. Three tiers: ?. is a real ifnull jump with zero allocation, inline saves 0.01 B per call while copying the body, string templates hinge on jvmTarget, and lazy’s three modes I could not measure.

2026-11-13 · 7 min · 1461 words · Trevor Wang
Kotlin 2.5 Value Classes Save No Memory, and Destructuring Changes Meaning

Kotlin 2.5 Value Classes Save No Memory, and Destructuring Changes Meaning

Kotlin 2.5.0-RC pushes full value classes, so I read bytecode: javap shows a plain class, no box-impl. In a list it allocates 36.0 B, the same as the data class. The real win is a class file 21% smaller, and default destructuring still silently swaps names.

2026-11-13 · 3 min · 1497 words · Trevor Wang
One Piece of C Code, Five Pitfalls Each for Flutter and KMP

One Piece of C Code, Five Pitfalls Each for Flutter and KMP

34 lines of C bound twice, through Flutter’s ffigen and KMP’s cinterop. Under AOT both call in near 0.1us. KMP’s debug build made struct returns 30x slower until release fixed it. Five pitfalls each, led by a version wall and a silently empty binding file.

2026-11-13 · 8 min · 1601 words · Trevor Wang
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