March 3, 2020
Refactoring Wikipedia’s iOS App
This case study describes the refactoring of Wikipedia's WMFLocationManager class from Objective-C to Swift. The Wikipedia native iOS app project was…
January 21, 2020
Sending Test Push Notifications from Terminal
When working on a project recently, I needed an easy solution for testing and debugging push notifications. So I wrote a Swift command-line tool…
December 18, 2019
Clean Git History without Terminal
Your commits represent and encapsulate your added value to the project you’re working on. They are meant to forever live in the history of your repo.…
December 11, 2019
Testing Publishers Synchronously with a Blocking Recorder
When releasing Combine, Apple didn’t show us what their vision for testing the codebase with Combine was. Surely they must have thought about it.
December 2, 2019
iOS Code Review #2: Adding Tests to an Existing App (Networking)
Adding tests to an existing app can be challenging and sometimes intimidating. In this episode of iOS Code Review, I go through the process…
November 28, 2019
Building a Custom XCTAssert for Multiline Strings
XCTest provides a bunch of XCTAssert... functions to be used for assertions in your tests. Sometimes, however, the functionality you need is…
October 21, 2019
Why You Should Be Using `unowned` More Often
I’ve seen a lot of interesting codebases in the last two months: new clients of Industrial Binaries, submissions for my iOS Code Review series, and…
September 12, 2019
Mocking Network Calls Using URLProtocol
For many apps, the networking code is one of the most important parts of the whole codebase. Yet it’s also a part which is quite difficult to test…
August 13, 2019
iOS Code Review #1: A Simple Weather App
I decided to try something new and recorded a YouTube video. This is the first video of the iOS Code Review series I’d like to do. In this series I’m…
July 22, 2019
Advanced testing using `Behavior` in Quick
Behavior is a hidden gem in the Quick testing framework. It was introduced silently in 2017 and it’s not even mentioned in the documentation! The…
September 2, 2018
What’s inside the Derived Data folder?
Deleting derived data - a well know trick that comes in handy every time Xcode behaves strangely for no obvious reason. I still clearly remember when…