Swift Talk

A weekly video series on Swift programming.

#75 Auto Layout with Key Paths 17:25

We clean up our layout code by introducing helper functions that leverage Swift's key paths.

  1. Refactoring
  2. UIKit
November 10, 2017

#73 View Bindings in Pure Swift 22:12

We experiment with reactive view bindings that don't rely on runtime programming.

Subscribers-Only

Subscribers Only

#66 The Elm Architecture (Part 1) 16:39

We refactor our reducer-based project from episode #62 to use The Elm Architecture. Instead of interacting with UIKit directly, we build a virtual view hierarchy and let our Elm framework do the rest.

Subscribers-Only

Subscribers Only

#62 Testable View Controllers with Reducers 31:00

We show how the reducer pattern can be used to make typical view controller code more testable.

#59 Refactoring with Xcode 9 12:34

We take a look at the new refactoring features of Xcode 9, including renaming, extracting expressions, extracting methods, and more.

  1. Xcode
  2. Refactoring
July 21, 2017
Subscribers-Only

Subscribers Only

#54 UI Elements with Callbacks 16:27

We refactor a declarative wrapper around stack views we wrote in episode #7. Instead of wrapping UI controls to provide an interface with callbacks, we write a dedicated target-action class.

Subscribers-Only

Subscribers Only

#52 Deleting Code with Swift 4 11:49

We look at how we can delete code we wrote in previous episodes by taking advantage of some of the new features in Swift 4.

#25 Network Caching 23:33

We come back to our unfinished Swift Talk iOS app and implement a lightweight network cache for offline support. We keep our networking code from episode #1 untouched to maintain a clear separation of concerns.

Subscribers-Only

Subscribers Only

#14 Growing Trees with Classes and Structs 28:11

We build a tree structure beginning with a flat array of Ledger account names. We first implement the tree using a class, and then we refactor it to a struct and discuss the differences and tradeoffs involved.

Subscribers-Only

Subscribers Only

#12 Evaluating Transactions 25:43

We evaluate transactions using the code from the previous episode. We need continuous refactoring to keep our code simple and clean.

#11 Evaluating Expressions 29:36

We write an evaluator for a simple expression language. We write our code in a test-driven way, which saves us time and helps us verify the correctness the code.

Subscribers-Only

Subscribers Only

#6 Generic Table View Controllers 19:42

We explore how Swift's generics can be used to create a simple, reusable table view controller. As a welcome side effect, this process helps us keep our view controller code clean.

#5 Connecting View Controllers 20:14

We refactor our code by moving the app's flow from the storyboard into a separate class. Our goal is to manage the view controller flow from a central place so that view controllers don't have implicit knowledge of their context.

Subscribers-Only

Subscribers Only

#4 Rendering CommonMark (Part 2) 18:33

We continue building the CommonMark renderer we started in episode #2. This time, we add customizable styles using structs and inout parameters.

Subscribers-Only

Subscribers Only

#2 Rendering CommonMark 23:15

We create attributed strings from CommonMark. We continually refactor our code to make the central logic short and understandable.