Articles

2019

  • Effective Unit Testing

    Why most unit testing is a waste in Swift and how to extract the most value from tests

  • CI for Swift Frameworks

    How I went from manually testing my frameworks to having hundreds of unit tests and multiple automatic checks running on every change

  • SwiftUI Layout System

    Taking a deep dive into SwiftUI layout system

  • Regex, Part 3: Matcher

    Explore two different regex matching algorithms

  • Regex, Part 2: Compiler

    What are Type-2 (or regular) languages? How can Finite State Automation be used to recognize them? Where do regex fit into all this?

  • Regex, Part 1: Parser

    Exploring Parser Combinators (or monadic parsers) which are a great example of functional programming used to bring practical benefits

  • Regex, Prologue: Grammar

    Using a formal grammar to describe a regular expression language

  • Let's Build a Regex Engine

    How to understand the language of <\/?[\w\s]*>|<.+[\W]>

  • Navigation Problem

    How to solve it without Coordinators and why Coordinators might be not an optimal solution for you

2018

  • Future<Value, Error>

    Future – a streamlined Future<Value, Error> implementation with functional interface

  • Let's Talk Architecture

    MVC – The Past. MVVM with RxSwift or ReactiveCocoa, MVP – The Present. Functional Architectures – The Future.

  • Are Optionals Any Good?

    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

  • 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 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

2017

  • 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

  • Align: Intuitive Auto Layout

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

  • 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

2016