Blog



Andrew McKnight 8 May 2018 6 minute read
Outlining the differences between Xcode project targets and build configurations, and how to properly use each one.


Previously
Tags


Automatic Devpod Versioning and Deployment with Vrsnr ・ 20 April 2018
Describing my process for semantically versioning the Pippin podspec, deploying it to CocoaPods trunk, and committing all the results to git history.

Reach Out and Touch Faith ・ 16 April 2018
Thinking about the future of the Macbook Pro, and the direction in which the TouchBar might indicate it's headed.

CocoaPods and Custom Build Configurations ・ 15 February 2018
My long journey to set a devpod's SWIFT_OPTIMIZATION_LEVEL, from the podspec's pods_target_xcconfig, to Podfile's post_install and finally arriving at the succinct project.

Programming: 20 Years In ・ 7 February 2018
As I near 20 years since first picking up computer programming, I take a quick look back at the languages I've used and the tools available to work with them, with thoughts on the synergies between them and our own brains.

Dependency Management Best Practices ・ 9 January 2018
In light of recent news about dependency manager breakages and vulnerabilities, highlighting some steps you can take to protect your dependencies and the projects for which you need them.

Announcing Pippin Version 2 ・ 2 January 2018
Highlighting some of the new features in the first major update to Pippin.

Manage version numbers with this one line command ・ 17 December 2017
How I'm currently using Rake to automate a few common tasks I carry out to manage my iOS apps' version numbers.

Introducing Pippin ・ 29 November 2017
An update and first official version of my Swift app development framework.

Introducing Psst ・ 27 November 2017
A simple script to perform straigtforward template replacement of credentials in a codebase, to help avoid committing them.

Image Galleries with Jekyll ・ 5 November 2017
Describing my journey to build a photo gallery for my website using Jekyll/Liquid to template all the things.

Log Level: Extreme ・ 30 October 2017
A brief survey of log level concepts in the iOS community and elsewhere.

Apple's Tech Evolutions ・ 19 October 2017
Extrapolating Apple's technological advances from the past onto their current product lines and research, for funsies.

Looms and Computers ・ 29 August 2017
The similarities between computers and looms, distant cousins related through their ancestor, the Jacquard loom.

Xcode 9's New Find and Replace Panel ・ 19 June 2017
A critique of the new source editors tool's UI and UX.

Returning Optionals Versus Throwing Errors in Swift ・ 18 May 2017
Deciding between flow control and data model concepts in your app's business logic.

Source Control Management vs. Dependency Management ・ 12 April 2017
Which manager has more authority over your project?

Differentiating iOS App Builds ・ 1 April 2017
A simple way to manage all your app build variants to test alongside each other on a device.

Validating Crash Reporting in Live iOS Apps ・ 26 March 2017
There's only one way to guarantee your iOS crash reporter is working: purposefully crash your app in production.

Snapping Angles and Fuzzy Binary Search ・ 16 March 2017
Implementing a variant of the binary search algorithm to find nearest interval angles on the unit circle.

Objective-C Block Syntax ・ 27 February 2017
Some ways to make writing Objective-C blocks in Xcode a little easier.

Tracking Xcode Build Setting Changes with xcbs ・ 19 February 2017
Announcing a small CLI for persisting final Xcode project build settings in lockfiles.

Xcode Build Setting Inheritance and Precedence ・ 28 January 2017
Straightening out the tangled web of relationships in the world of Xcode build configuration.

The Art of Source Control, Part 2: Clean Git History ・ 19 January 2017
Outlining some best practices concerning git history tidiness.

The Art of Source Control, Part 1: Organizing Codebases ・ 14 January 2017
Outlining some best practices for organizing a codebase.

Passwords ・ 4 January 2017
Anecdata regarding antipatterns in the realm of password management for your service's users.

Going Back to the Future to test with git-rebase ・ 22 November 2016
Adventures in Git, using rebase to reorder history and automate some testing, too!

Making the site a little more SASSy ・ 24 July 2016
Why I decided to use SASS to manage the site's CSS.