Andrew Wagnerdrewag.me

All Posts

43 posts, newest first.

2026

2020

2019

1 min read

JSON Encoder Change in Swift 5.1

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.

2 min read

Careful with Fancy KVO Callback

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.

4 min read

Singletons and Shared Instances in Swift

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.

8 min read

Keyboard Field Prompt

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?

2 min read

Decree – A Declarative URL Request Framework

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.

3 min read

A Lesson From Nature: Complexity from Simplicity

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.

2017

15 min read

5 Core iOS Competencies to Be a Great Hire

A list of core skills that are necessary in almost every app. If you can do all of these things reliably, you are well on your way to being a great hire as an iOS developer

18 min read

Deploying Server-Side Swift

There are many ways you could choose to host a Swift website or web service, but here I share what has worked well for me.

18 min read

Deploying Server-Side Swift

There are many ways you could choose to host a Swift website or web service, but here I share what has worked well for me.

7 min read

Filling Holes in Swift on Linux

The hardest part of developing Server-Side Swift is the incomplete nature of Foundation including some pretty critical basic functionality. After I thought up this technique, the problems I ran into changed from mountains to mole hills.

4 min read

Learning Swift, Server-Side Swift, and the Future

I have been extremely busy so I haven't made the time to write any blog posts. In this post I give a brief overview of what I have been up to and what are my short-term plans for the future.

2016

2014

5 min read

Getting Started With Swift

A list of key concepts to know when getting started with Swift and links to resources to stay current with its development.

9 min read

7 Cool Features in Swift

Concrete examples for some cool and practical new features in Swift that will improve the daily lives of iOS and OS X programmers.

2 min read

Testing Asynchronous Code in Objective-C

Testing asynchronous code in Objective-C can be a real pain unless you make one simple change to the way you program it in the first place.

2 min read

Be A Better Indie - 3. Trim Your Incoming Email

I hate being constantly distracted by incoming emails. To solve this problem I decided to drastically reduce the amount of emails I receive. This is how I did that.

2013

4 min read

Comfortably Uncomfortable

A look at how pushing through discomfort is exactly where I want to be.

2 min read

Changes at a Glance

A system to make version control change sets more understandable at a glance.

3 min read

Enforce Good UX Through Reusable Code

My theory on how user experience's and code architecture's interests can converge. Good UX can encourage good code reuse and code reuse can encourage effective UX.

1 min read

Bind a UITableView to a Property

A library to allow binding a UITableView directly to a to-many property. The library automatically handles insertions and deletions as long as you make sure the to-many property emits KVO notifications.

5 min read

The 2 Biggest Challenges in Speech UX

Speech is still a relatively new interface. Technology is finally starting to catch up to the dreams that we've had since the invention of the computer itself: dreams of having natural conversations…

3 min read

Objective-C Bindings

An extension to NSObject that adds the allows binding the properties of two different objects together, allowing for much more declarative and understandable code.

3 min read

Taking the Plunge

How I came to the decision to finally take the plunge and go independent.

4 min read

UX and Agile

Discusses a high level way that we can integrate UX designers better into Agile software practices.