Related project

A few things in life are guaranteed: death, taxes, and a periodic blog post from me talking about my history with Swift development and how I’ve consistently failed to ship anything.
Well, times are a-changing.
My latest, serious attempt at learning Swift was by far the most successful. Concepts were sticking and syntax began to make sense. Less Neo seeing the Matrix, more DiCaprio pointing at the telly. Hard to write, easy to recognise. I was finally making progress and could feel it. Then Claude came along.
See my posts from a year ago and you’ll notice a familiar pattern seen in other designers. Scepticism, frustration, anxiety, but glimpses of brilliance and a peek into a brave new world of possibilities.
In the last 6 months things changed. Frontier models improved, my process became more robust, and I was experimenting more. That’s when I decided to start from scratch on a new project. Not because I gave up. Because I was so excited about the results that shipping a smaller, more polished app from scratch felt quicker than finishing the app I was working on.
Breathe in
Introducing Frame, my minimalist breathing practice app. It’s made with one principle: nothing should get in the way of your practice. Everything else is built around it.
There are different exercises, custom practices, insights, reminders, themes, but all are optional and deliberately hidden away from view with the exercise front and centre.
Interactions lean heavily into swipe gestures, from navigating around the app, to changing core settings, to starting the exercise, all providing haptics along the way.
Focus time
The app is not new, it’s not novel, and the App Store is full of them. However, this one is mine and I’ve been working deeply, leaning on what I’ve learnt, and augmenting that with Claude to refine every part of the experience. Working in this way is what has excited me more than ever, taking me close to shipping my first app.
The app itself is simple and ironically the core functionality was the fastest part of the build. Everything that came afterwards was the time-consuming part, with the prize of greatest time-sink going to the dynamic metal shaders that provide the visual feedback during the practice. Pour one out to the 15 other shaders that never made the final cut.
There are going to be many touches in the app that no one will ever notice. Whether it’s the tab bar coming into focus, the shaders peeking into view when changing a theme, the animated dot counter when rounds are changed, or the deliberate offset on the shaders during the practice to emulate inhaling and exhaling, each one was a deliberate choice to contribute to the overall experience with the intention to elevate above others.
Deep breaths
I'm extremely proud to say that Frame is available now for a one-time purchase. No ads, no upsell, no account. Just breathing.
This moment has been a long time coming and while it’s somewhat nerve-racking after all this time to finally release an app, this was never about trying to make money or becoming viral. It was more about learning the process and proving to myself I can do it.
I’m going to write another post about my learnings from this whole thing, but in the meantime, I’m going to appreciate the moment and take into account everything that’s got me here.
I’d be lying if I said I wasn’t nervous about putting Frame out in the world especially after all this time, all the commentary, and many failed attempts, but I will keep expectations low and try to remain calm. If only there was an app that could help me with that.