It's been a while since you've heard from me!

Let me start by apologizing for the extremely spammy sounding subject line. I simply couldn’t come up with a better one. After all, it has been a while since you’ve heard from me. To be more exact, I’ve sent my last newsletter on June 25 2021. In that newsletter I wrote about my first week as a self-employed engineer, and how I loved having more freedom.

After sending that newsletter edition I’ve been busy. Like, really busy. I’ve been doing a lot of client work for example. Much more than I had anticipated in the beginning. I’ve worked with clients like Soundcloud, Backbase, and SiteScape. I’ve hosted lots of workshops, and even though it’s been a lot, I’m loving every minute of this all.

However, neglecting my newsletter started eating away at me. I’ve thought about picking it back up, but then I figured it would be weird to send you an email weeks, or months after the last one. But now that it’s been a year I decided I should go ahead and do it. See if I can make this newsletter a weekly occurence again.

Since you last heard from me I became a dad! We were lucky enough to have an amazingly cute, healthy little dude named Oliver. He was born on April 15th of 2022 so he’s about 2.5 months old right now.

So what’s my goal with restarting my newsletter? What can you expect from me?

Well… I kind of want to keep things up as they were before. This newsletter is a more personal touch to what I do. I won’t be writing any thoughtful, spicy, or insightful takes on recent events here unless I really want to. I won’t be summarizing WWDC or other Apple events unless something really jumped out. It’s just me sharing what I feel like sharing.

This newsletter is just your window into my live as an engineer. Maybe it inspires you, maybe it doesn’t. Let’s see what happens.

For now, it feels good to be preparing this newsletter for y’all.

Cheers, Donny


Practical Core Data

Practical Core Data helps you learn Apple's Core Data framework without requiring any prior knowledge. You'll learn how to integrate Core Data in UIKit and SwiftUI applications. The book also covers data modeling, synchronizing your store with a custom backend or CloudKit, profiling and improving performance in a Core Data app, and using Core Data in unit tests.

By the end of the book, you'll know exactly how you can start using Core Data in modern applications.

Buy Practical Core Data for $34,99

Practical Combine

Practical Combine is a book that will help you learn Combine from scratch. You will learn about all aspects of Combine in a natural flow where you're eased into functional reactive programming with simple examples, and the difficulty gradually builds up to complicated integrations in later chapters.

Buy Practical Combine for $34,99

🎶 Currently on repeat 🎶

If you follow me on Twitter you probably know that I play guitar. I'm a huge music lover and want to share this with you. In this section I will share a new album that I've been enjoying a lot every week.

Coheed and Cambria - Vaxis II: A Window of the Waking Mind

Coheed and Cambria are a band that I’ve been a long time listener of. Their melodic approach to music is amazing, and their drummer is really, really good. Of course the fact that all of Coheed and Cambria’s albums are based on a comic series that’s written by the singer is even better. Their latest album has been on repeat for a couple of days now and I don’t think I’m getting close to being sick of it just yet…


Other content that I really want to share with you

Generics and protocols are probably some of my favorite features in Swift, so seeing the Swift team do a ton of work on both in Swift 5.7 was pretty sweet. In this blog post I explain the differences and similartities between the new any keyword, and the existing some keyword that was introduced in Swift 5.1 along with their purposes and use cases. I’ve publised several other posts related to this topic so make sure you check out some of the posts I reference in this one because there’s a lot to uncover here!

An article by Donny Wals

Primary associated types are quite possibly my favorite Swift 5/7 feature. They finally allow us to get rid of type erasure in tons of situations. For example, when you want to have a collection that contains strings and don’t care whether that collection is a set or array you can now write Collection<String>. Neat, right! Learn more about primary associated types in the linked post. They really are very cool.

An article by Donny Wals

Marin Todorov is one of those people that will amost always find something interesting to work on. One example is how he made Timelane to profile and debug Combine code in Instruments. After WWDC he started looking into the new package plugins and he’s been learning a lot of interesting things that he’s shared in this Twitter thread. Make sure to follow him if you’re interested in learning more interesting things through his Twitter threads.

An article by Marin Todorov

I think almost every project has at least extension defined to make it easier to grab the user’s documents directory. Or maybe to grab the app’s application support directory. Natalia Panferova provides an overview of how this is done in iOS 16 and trust me… it’s MUCH better.

An article by Natalia Panferova