Taking a step back to see what is good and bad about Optional type in Swift

Resumable Downloads

Exploring how resumable downloads - one of my favorite new features in Nuke 7 - are implemented using HTTP range requests

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

Why feature branches might prevent continuous integration and discourage refactoring and what other branching strategies are worth considering.

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

Adding additional type safety using phantom types on the examples

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

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

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

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

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

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