Blog.
Long-form notes from building Kafka: rendering, type and audio in Kotlin Multiplatform, and the parts that only broke on a real phone.
-
Word-level audio and text sync in Jetpack Compose: building Kafka's read-along
How Kafka syncs audiobook narration to words in Compose on Android and iOS: player clocks, text geometry, page-follow, and the bugs between them. With real narration you can follow in the browser.
10 minute read · Jetpack Compose, Media3, AVPlayer
Read the post
-
A realistic page curl in Jetpack Compose, with one AGSL shader for Android and iOS
The page curl in Kafka's reader: an AGSL RuntimeShader as a RenderEffect over the live page, fold-to-finger geometry solved every frame, the iOS path through Skia, and every bug a real phone found. With a page you can turn in the browser.
13 minute read · Jetpack Compose, Compose Multiplatform, AGSL
Read the post