About Me

Posts in 2019

September

JSON Encoder Change in Swift 5.1

written by Andrew Wagner on

While updating my app for the iOS 13 SDK, I came across a change in JSONEncoder that broke some of the logic in my code. It now supports encoding top-level values.

more...

Swift Quiz – Boolean Expression

written by Andrew Wagner on

What is the value of result after doing: let result = false && true || true

more...

Singletons and Shared Instances in Swift

written by Andrew Wagner on

A couple very common programming patterns, especially in the Apple world, are Singleton and Shared Instance. People often confuse the two and there's also controversy around them. Let's clear these things up.

more...

Careful with Fancy KVO Callback

written by Andrew Wagner on

Be warned: there may be a bug in the fancier version of Key Value Observering. I discovered it while implementing a progress callback in my Decree web request library.

more...

Keyboard Field Prompt

written by Andrew Wagner on

I walk through how I solved the question: How do I display a text field directly above the keyboard to prompt the user for some text?

more...

August

Decree – A Declarative URL Request Framework

written by Andrew Wagner on

Decree allows you to make HTTP requests in a clear and type-safe way by declaring web services and endpoints. It supports all Apple platforms as well as Linux. It is the culmination of a technique I've developed over many projects. Some of those projects even include both a frontend and backend implemented in Swift that get to share a single source of endpoint declarations.

more...

July

A Lesson From Nature: Complexity from Simplicity

written by Andrew Wagner on

I recently came across a video showing an “Amazing Crabs Shell Exchange” and realized that it was a perfect example from nature of how seemingly complex (or “amazing”) behavior can emerge from simple governing desires. This is directly applicable to programming. Lets explore how.

more...