This newsletter was written using a mac app

Since two weeks ago, I’ve migrated my weekly newsletter from Mailchimp to a service called Sendy. While Sendy has all the important features that Mailchip has, and does certain things better than Mailchimp, it also lacks some features.

For example, in Mailchimp I had some global styles set up for stuff like links and buttons. Any link I added to my newsletter would receive the same styling automatically.

When I discovered that Sendy didn’t have such a feature I was a little dissappointed.

I decided that there was no way that I would be happy with Sendy’s editor so instead, I wrote a little node.js script that reads a JSON file and transforms it into an HTML file that contains my newsletter with the correct layout and styling.

This worked well for the first two editions but then I figured I’d like to make this process easier.

So I decided to write a mac app with a bunch of form fields. These form fields are bound to a model using SwiftUI, and the model is Encodable so I can transform it to JSON. Then I use a Process to invoke my node.js script from earlier and I pass it the JSON string that I generate from my model. The script writes the HTML to a file and also writes it to the standard output so I can show a preview in my little app.

It’s still a bit hacky and not quite as convenient as I’d like but it’s getting there. The next step is to add quick and easy image uploading for the “On Repeat” section so I don’t have to upload album covers to Amazon’s S3 by hand.

Why am I telling you this?

I’m not sure either. I’m just having fun with this little tool, and hopefully this story inspires some of you to experiment and learn new things by building a tool for something you do regularly. It doesn’t have to be fancy. My mac app right now is anything but fancy, it gets the job done though!

Anyway, I hope you all have a great weekend! And if you’ve been putting off building that weekend project because you think it wouldn’t be a good app anyway, just give it a go.

Maybe you’ll build something that useful for nobody but you. But you’ll have built something, and that’s worth a lot.

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

Hawthorne Heights - Lost Frequencies

This album is quite a throwback. I’m not even sure how I ended up on this one last week, but I was pleasently surprised when I learned that Hawthorne Height is still making music!

Other content that I really want to share with you

A lot of developers love learning through videos on YouTube, but finding all the best content creators can be pretty tough. Luckily Filip made this useful website to help you find all the best iOS related YouTube videos out there. Love the idea, and love the execution.

An article by Filip Němeček

I really like how SwiftUI has opened up the door to macOS developers for a lot of developers. Sure, SwiftUI isn’t perfect and it seems to have some issues on macOS it’s a fantastic way to start dabbling on macOS even if you have to learn AppKit down the line if you want to build something serious. This post from Benoit shows off an interesting way to use SwiftUI to create a little webcam utility that you can use when you want to share your screen and webcam at the same time.

An article by Benoit Pasquier