Oak
2025
A breathing exercise app inspired by the Apple Watch Breathe app — rebuilt entirely in React Native. Oak was a hobby project that doubled as a playground for learning Skia and Reanimated, and ended up being the first iteration of what became screen transitions.
The idea
I saw the Breathe app on Apple Watch and thought — it would be cool to see something like this in React Native. Not a basic timer with an expanding circle, but something that actually feels calming to use. The kind of thing where the animation itself helps you breathe, not just counts for you.
It was also a chance to go deep on Skia and Reanimated in a real project. I wanted to understand what these tools could really do when you pushed them — and Oak gave me that.
The animation
The breathing visualization was the core challenge — it needed to feel organic and calming, not mechanical. Built with Skia and Reanimated, running on the UI thread at 60fps. It also integrates haptics that sync with each breath cycle, so you feel a gentle pulse guiding you through the inhale and exhale without needing to stare at the screen.
Breathing animation guiding inhale and exhale cycles.
What it became
Oak stayed on TestFlight — it was always more of a learning project than a product launch. But the work that went into it is what eventually became react-native-screen-transitions. The animation patterns, the Reanimated knowledge, the feel for what makes motion work on mobile — all of that started here.