Kieran Crown

Blog

Notes on mobile engineering. React Native, Expo, SwiftUI, and the small details that make an app feel considered.

4 min read

Running my React Native game engine in the browser

The same render.ts that ships on device also runs in a Next.js app on CanvasKit. It powers a level editor, an obstacle lab and the App Store screenshots.

React NativeSkiaToolingWebAssemblyOverbloom
Read post
5 min read

The crash that only hit players who were good at my game

A memory leak that took twenty minutes of continuous play to kill the app, why every test I had missed it, and the headless soak test that finally caught it.

React NativeDebuggingMemoryOverbloom
Read post
5 min read

Five bugs that only existed in production

A tracking prompt iOS silently dropped, StoreKit hanging forever, purchases that worked offline until they did not, and other things no simulator will show you.

React NativeiOSExpoDebuggingOverbloom
Read post
4 min read

One runOnJS per frame

A game frame can fire a dozen discrete events. Packing them into a bitmask turned a pile of thread hops into a single call, and fixed a sound bug on the way.

React NativeReanimatedPerformanceOverbloom
Read post