Network Extension, Part 1 - Introduction

Introduction to a series of posts about the Network Extension framework which allows apps to customize core networking features of the OS.

Trunk-Based Development

Why feature branches prevent continuous integration and discourage refactoring and what other branching strategies might be worth considering for your project.

Creating Views in Code

Tips and tricks to keep code in your views nice and readable

Cancellation Token

A unified model for cooperative cancellation of asynchronous operations

Naive Date and Time

Foundation offers great APIs for manipulating dates with time zones, however, it might be missing a few things

Three Use Cases of Phantom Types

Adding additional type safety using phantom types on the examples

Yalta: Intuitive Auto Layout

I'm thrilled to introduce a new intuitive and powerful Auto Layout library - Yalta

Codable: Tips and Tricks

Introduced in Swift 4 to replace NSCoding APIs, Codable also features first-class JSON support

Smart Retry

Combining retryWhen operator with Reachability and delay options inspired by RxSwiftExt to implement auto-retries

API Client in Swift

How to implement a declarative and powerful API client using Alamofire, RxSwift, and Codable

Introducing RxNuke

I'm excited to introduce a new addition to Nuke - RxNuke which brings the power of RxSwift to your image loading pipelines

RxSwift Testing

Unit testing paging in a scroll view using RxSwift testing infrastructure - RxTest

Interface Builder: Previews

Using Interface Builder to quickly preview features on different screen sizes and in different orientations

Let's Build UIStackView

Explores how UIStackView works under the hood to build its open source replacement - Arranged

Core Data Progressive Migrations

Using NSPersistentStoreCoordinator and NSMigrationManager for progressive schema migrations in Core Data

Image Caching

In-depth look at HTTP cache and Foundation's URL Loading System to cache images on disk

Preheating Images

Preheating is an effective way to improve user experience by downloading data ahead of time in anticipation of its use

Immutability and Builder Pattern

Modelling large immutable objects in Objective-C without creating telescoping initializers