Today is an exciting day!

Today is an exciting day for me.

After trying to squeeze about one more year of usefulness out of my 2015 MacBook Pro, I realized it wasn't going to work. The replacement battery I installed roughly two weeks ago to reach an acceptable battery life turned out to be faulty. And the replacement that I received from iFixit to replace the faulty battery turned out to be faulty as well.

Even though iFixit handled this really well (they sent me a replacement for free and refunded me quickly when I refused a second replacement) I couldn't help but feel like replacing the battery multiple times until I found a good one wasn't an adventure worth having. Turns out aftermarket batteries aren't very good.

So I finally caved and ordered an M1 MacBook last week, and it's arriving today. In fact, it could arrive any moment at this point.

There's plenty of work to be done for me, including finishing the final chunks of a Practical Core Data update I'm working on, and I hope I'll be up and runnig with the M1 quickly so I can take it for a spin and do some work with it as soon as possible.

Speaking of Core Data, there are still tickets available for the Core Data workshops I'm hosting in April. We'll create a SwiftUI app that uses Core Data and small bits of Combine. No prior knowledge of the frameworks is required and we'll work our way up from the very basics all the way to a working app.

Hope you have a great weekend,

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 $29,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.

The Dangerous Summer - Mother Nature

The Dangerous summer is one of those bands that I somehow keep coming back to every once in a while. Their latest album is very true to their sounds and it's an absolute joy to listen to.

Other content that I really want to share with you

I love unit testing, it's one of my favorite ways to ensure that my code does what it's supposed to do. One of my biggest frustrations with XCTest is how complex it is to maintain a test suite that has readable test names. This post by Joe contains some interesting tips and insights that anybody who shares my frustration about tests names should read.

An article by Joe Masilotti

Instruments is possibly one of the most underutilized tools in an iOS developer's toolbox, and that is very unfortunate. Instruments can help you analyze and improve your app's performance. Learn more about profiling your SwiftUI apps with this fantastic post on Majid's blog.

An article by Majid Jabrayilov

Every year, Paul Hudson from Hacking with Swift hosts his community awards. These awards are a great way to appreciate all the hard work that folks from our community do to help others. The HWS awards are currently in their voting phase so don't forget to cast your votes for your favorite tool, talk, podcast, and more.

An article by Paul Hudson