My Blog: Health & Lifestyle 🧘

I love exploring different tricks and life-hacks around mindfulness, sports, nutrition and sleep.

A picture of me sitting on a meditation cushion listening to calming background sounds on my HomePods during a meditation with my app Zenitizer.

Guided vs. Unguided Meditations - My Journey

Tuesday, 23 May, 2023

In this article, I am sharing my own thoughts about guided and unguided meditations and a few details about my own meditation journey which led me from the former to the latter and eventually to building my own app for unguided meditations.

Start Of My Meditation Journey

After growing up in rural Germany (we’re talking really rural… population of my village being ~500, if you count the cows, that is), I moved to London (population: ~9 Million) for my first full-time job after university. Suffice it to say, it was a very exciting time of my life: both the “good kind of exciting” but I also got my fair share of the “overwhelming and stressful kind of exciting”.

I remember the day, I was sitting on a bench in Queens Park, London thinking to myself: “maybe you should try one of these meditation apps that seem to be all the rage these days. Certainly could use something to calm you down in this hectic big-city lifestyle you’ve gotten yourself into”.

So that’s what I did. I went straight on the App Store and downloaded one of the “big meditation apps” and got started with an introductory mindfulness course consisting of short, guided meditations. This was a key moment for me, because as I was continuing the course over the following weeks, I learned strategies that would help me be more present and balanced and made a notable difference in my life.

Transition To Unguided Meditations

As I kept up a semi-regular meditation practice over the years, I noticed that I naturally wanted to use guided meditations less over time. The app that I was using at the time was designed around providing a large catalogue of guided meditations and similar content but it also had a few “unguided” sessions with just interval bells or very few spoken instructions every couple minutes.

I learned to appreciate the simplicity of those but the problem is that everything about the way the app was designed tried to nudge me towards a new series of guided content while the “simple timer experience” I’ve come to appreciate felt very limited.

In Search Of An App

This is when I started looking for more simple alternatives that focus on the core timer experience instead of guided content and there certainly are a number of great options out there. However… (and I know this sounds cliché and is the start of literally every “scratch-my-own-itch I should build an app for that” story ever) none of the existing options quite worked, looked and felt the way I had envisioned them.

One thing I really liked about the “big meditation app” that I got started with is that it had the notion of a “streak” feature. This was always very motivating for me to keep up a regular practice so that’s something I was looking for in a minimal meditation timer app, too. In addition to that, while I often meditate silently these days (just using haptic notifications on my Apple Watch), I also really enjoy a calming background soundscape from time to time so backgrounds sounds was another important feature for me.

Lastly, I wanted my ideal meditation timer app to be deeply integrated with the Apple ecosystem. Storing and retrieving data from Apple Health, for example. I know some apps allow storing mindful minutes in Apple Health but will not take minutes recorded by other meditation apps into account for their own in-app streaks feature. This forces users to keep using one particular app if they want to keep up the streak - which is of course what these apps want you to do but it always felt bad to me. I felt locked-in and I did not like that.

Another area of system-integration that is extremely well-suited for meditation apps is Shortcuts support. If you know me, you’ll know that I’m a big Shortcuts fan and I certainly use Shortcuts in totally over-engineered and weird ways but for a meditation app it really makes so much sense. Just being able to ask Siri to start a meditation, for example - or automatically doing so when you wake up - or setting a scene in your smart home during a meditation - or automatically turning on the “Do not Disturb” Focus Mode… The list goes on and once you think about these opportunities it feels so incredibly limiting not to have them.

Building My Own App

Unable to find an app that ticks all the boxes and has the right look and feel for me, I arrived at the conclusion that… well: I just gotta build it myself. How hard could it be (famous last words 😅).

It’s been an ongoing project for over half a year, now. As I was also involved in freelance projects, I did not work on it 100% full time, but I definitely spent a significant chunk of my time on Zenitizer. I needed to learn all of the steps involved in building and shipping an app for the first time (basically everything except the coding part and even that involved many new learnings due to using so many frameworks and APIs for the very first time and diving much deeper into SwiftUI than I ever did before).

During that time I learned a lot and had the incredibly rewarding experience of interacting with wonderful beta testers who have given me thoughtful, constructive feedback and so many kind words of encouragement along the way.

Launch Date Confirmed 🚀

As of writing this, the app has been approved for submission on the App Store and the launch date is confirmed: May 25th 2023 - that’s just two days from now. I am very excited to finally be able to share with the world what I’ve been working on all this time and keep growing and improving Zenitizer from here (hopefully for a very long time to come).

Unguided vs. Guided Mediations - Which One Is It Now?

Well, as someone who has developed an app for unguided meditations I am - of course - biased. I personally think that spoken instructions can be a source of distraction and may result in actually being less in the present moment. On the other hand they can be a great learning resource and act as a great ritual to get into the right mindset.

Ultimately, it’s a very personal choice and I encourage you to try for yourself to see what works best for you. And you should keep evaluating this along your journey. Maybe you prefer unguided meditations right away? Or, like me, over time you learn to appreciate them and prefer them over guided meditations? Or you will simply always prefer guided meditations?

Whatever you find to be effective and enjoyable for yourself, Zenitizer will take your mindful minutes in Apple Health recorded by other apps into account (so you can use multiple meditation apps and still grow your Zenitizer streak) and even allows manually logging meditations so you could, for example, visit a guided session in your local meditation/yoga studio or watch one on YouTube and later just record 15 minutes in Zenitizer. I want you to be able to mix-and-match meditation styles, tools, techniques and apps in whichever way works best for you ❤️

Trying Zenitizer For Yourself

Now, if you’re interested in Zenitizer you can find out more here or head straight to the App Store to download and try it for yourself.

A composition showing screenshots of the new streaks feature on both Apple Watch and iPhone.

Streaks Feature, Updated Widgets and Core Data

Tuesday, 18 April, 2023

I just pushed a Zenitizer update to TestFlight earlier today which includes a brand-new feature that I hope to be a great source of motivation for your regular meditation practice: “Meditation Streaks”

Each day you hit your meditation goal, your streak grows. In order to keep your streak, it is sufficient to simply meditate as little as one minute a day - even if this is below your goal. While this will not increase your streak it will prevent breaking the streak. Only if you do not meditate at all on a given day the streak will be reset to 0.

With this behaviour, I was hoping to find a good compromise between motivating you to build a regular practice but without putting too much “pressure” on “achieving goals” (mindfulness meditation should be calming and not adding more stresses to your life, after all 🧘).

I’d love to know what you think about this approach and how the feature works for you personally, so please don’t hesitate to reach out and let me know!

New Streak View + Updated Widgets & Complications

The screenshot above shows the new UI elements for displaying streak progress in various forms and contexts. The “week view” is a custom SwiftUI view that can (and will in a future update) be extended to show larger time spans (e.g. one month at a time). This will allow revisiting the meditation history laid out like a calendar.

Design Considerations

I wanted the StreakView to have a “call for action” title like “Grow your 42 Day Streak” or “Keep Your 42 Day Streak” (unless you already reached your daily meditation goal). The week view primarily serves to see at a glance how you’ve been doing this week (+ may allow revisiting previous days’ meditation history details in the future) and there’s a small indicator of your personal record to date.

After a couple of design iterations I’m pretty happy with the result but I’m sure I’ll make tons of tweaks before Zenitizer makes it to the App Store 🙈 Please let me know if you have any suggestions or questions about the feature as well as the design!

Under The Hood & New Learnings (Core Data)

The majority of the work, however, was focussed on what is not visible: the underlying data and persistence layers! So far, all of Zenitizer’s persistence needs were covered by NSUserDefaults as all the meditation history itself was exclusively written to and read from Apple Health.

Now in order to properly support streaks and efficiently query meditation history and streak data I needed my own on-device persistence solution and after a bit of research I decided to go with Core Data.

You can tell that the framework has its roots in the “Objective-C days” and I personally prefer Swift structs and other value types as well as Swift’s strict handling of Optionals in favour fetching and passing around NSManagedObject references because the former will often force you to address issues at compile time instead of (hard to find?) runtime issues you may get with NSManagedObjects and NSFetchRequests… In the end of the day though, each framework, tool or solution has its pros and cons and, all things considered, CoreData is working really well for me and I am definitely starting to embrace it… 🤓

Donny Wals’ book Practical Core Data was a fantastic resource on my journey to familiarize myself with Core Data. I bought it quite a while ago and it was just sitting in my Gumroad library because I never got around to reading it… Finally, I was forced to work my way through it and it has really helped a lot!

In addition, I would also highly recommend this Apple developer video to anyone getting started with Core Data in modern apps!

More Topics