December Adventure

2025

The December Adventure is low key. The goal is to write a little bit of code every day in December for a meditation timer app I've started.

Dec 1st

Urgh Monday... I've been struggling with motivation on a Monday for a while now. So whilst I wrestled with the Monday Blues and crippling procrastination, I toyed with the idea of taking up this little, low key challenge. A close friend shared his December Adventure page which inspired me into motion and I decided yeah, let's do this... tomorrow 🐢

Dec 2nd

First low key challenge was to create this page! I called a friend, a web professional, to check my handy work. Both of us are working on iOS apps this December so the call swiftly turned towards apps. Gaston's dog, Scout, has epilepsy and he has built an app to track Scout's seizures. He built his app using SwiftData so I picked his brains about a streak feature I'm refactoring to use said SwiftData.

Dec 3rd

When a beautiful sunny morning in December presents itself, you make the most of it! So, with a guilty conscience, I deferred work until later and went for a bike ride in the forest. With that out of the way, I spent the rest of the day reading about SwiftData, searching for ways to implement my streak feature. Might have enough knowledge now to iron out this streak 🔥

Dec 4th

Rather than using SwiftData to query a full collection, I realised I only needed a singleton for this feature — one Streak to rule them all. Once that was sorted, I refactored my Apple-style onboarding view. It’s been a case of build first, design later for this app so far, but I’m starting to feel the urge to shake up the ultra-clean, minimal look. It’s beginning to bore me… this thing needs some personality — and a name.

Dec 5th

Implemented a simple stats view today. Needs jazzing up and has a bug that i'll squash tomorrow.

Dec 6th

A SwiftData mistake had me second guessing all the code I had written yesterday. After chasing my tail for hours, turns out I just needed to write save() a few times. I also displayed a List of logged mindfulness minutes reading from Apple's HealthKit. I want to work on something fun tomorrow like a widget because today was frustrating.

Dec 7th

Been a minute since I last made a widget for iOS. Over a year! Reading through some old widget code helped jog my memory and watched some youtube tutorials. I kindly asked Claude a how to guide / checklist for tomorrow. Other than that, I went to the pub for dinner.

Dec 8th

Made a small widget for a streak today and learnt how to implement live activities. There are space constraints when designing for a live activity. Looking forward to getting creative with this one.

Dec 9th

Today I wrote some code to show the time ticking down for a meditation practice on the lock screen and in the dynamic island. Apple call these live activities. This feature has introduced a bug for me to fix. Again, SwiftData related and at first glance looks like a concurrency issue. Fun!

Dec 10th

Ran out of steam by 3pm. Did manage to stop my app crashing today. Live activities work in the simulator but not on device. Must be a setting out of place. Flirted with the idea of persisting the previously selected sound and practice configuration which I thought would be super simple but my tired brain wanted none of it. We messed around with the running timer view to add finishing states and then called it a day.