Week 4 - Blip - Bye SwiftUI

I ended last week with a bit of a downer. After a lot back and forth I have now dropped SwiftUI and gone back to good old AppKit/Cocoa. Which took me a while to get used to again.

Week 3 - Blip - What the fuck

This week ended with a big annoyance — and I still have no idea how to fix it. What I want to do seems so easy, but it isn’t working.

Debug SwiftUI redraws using randomized backgrounds

SwiftUI redraws every view affected by a state change. If you are not careful this might cause your entire UI to redraw on every interaction. For me this happened at every keystroke in an text-field. Using random background colors you can find such issues.

Week 2 - Blip - Saving entries

The second week working on Blip didn’t quite start off as I wanted but I managed to turn it all around by the end of the week. Sweet!

Week 1 - Blip - Getting started

Week 1 of working on Blip has been a huge boon to me. I’ve set out to create the basic “new entry” window. Now I thought that would take me 1-2 days tops. That turned out to be wrong and I’ve spent the entire week on getting just that done. That was frustrating.

Create a Spotlight/Alfred like window on macOS with SwiftUI

Let’s have a look into how to create a window similar to how Spotlight or Alfred looks.

Use global keyboard hotkey to show/hide a window using Swift

Here I’ll show you how to show/hide a window using a global keyboard hotkey/shortcut, similar to how Spotlight or Alfred work, on macOS using Swift.

Multi-line text field with SwiftUI on macOS

The latest SwiftUI 2 at the time of this writing has native support for multi-line text areas. This feature is bound to macOS 11.0+ (Big Sur).


For my projects, the last two years haven’t been great. I started work on multiple things but for one reason or another they all fizzled out in the end. Some of them with good reason, others maybe not so much. Then towards the end of 2020 it became nigh impossible for me to sit down and get any work done. The corona virus pandemic wasn’t helpful either.

Initial Solution

I write this post in hope to stop my future self from doing this again. Sometimes I waste a few hours to find an implementation for something because I don’t like my first draft, or it should do more. The result is always the same: Whatever that first draft was.

Archived articles...