The CommonsBlog


cw-json 0.2.0

The cw-json repository now has version 0.2.0 of kmp-jsonpointer and kmp-jsonpointer-kxs. The primary change is the addition of URI fragment encoding of a JSON Pointer, based on RFC 6901. Call JsonPointer.fromFragment() to create a JsonPointer given a fragment, and call toFragment() on a JsonPointer to get the fragment encoding for it.

The Dokka documentation has been updated for 0.2.0. I think I have the Dokka versioning plugin set up properly to allow me to host past and current versions of the docs — we will find out when I publish 0.3.0. 😅

Apr 25, 2026


22 April 2026 Artifact Wave

Nav3 is on more multiplatform targets:

  • androidx.navigation:navigation-common-tvosarm64
  • androidx.navigation:navigation-common-tvossimulatorarm64
  • androidx.navigation:navigation-common-watchosarm32
  • androidx.navigation:navigation-common-watchosarm64
  • androidx.navigation:navigation-common-watchosdevicearm64
  • androidx.navigation:navigation-common-watchossimulatorarm64
  • androidx.navigation:navigation-runtime-tvosarm64
  • androidx.navigation:navigation-runtime-tvossimulatorarm64
  • androidx.navigation:navigation-runtime-watchosarm32
  • androidx.navigation:navigation-runtime-watchosarm64
  • androidx.navigation:navigation-runtime-watchosdevicearm64
  • androidx.navigation:navigation-runtime-watchossimulatorarm64
  • androidx.navigation:navigation-testing-tvosarm64
  • androidx.navigation:navigation-testing-tvossimulatorarm64
  • androidx.navigation:navigation-testing-watchosarm32
  • androidx.navigation:navigation-testing-watchosarm64
  • androidx.navigation:navigation-testing-watchosdevicearm64
  • androidx.navigation:navigation-testing-watchossimulatorarm64

Also, we got two other new artifacts:

  • androidx.text:text-vertical-compose
  • androidx.xr.glimmer:glimmer-google-fonts

The roster of nearly 1000 updated artifacts can be found here!

Apr 22, 2026


#OpenToWork

Alas, my previous employer hit a bumpy patch. As a result, for the first time in a very long while — before LinkedIn really existed — I am #OpenToWork.

If anyone out there is in need of an Android/Kotlin Multiplatform developer, a serial entrepreneur, or a client-side developer advocate, perhaps I can be of service!

In the meantime, I am back to what I was doing as CommonsWare: working on interesting technologies, writing about them, helping others with them, and seeing where things go. There are a few changes:

  • My personal preference now is toward Kotlin Multiplatform, rather than pure-play Android projects.

  • I have long considered myself to be a teacher and a toolsmith. I did little toolsmithing during my main CommonsWare years, but I expect to be doing more of that, and more open source in general, in the future.

  • Part of that toolsmithing will be in service of using coding agents with local AI models alongside of, or in lieu of, hosted frontier models. I expect that those frontier models will get a lot more expensive, and I have ethical concerns about them. So I want to help developers leverage coding agents, just with less impact on their budgets and on society writ large. Pedal Assist Coding is where I will be doing most of my writing on that.

  • I hope to get into ATProto and ActivityPub this year and next, as a sneak peek of one of the areas you will see me working on.

But, while I am on those journeys, if your organization could use an extra pair of hands, maybe I can help!

Apr 15, 2026


Announcing: "Pedal Assist Coding" Newsletter

Why have just one newsletter when you can have two? 😅

My second newsletter is Pedal Assist Coding. That name is weird enough that I dedicated the second issue to an explanation.

Overall, the newsletter is about coding agents and AI, just not in the “unabashed fanboi” mode that you see a lot of. LLMs, especially for coding agents, have tremendous potential. They also have tremendous problems, especially those using frontier models. I am not going to extol the virtues of running dozens of agents in a swarm and “tokenmaxxing”, but I also am not going to ignore the realities and potential of this technology.

Instead, I am focusing on how to using coding agents (and LLM technology more generally) with an eye towards ethics and developer security (DevSec), with a slight Kotlin Multiplatform bent. For example, today’s post is about the risks of coding agents doing harm to your development environment and one way to try to stop that. Future issues will:

  • Explain how I am blending a bit of frontier models with local models for a coding agent environment, in the hopes that local models will take on more and more of the work over time

  • Illustrate the rationale behind some of the Kotlin Multiplatform tooling I am building up in support of that frontier/local blend… including one I will talk more about here later this week

  • Demonstrate how to use coding agents for things other than pure coding, such as mutation testing or “red-teaming”

  • Highlight uses of LLMs that are not societal risks, but rather help smooth out rough edges in UX or tackle other small problems

If this sounds interesting to you, it is free to subscribe:

Or, add the RSS feed to your favorite feed reader, which does not have to be FeedFlow, though it is my current fave.

You can learn more about the intentions of the newsletter, such as frequency and scope, in my inaugural issue.

I do not know if I will be publishing this newsletter five years from launch, the way I have been for my Jetpack Compose/Compose Multiplatform newsletter. But, for a while, it will be my main vehicle for sharing my discoveries and disasters in small-scale AI and coding agents, with this blog serving more for Android stuff and general CommonsWare news.

Apr 13, 2026


8 April 2026 Artifact Wave

In terms of totally-new artifacts, androidx.sqlite:sqlite-async and its multiplatform targets are new:

  • androidx.sqlite:sqlite-async
  • androidx.sqlite:sqlite-async-android
  • androidx.sqlite:sqlite-async-iosarm64
  • androidx.sqlite:sqlite-async-iossimulatorarm64
  • androidx.sqlite:sqlite-async-js
  • androidx.sqlite:sqlite-async-jvm
  • androidx.sqlite:sqlite-async-linuxarm64
  • androidx.sqlite:sqlite-async-linuxx64
  • androidx.sqlite:sqlite-async-macosarm64
  • androidx.sqlite:sqlite-async-tvosarm64
  • androidx.sqlite:sqlite-async-tvossimulatorarm64
  • androidx.sqlite:sqlite-async-wasm-js
  • androidx.sqlite:sqlite-async-watchosarm32
  • androidx.sqlite:sqlite-async-watchosarm64
  • androidx.sqlite:sqlite-async-watchosdevicearm64
  • androidx.sqlite:sqlite-async-watchossimulatorarm64

The roster of nearly 600 updated artifacts can be found here.

Apr 08, 2026


Older Posts