Series
ReduxKotlin 1.0
9articles in reading order.
ReduxKotlin 1.0
ReduxKotlin 1.0.0-alpha04 is on Maven Central. A concurrent store, granular subscriptions, Compose bindings, DevTools, and a CLI. Here is what changed, and why.
One Store, Nine Targets
The exact KMP target matrix for ReduxKotlin 1.0: what every module supports, what got dropped, and the single platform shim the Redux layer actually needs.
ConcurrentStore: Reads That Don't Wait
The thread-safe store I recommended in 2020 put a lock around every function, including getState. ConcurrentStore keeps writes serialized and makes reads lock-free.
Granular Subscriptions: Stop Diffing By Hand
store.subscribe fires on every dispatch, so everyone hand-rolls the same re-read-and-compare boilerplate. subscribeTo does the diffing and only calls back on change.
ReduxKotlin + Compose: Bind the Narrowest Slice
No provider, no CompositionLocal, no hooks. You pass the store as a parameter, and each component binds exactly the slice it renders. Then you prove it with a test.
Surviving Rotation and Process Death
A singleton store survives rotation for free and dies with the process. StateSaver fixes that in four lines. Then there's the bug you hit after it works.
Redux DevTools, Outside the Browser
An in-app debug drawer, a desktop monitor with time travel, and a CLI that prints one JSON object per line: three surfaces over one instrumented store.
Screenshot Tests Where the Input Is State
rk snapshot renders real Compose screens from seeded store state and diffs them against goldens. Plus a semantics dump that catches what pixel diffing misses.
ReduxKotlin for Coding Agents
An agent that can't tell whether its change worked will loop, confidently, until your tokens run out. Most of the 1.0 cycle went into fixing that.