About Me

About this Blog

My name is Andrew Wagner and I am a software developer focussed primarily on iOS and web development. On this blog I try my best to provide valuable content to other developers based on what I've learned. I did not become the developer I am today without the help and advice from friends, co-workers, and others on the internet. I would love to give back to this community.

Lately I have been concentrating primarily on Swift development for native apps, backend services, and even websites (like this one). But, I bring the perspective of someone who has worked with many different technologies and languages with a particular passion for product design and user experience.

To learn more about my background and what drives me, I encourage you to checkout my about me page.

Featured Posts

Effect of Swift Extension and Libraries On Build Time

written by Andrew Wagner on Sep. 13, 2020

Does separating code into extra extensions and/or modules have a meaningful impact on compile times?

more...

Developing an Algorithm Case Study: Area encircled by multiple paths on a 2D plane

written by Andrew Wagner on Aug. 10, 2020

While toying around with an app idea I came across the need to develop my own algorithm and therefore return to Data Structures and Algorithms techniques I learned in college. Here is the problem, my process, and my solution.

more...

Decree – A Declarative URL Request Framework

written by Andrew Wagner on Aug. 08, 2019

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

A Lesson From Nature: Complexity from Simplicity

written by Andrew Wagner on Jul. 29, 2019

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

5 Core iOS Competencies to Be a Great Hire

written by Andrew Wagner on Jan. 28, 2017

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

more...

5 Core Swift Competencies Before You Get a Job

written by Andrew Wagner on Jan. 21, 2017

A list of skills, beyond just the ability to get the job done, every Swift developer should know before they get paid to develop.

more...

Other Recent Posts

JSON Encoder Change in Swift 5.1

written by Andrew Wagner on Sep. 11, 2019

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 Sep. 06, 2019

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 Sep. 03, 2019

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 Sep. 02, 2019

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 Sep. 01, 2019

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

App Case Study - Love Laugh Read Books

written by Andrew Wagner on Apr. 13, 2017

A look at the interesting technical challenges I ran into while developing this app.

more...

Deploying Server-Side Swift

written by Andrew Wagner on Jan. 26, 2017

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.

more...

Deploying Server-Side Swift

written by Andrew Wagner on Jan. 26, 2017

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.

more...

Filling Holes in Swift on Linux

written by Andrew Wagner on Jan. 18, 2017

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.

more...

Learning Swift, Server-Side Swift, and the Future

written by Andrew Wagner on Jan. 17, 2017

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.

more...

All Posts