Sending Test Push Notifications from Terminal

When working on a project recently, I needed an easy solution for testing and…


Clean Git History without Terminal

Your commits represent and encapsulate your added value to the project…


Testing Publishers Synchronously with a Blocking Recorder

When releasing Combine, Apple didn’t show us what their vision for…


iOS Code Review #2: Adding Tests to an Existing App (Networking)

Adding tests to an existing app can be challenging and sometimes intimidating.…


Building a Custom XCTAssert for Multiline Strings

XCTest provides a bunch of XCTAssert... functions to be used for assertions in…


Why You Should Be Using `unowned` More Often

I’ve seen a lot of interesting codebases in the last two months: new clients…


Mocking Network Calls Using URLProtocol

For many apps, the networking code is one of the most important parts of the…


iOS Code Review #1: A Simple Weather App

I decided to try something new and recorded a YouTube video. This is the first…


Advanced testing using `Behavior` in Quick

Behavior is a hidden gem in the Quick testing framework. It was introduced…


What's inside the Derived Data folder?

Deleting derived data - a well know trick that comes in handy every time Xcode…